《软件测试的艺术》总结

2021-03-18  本文已影响0人  我叫何家明
image.png

首先这本书是软件测试行业必读书之一,仔细阅读肯定有他的厉害之处,应该是最后写的一篇测试相关的观后感了,之前有瞄了眼《Google软件测试之道》,看了下大厂的软件测试从功能性测试慢慢转变到测试开发的历程,从而惊叹不已。

软件测试的心理学和经济学

对于测试,更为合适的定义是:测试是为发现错误而执行程序的过程

黑盒测试

黑盒测试是一种重要的测试策略,又称为数据驱动的测试或输入/输出驱动的测试。使用这种测试方法时,将程序视为一个黑盒子。测试目标与程序的内部机制和结构完全无关,而是将重点集中放在发现程序不按其规范正确运行的环境条件。
如果想用这种方式来发现程序的所有错误,判定的标准就是”穷举输入测试“,将所有可能的输入条件都作为测试用例。

白盒测试

允许我们检查程序的内部结构。

软件测试的原则

check 代码

部分测试是从开发转过去的,那就尽可能的去阅读代码

代码检查与走查

代码检查、走查以及可用性测试是三种主要的人工测试方法。在代码走查中,一组开发人员(三到四人为最佳)对代码进行复核。其中只有一人是代码的作者。因此代码走查的主要工作是由其他人,而不是作者把本人完成的。

代码检查

以组为单位阅读代码,他是一系列规程和错误检查技术的集合。有个协调人,是非编码人员,编码人员逐行讲逻辑,小组其他成员应该提出问题,判断是否存在错误。一般是大声朗读的开发人员发现更多的问题。

设计测试用例

白盒测试

白盒测试关注的是测试用例执行的程度或覆盖程序逻辑结构的程度,所以有测试用例覆盖率一说。

  1. 将每个判断的所有结果都至少执行一次。
  2. 将所有的程序入口都至少调用一次,以确保全部的语句都至少执行一次。

黑盒测试

等价划分

确定这个子集的一种方法,就是要意识到一个精心挑选的测试用例还应具备另外两个特性:

  1. 严格控制测试用例的增加,减少为达到”合理测试“的某些既定目标而必须设计的其他测试用例的数量。
  2. 它覆盖了大部分其他可能的测试用例。

so~ 使用等价划分方法设计测试用例主要有两个步骤:
1)确定等价类
2)生成测试用例

边界值分析

经验证明,考虑了边界条件的测试用例与其他没有考虑边界条件 的测试用例相比,具有更高的测试用例回报率。

所谓边界条件,输入和输出等价类中那些恰到好处于边界、或超过边界、或在边界以下的状态。

不同:

  1. 与从等价类中挑选出任意一个元素作为代表不同,边界值分析需要选择一个或多个元素,以便等价类的每个边界都经过一次测试。
  2. 与仅仅关注输入条件(输入空间)不同,还需要考虑从结果空间设计测试用例。

单元测试

增量测试

需要考虑软件测试是否应独立地测试每个模块,然后再将这些模块组装成完整的程序
测试单独的模块需要一个特殊的驱动模块(driver module)和一个或多个桩模块(stub module)

自顶向下&自底向上的测试

都属于增量测试策略,从程序的顶部或初始模块开始。必须开发桩模块
自底向上策略和自顶向下的策略是相对立的。自底向上的策略开始于程序中的终端模块。必须开发驱动模块,知道最后一个模块添加进去,程序才形成一个整体

逼格更高的测试

功能测试

黑盒操作,等价类划分方法、边界值分析法、因果图分析方法和错误猜测方法尤其适合于功能测试。

系统测试

性能

QPS,TPS并发量对接口影响,压测

可用性&可靠性

用户体验可用,要能用软件才能生存,硬件和软件环境的可靠,不要运营商直接挂壁了。

安全测试

扫描漏洞,比如是否存在XSS攻击和sql注入等等

调试

归纳调试

认真的思考能发现大部分错误,这些思考路径就可以归纳出来。步骤:

  1. 确定相关数据
  2. 组织数据
  3. 做出假设
  4. 证明假设
  5. 解决问题

敏捷测试

敏捷开发提倡迭代式和增量式的开发模式,并强调测试在其中的重要作用。

本质上,敏捷测试是协同测试的一种形式,它要求每一个人都参与到测试计划的设计、实现以及执行中去。一般是开发编写单元测试,然后出发自动化测试流水线。

极限编程

XP是一种可以使开发人员快速生产高质量代码的软件开发过程。实践归为四个概念:

互联网应用测试 mark

表现层测试

网页或GUI

业务层测试

业务逻辑

数据层测试

数据库响应时间,数据完整性,sql

移动端测试

互联网时代,移动端测试很是麻烦、安卓、IOS、微信小程序、移动端浏览器等等适配。不同的机器也会展示不同。可以先测试线上模拟机,但是最后肯定要落地到实体机的。浏览器可以借助连接电脑打开chrome进行调试,其余就是抓包或者用特性连接了。


image.png
上一篇 下一篇

猜你喜欢

热点阅读