前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >读书笔记:软件测试的分类及原则

读书笔记:软件测试的分类及原则

原创
作者头像
乐大爷
修改2020-09-24 10:13:35
4840
修改2020-09-24 10:13:35
举报
文章被收录于专栏:乐大爷

软件测试的艺术-第2章 软件测试的心理学和经济学


输入--输出

测试是为了发现错误而执行程序的过程。

软件测试是为了试图发现程序中错误的破坏性的过程。

黑盒测试

黑盒测试是一种重要的测试策略,又称为数据驱动的测试或输入/输出驱动的测试。使用这种测试方法时,将程序视为一个黑盒子。测试目标与程序的内部机制和结构完全无关,而是将重点集中放在程序不按其规范正确运行的环境条件。

测试数据来源于软件规范。如果想用这种方法来发现程序的所以错误,判定的标准就是“穷举输入测试”,将所以可能的输入条件都作为测试用例。

为什么这样做?

比如说在三角形测试的程序中,试过了三个等边三角形的测试用例,这不能确保正确地判断出所有的等边三角形。程序中可能包含对边长3842、3842、3842的特殊检查,并指出此三角形为不规则三角形。

由于程序是黑盒子,因此能够确定此条语句存在的唯一方法,就是试验所有的输入情况。

但是,穷举测试实际上需要创建无限的测试用例,这当然不可能。是无法测试完所有有效和无效的处理,以及所有可能的事务的处理顺序。

穷举输入测试是无法实现的,这有两方面含义:一是我们无法测试一个程序以确保它是无错的,二是软件测试中需要考虑一个基本问题是软件测试的经济学。也就是说,在测试中,测试投入的目标在于通过有限的测试用例,最大限度地提高发现的问题的数量,以取得最好的测试效果。除了这个因素外,要实现这个目标,还需要能够窥见软件的内部,对程序做些合理但非无懈可击的假设。

白盒测试

白盒测试,或称为逻辑驱动的测试,允许我们检查程序的内部结构。这种测试策略对程序的逻辑结构进行检查,从中获取测试数据。

穷举路径测试:即将程序中的每条语句至少执行一次。如果使用测试用例执行了程序中所以可能的控制流路径,那么程序有可能得到完全测试。

穷举路径测试的问题:1、是不可能的,也是不切实际的,因为路径太多;2、虽然可以测试到程序中的所有路径,但是程序仍然可能存在着错误,原因如下:

1)、即使是穷举路径测试也决不能保证程序符合其设计规范。举例来说,如果要编写一个升序排序的程序,但却错误地编写成一个降序排序程序,那穷举路径测试就没有多大价值了;程序仍然存在着一个缺陷:它是个错误的程序,因为不符合设计的规范。

2)、程序可能会因为缺少某些路径而存在问题。穷举路径测试当然不能发现缺少了哪些必需路径。

3)、穷举路径测试可能不会暴露数据敏感错误。

将黑盒测试和白盒测试的要素结合起来,形成一个合理但并不十分完美的测试策略。

软件测试的原则

编号

原则

1

测试用例中一个必需部分是对预期输出或结果进行定义

2

程序员应当避免测试自己编写的程序

3

编写软件的组织不应当测试自己编写的软件

4

应当彻底检查每个测试的执行结果

5

测试用例的编写不仅应该根据有效和预料到的输入情况,而且也应该根据无效和未预料到的输入情况

6

检查程序是否“未做其应该做得”仅是测试的一半,测试的另一半是检查程序是否“做了其不应该做得”

7

应避免测试用例用后即弃,除非软件本身就是一个一次性的软件

8

计划测试工作时,不应默许假定不会发现错误

9

程序中某部分存在更多错误的可能性,与该部分已发现错误的数量成正比

10

软件测试是一项极富创造性、极其智力挑战性的工作

小结

软件测试的三个重要的测试原则:

  • 软件测试是为了发现错误而执行程序的过程。
  • 一个好的测试用例具有较高的发现某个尚未发现的错误的可能性。
  • 一个成功的测试用例能够发现某个尚未发现的错误。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 软件测试的艺术-第2章 软件测试的心理学和经济学
    • 黑盒测试
      • 白盒测试
        • 软件测试的原则
          • 小结
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档