吃软件测试这碗饭的,如果基础理论都不懂,谈何长久?
欢迎来学习本系列,基础理论比较枯燥,这也是为什么现在很少人掌握的主要原因。热饭尽量用浅显易懂 生动的例子 来帮助大家学习基础理论,所以请耐心看完此系列。
Part1前言
上节课我们明白了三大概念,功能-非功能-接口,本节课我们就要先从【功能】这个大概念上继续细分。
那么这个【功能】,和你现在脑子里理解的功能测试 是一回事么?
首先,我们要明白一个基础道理,就是:
测试理论和流程,不是线性顺下来的,而是一个多维的立体网状结构。
为什么要这么说呢?大家都是做过测试的,一定记得一个基本理论:【测试阶段分为:单元测试-集成测试-系统测试】 这个理论,和我们讲的这个 【功非接】它们就不是一条线串联的,而是融合在一起的,没有谁先谁后。
比如,在集成测试阶段,同样包含功能-非功能等测试点。而在【功能】中,同样可以分为单元测试、集成测试、系统测试三个阶段应用。
再比如,众所周知的判定表和等价类和正交,他们之间也是错综复杂的关系,你很难说清某个用例是属于等价类的,还是判定表的。
这样,测试基本理论的复杂度就瞬间升,这也是为什么不同公司,不同部门的测试流程都不一样,每个领导都有自己的一套打法的原因。因为测试理论本就不是一套固化思维的死理论,它千变万化,非融会贯通之人,是无法理解的。
不过大家不用担心,也不用现在就着急弄明白这些复杂的穿插结构,我会在之后的篇章中一点点细讲。本节你只要明白:
功能 = 多个阶段 ✖️(输入 处理 输出)
即可。
Part2输入处理和输出
输入处理和输出,指任何功能的实现的三个过程。这三个过程,都要进行测试。
比如:登录功能
这是面试中最常见的题,但是却可以考几乎所有的知识点,看似简单,却博大精深,就像书法里的“永”字一样,人家一看你写个永字,就知道你的书法水准了,所以才有著名的“永字八法”。
在我们测试面试中,登录功能 就是这个 【永】 字。
拿过来套上【输入处理输出】这三个过程来看。
【输入过程】:就是你输入用户名,密码,验证码,点击登录按钮 的过程。这个过程你必须进行测试,这没错。
【处理过程】:就是服务器的部分了,涉及具体的后台函数,中间件等测试。
【输出过程】:就是最终用户看到的界面反馈,是登录成功还是失败,失败提示,页面跳转等测试。
几乎任何复杂的功能,拆分后,每一个最小功能单位,都包含这么三部分。这么看,感觉测试还是挺简单的,很好理解。但是我还没有说完。
这三个过程,如果你只考虑上面我说的部分,那就是测试不全面了。当然你可以发散思维,说输入过程,还有测试一下接口的入参啊等等。但是无论你怎么去想新的测试点,在没有一个标准分类下,都太脆弱和不可靠了。
所以我们接下来要学习新的一个小理论:【界面可见/不可见】
这个就是所谓的三个过程的继续细分的俩种情况。
Part3界面可见/不可见
在上面每个过程中,尤其是输入和输出部分,所有的测试点都可以用可见和不可见来区分成俩大情况。
还是接着上面的登录功能来讲解。
1【输入过程】:
【界面可见】:输入的用户名,密码,验证码,是否勾选协议,登录按钮等。
【界面不可见】:登录时候的时间日期,地址ip,安全环境监测,物理设备号,从客户端本地配置文件/缓存拿的数据如头像等等。
无论是可见还是不可见,我们要通过测试确保,这些参数字段成功的生成了请求体,组成了正确的接口请求,才算ok。
2【处理过程】:
【可见】:服务端的函数代码,具体的算法等测试,此时可以应用到白盒测试手段。
【不可见】:其他外链引用,其他服务函数调用,第三方组件代码,第三方服务等,我们直接看不到的处理过程。
3【输出过程】:
【界面可见】:用户看到的登录成功动作(跳转到个人信息页,看到自己的昵称等),登录失败提示框,登录失败动作(比如密码输入框自动清空,验证码重置等),页面跳转等可见情况。
【界面不可见】:接口返回的一切参数比如错误码等。缓存,数据库中存储的各个数据字段,客户端本地的配置/缓存文件上的信息等等。
当我们把一切可见不可见的的都测试过,这个功能的测试点才会真正达到完全覆盖。
好了。我们今天的内容就到此为止了。