美文网首页
《软件测试的艺术》总结

《软件测试的艺术》总结

作者: 我叫何家明 | 来源:发表于2021-03-18 01:34 被阅读0次
image.png

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

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

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

黑盒测试

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

白盒测试

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

软件测试的原则

  • 原则1:测试用例中一个必需部分是对预期输出或结果的定义。
  • 原则2:程序员应当避免测试自己编写的程序。
  • 原则3:编写软件的组织不应担测试自己编写的软件(扯淡吧)
  • 原则4:应当彻底检查每个测试的执行结果。
  • 原则5:测试用例的编写不仅应当根据有效和预期的输入情况,而且也应当根据无效和未预料到的输入情况
  • 原则6:检查程序是否”未做其应该做的“仅是测试的一半。测试的另一半是检查程序是否”做了其不应该做的“。
  • 原则7:应避免测试用例用后即弃,除非软件本身就是一个一次性的软件。
  • 原则8:计划测试工作时不应默许假定不会发现错误
  • 原则9:程序某部分存在更多错误的可能性,于该部分已发现错误的数量成正比。
  • 原则10:软件测试是一项极富创造性、极具智力挑战性的工作。

check 代码

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

代码检查与走查

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

代码检查

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

设计测试用例

白盒测试

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

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

黑盒测试

等价划分

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

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

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

边界值分析

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

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

不同:

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

单元测试

  • 模块测试用例的编写形式。
  • 可能用到的测试工具类型。
  • 模块编码与测试顺序。
  • 生成测试用例的成本以及调试的成本。

增量测试

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

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

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

逼格更高的测试

功能测试

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

系统测试

性能

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

可用性&可靠性

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

安全测试

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

调试

归纳调试

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

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

敏捷测试

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

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

极限编程

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

  • 聆听客户和其他程序员的谈话
  • 与客户合作,开发应用程序的规格说明和测试用例。
  • 结对编程。
  • 反复测试代码库。
    XP中的测试也是偏向于单元测试

互联网应用测试 mark

表现层测试

网页或GUI

业务层测试

业务逻辑

数据层测试

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

移动端测试

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


image.png

相关文章

  • 《软件测试的艺术》总结

    宇少:小圆小圆,最近在看啥我:《软件测试的艺术》宇少:那不是憨憨的专业吗?难道你。。我:没错,我要用魔法打败魔法!...

  • 《软件测试的艺术》读书总结

    本文通过软件测试基础、测试用例设计、测试的种类、互联网应用测试、敏捷中的测试、调试六个方面进行总结。 一. 测试的...

  • 2018-12-21

    软件测试总结 软件测试流程: 测试需求分析,分析需求文档提取...

  • 软件测试必读7本书

    软件测试必读7本书 1. 《软件测试的艺术》 2. 《软件测试经验与教训》 3. 《Google软件测试之道》 4...

  • 五月福利--干货来袭,PDF书免费送!

    图书目录: 软件测试: 《软件测试(原书第2版中文)》PDF版 《软件测试的艺术(第二版)》PDF版 《软件测试基...

  • 测试的推动能力为什么如此重要

    本文首发于公众号「软件测试艺术」,回复“软件测试教程”获取:麦子学院、黑马、小强软件测试全套学习教程! 测试人员每...

  • 软件测试的前世今生

    本文首发于公众号「软件测试艺术」,回复“软件测试教程”获取:麦子学院、黑马、小强软件测试全套学习教程! 毕业的时候...

  • 软件测试的艺术

    花了一点时间看完,总体感觉收获不大,有些鸡肋。第一版在79年,测试的理念变化并不大。大致说下自己的感受。 测试是为...

  • 软件测试的艺术

    测试是为发现错误而执行程序的过程。破坏性过程。心理学和经济学。软件测试的对象包括:程序、数据、文档。目标程序和源程...

  • 测试人员与开发和产品的日常

    PS:本文首发于公众号「软件测试艺术」,回复“软件测试教程”获取:麦子学院、黑马、小强软件测试全套学习教程! 去年...

网友评论

      本文标题:《软件测试的艺术》总结

      本文链接:https://www.haomeiwen.com/subject/rbvaqltx.html