摘要:软件测试的最高层次需求是:UI测试,也就是这个软件“长得好不好看”。

为了让读者更好地理解测试,我们从最基础的概念开始介绍。以一个软件的“轮回”为例,下图展示了一个软件的研发流程。随着软件规模的不断增大,一个软件动辄百万行的代码,想要单靠人工检查或者程序猿的技术本身保证质量已经变得不现实。因此,测试成为软件流程中必不可少的环节。

 

测试过程中会涉及不同的需求,以Mike Cohn在他的著作《Succeeding with Agile》一书中提出的“测试金字塔”宝图镇楼为例, 从下至上对应的测试需求分别为:单元测试,服务测试,用户界面测试。

 

这个金字塔形象地反应了笔者这些程序猿面临的问题。我们知道马斯洛的需求层次理论,在其著名的“马斯洛需求金字塔”中展示了一个人的不同层次的需求。笔者感觉这两个金字塔有很多相似之处。

 

个人最基本的需求是生理需求与安全需求,对应测试中就是“单元测试”。如果一个程序中的单元测试都不能保证,其上层的测试就无需谈起。而这部分也是需要花费大量精力去做的事情。每个开发人员在编写“单元测试”,并且完成测试之后,保证自己的服务能够正常运行才会考虑服务测试。就相当于自己吃饱了,安全了,才有力气和意愿去和别人交流。

此时,我们进入到下一个层次“社交需求”,服务之间的通信就像人类之间的“社交”,大家都要遵循一定的规则(程序接口,各种规范),才可以进行顺畅的通信。在日常生活的这个“交流”过程中,难免会出现一些误差,导致错误。然而,软件中出现一点点错误,可能导致不小的麻烦。例如2017年的这个新闻:以色列报纸“哈雷兹”报道说,一名巴勒斯坦男子被以色列警方逮捕,当时他在自己的脸书账号上写了“早上好”,Facebook自动翻译服务错误地用希伯来语翻译为“攻击他们”,用英语翻译为“伤害他们”,Facebook对此表示歉意。

软件测试的最高层次需求是:UI测试,也就是这个软件“长得好不好看”。这里引用一个词语“一想之美”,每个人心中关于美的定义都不相同,那什么样的软件才是“美”的?我们又应该如何测试?(终于凑够了领导要求的字数)。

 

最后:

也欢迎大家关注我的微信公众号

给大家整理了很多的一线大厂面试题,以及一些原创面试题精讲。

目前测试平台项目研发已经完成并且在Github开源,有兴趣的朋友可以去Github下载

https://github.com/ooqitech/ATP

【哲学角度看软件测试】要想软件“一想之美”,UI 测试少不了的更多相关文章

  1. 【阿里云产品公测】以开发者角度看ACE服务『ACE应用构建指南』

    作者:阿里云用户mr_wid ,z)NKt#   @I6A9do   如果感觉该评测对您有所帮助, 欢迎投票给本文: UO<claV   RsfTUb)<   投票标题:  28.[阿里云 ...

  2. 另一个角度看元宇宙与RPA:人工世界、平行员工与RPA

    另一个角度看元宇宙与RPA:人工世界.平行员工与RPA 从元宇宙到平行员工,人工世界推动的虚实分工利好RPA 机器人是铁打营盘人类是流水兵,未来元宇宙的虚实分工RPA机会巨大 文/王吉伟 元宇宙是平行 ...

  3. Android IOS WebRTC 音视频开发总结(四八)-- 从商业和技术的角度看视频行业的机会

    本文主要从不同角度介绍视频行业的机会,文章来自博客园RTC.Blacker,支持原创,转载必须说明出处,欢迎关注个人微信公众号blacker ----------------------------- ...

  4. 从线程模型的角度看Netty的高性能

    转载:Netty(二) 从线程模型的角度看 Netty 为什么是高性能的? 传统 IO 在 Netty 以及 NIO 出现之前,我们写 IO 应用其实用的都是用 java.io.* 下所提供的包. 比 ...

  5. 从互联网进化的角度看AI+时代的巨头竞争

    今天几乎所有的互联网公司在谈论和布局人工智能,收购相关企业.人工智能和AI+成为当今科技领域最灸手可热的名词,关于什么是AI+,其概念就是用以表达将"人工智能"作为当前行业科技化发 ...

  6. 从一个开发的角度看负载均衡和LVS--FullNat

    从一个开发的角度看负载均衡和LVS 在大规模互联网应用中,负载均衡设备是必不可少的一个节点,源于互联网应用的高并发和大流量的冲击压力,我们通常会在服务端部署多个无状态的应用服务器和若干有状态的存储服务 ...

  7. 【转载】从创业者角度看《印度合伙人 Padman》后的一点感受

    ***************************** 这部电影看简介是真实事件改编的,当时除了电影本身的精彩和主角宠妻狂魔之外,印象最深的就是感觉到主角的创业者心态是一步步在生活中被培养的.特别 ...

  8. 【转】使用者角度看bionic pthread_mutex和linux futex实现

    使用者角度看bionic pthread_mutex和linux futex实现 本文所大篇幅引用的参考文章主要描述针对glibc和pthread实现:而本文的考察代码主要是android的bioni ...

  9. 对博弈活动中蕴含的信息论原理的讨论,以及从熵角度看不同词素抽象方式在WEBSHELL文本检测中的效果区别

    1. 从赛马说起 0x1:赛马问题场景介绍 假设在一场赛马中有m匹马参赛,令第i匹参赛马获胜的概率为pi,如果第i匹马获胜,那么机会收益为oi比1,即在第i匹马上每投资一美元,如果赢了,会得到oi美元 ...

随机推荐

  1. YoloV3 记录

    常用于目标检测,因为最近要从目标分类问题转到目标检测中去. tensoflow.Keras(大公司一般都用这个).pytorch(本次学习)------------------主要框架 程序设计模块规 ...

  2. 滑动窗口解决最小子串问题 leetcode3. Longest Substring Without Repeating Characters

    问题描述: Given a string, find the length of the longest substring without repeating characters. Example ...

  3. python-@函数装饰器

    例如@classmethod,@staticmethod的本质就是函数装饰器,其中,classmethod和staticmethod都是python的内置函数 使用@引用已有的函数后,可用于修饰其他函 ...

  4. 微信小程序实现搜索关键词高亮

    目录 1,前言 2,思路 3,代码逻辑 1,前言 项目中碰到一个需求,搜索数据并且关键词要高亮显示,接到需求,马上开干.先上效果图.源码已经做成了小程序代码片段,放入了GitHub了,文章底部有源码链 ...

  5. 云原生 API 网关,gRPC-Gateway V2 初探

    gRPC-Gateway 简介 我们都知道 gRPC 并不是万能的工具. 在某些情况下,我们仍然想提供传统的 HTTP/JSON API.原因可能从保持向后兼容性到支持编程语言或 gRPC 无法很好地 ...

  6. oo第三单元——社交网络

    第三单元的作业背景是实现一个社交观关系模拟系统,主要训练了JML的阅读和理解能力,和图的一些数据结构和算法. JML语言的理论基础 JML相对于实现代码是比较抽象的,规定了方法的前提副作用结果.数据的 ...

  7. 记一次在virtualbox中安装windows7遇到增强功能安装分辨率的问题

    在windows7中遇到很多次安装好增强功能后并不能对其实现放大分辨率,使其跟随虚拟机界面大小而改变. 经过许多次的安装和恢复快照,发现了在设置中,显存的大小一直都是处于边缘的状态, 关闭虚拟机后,我 ...

  8. JMeter5.4.1源码IDEA构建&二次开发(实战)

    JMeter5.4.1源码IDEA构建&二次开发(实战) 目录 JMeter5.4.1源码IDEA构建&二次开发(实战) 1.下载源码 2.导入IDEA 2.1 先设置Gradle目录 ...

  9. Leedcode算法专题训练(搜索)

    BFS 广度优先搜索一层一层地进行遍历,每层遍历都是以上一层遍历的结果作为起点,遍历一个距离能访问到的所有节点.需要注意的是,遍历过的节点不能再次被遍历. 第一层: 0 -> {6,2,1,5} ...

  10. SpringBoot - yml写法

    1 #区分大小写 2 server: 3 port: 8081 4 path: hello 5 6 #字面量:普通的值(数字,字符串,布尔): 7 #字符串:双引号 - 不转义 单引号 - 转义 8 ...