第二部分 测试基础
检查产品说明书
什么是黑盒测试和白盒测试
- 黑盒测试:又称功能性测试或行为测试
- 白盒测试:又称透明盒测试,软件测试员可以访问程序的代码,并可以通过检查代码的线索来协助测试。
静态测试和动态测试有什么区别
- 静态测试:测试不运行的部分——只是检查和审核;
- 动态测试:指通常意义上的测试——使用和运行软件
审查产品说明书有哪些高级技术
产品说明书通常是利用文字和图形描述产品的书面文档。
- 假设自己是客户
- 研究现有的标准和规范
- 公司惯用语和约定
- 行业要求
- 政府标准
- 图形用户界面(GUI)
- 安全标准
- ...
- 审查和测试类似软件
- 审查竞争产品时要注意的问题包括:
规模
复杂性
测试性
质量和可靠性
安全性
- 审查竞争产品时要注意的问题包括:
详细审查产品说明书时应该注意哪些特殊的问题
- 产品说明书属性检查清单
- 产品说明书术语检查清单
戴上眼罩检测软件
动态黑盒测试是什么
不深入代码细节测试软件的方法称为动态黑盒测试。动态黑盒测试常被称为行为测试
通过性测试和失效性测试
在设计和执行测试用例时,总是首先进行通过性测试
纯粹为了破坏软件而设计和执行的测试用例称为失效性测试或错误强制测试
如何通过等价类划分减少测试用例的数量
把软件具有相似输入、相似输出、相似操作的分在一组。这些组就是等价类划分。
如何判断故障边界条件
测试临近边界的有效数据,测试最后一个可能有效的数据,同时测试刚超过边界的无效数据。
如何测试软件状态和状态转换
- 建立状态转换图
- 软件可能进入的每一种独立状态
- 从一种状态转入另一种状态所需的输入和条件
- 进入或者退出某种状态时的设置条件及输出结果
- 减少要测试的状态及转换的数量
- 失败状态测试
如何使用重复、压迫和重负的方法找出缺陷
- 重复测试:是不断执行同样的操作
- 压迫测试:是使软件在不够理想的条件下运行——内存小、磁盘空间少、CPU速度慢、调制调解器速率低等。
- 重负测试:与压迫测试相反,压迫测试是减量限制软件,而重负测试是尽量提供条件任其发挥。 重复、压迫和重负测试应联合使用,同时进行,这是找出以其他方式难以发现的严重缺陷的一个可靠方法
缺陷的一些秘密隐藏之处
- 像无经验的用户那样做
- 在已经找到的软件缺陷的地方再找找
- 像黑客一样考虑问题
- 凭借经验、直觉和预感
检查代码
静态白盒测试的好处
静态测试是指测试非运行部分——检验和审查。
白盒(透明盒)测试是指访问代码,能够查看和审查。
静态白盒测试是在不执行软件的条件下有条理地仔细审查软件设计、体系结构和代码,从而找出软件缺陷的过程,有时称为结构化分析。
进行静态白盒测试的首要原因是尽早发现软件缺陷,以找出动态黑盒测试难以发现或隔离的软件缺陷。另一个好处是为黑盒测试员在接受软件进行测试时设计和应用测试用例提供思路。
各种类型的静态白盒测试综述
正式审查就是进行静态白盒测试的过程,包括同时审查,走查、检验等几种形式。
正式审查的关键要素
确定问题、遵守规则、准备、编写报告。
编码规范和标准
坚持标准或规范的三个重要原因
- 可靠性
- 可读性/维护性
- 移植性
标准由4个主要部分组成
- 标题
- 标准
- 解释说明
- 示例
带上X光眼镜测试软件
什么是动态白盒测试
动态白盒测试是指利用查看代码功能(做什么)和实现方式(怎么做)得到的信息来确定哪些需要测试、哪些不需要测试、如何开展测试。又称结构化测试。
调试和动态白盒测试之间的区别
动态白盒测试由测试员发起,目标是寻找软件缺陷;调试由程序员进行,目标是修复缺陷。
单元和集成测试是什么
在底层进行的测试称为单元测试或模块测试。在单元中发现问题时,问题肯定就在那个单元中。
整个产品——至少是产品的主要部分进行的测试称为系统测试。
其他
数据流覆盖主要是指在软件中完全跟踪一批数据。
为了全面覆盖,必须测试程序的状态以及程序流程,必须设法进入和退出每一个模块,执行每一行代码,进入软件每一条逻辑和决策分支,这种类型的测试叫做代码覆盖测试。
代码覆盖在直接的形式成为语句覆盖或代码行覆盖。
试图覆盖软件中的所有路径成为路径覆盖。路径测试最简单的形式称为分支覆盖测试。
条件覆盖将分支语句的条件考虑在内。
小结
静态黑盒测试是指检查产品说明书,并在软件编写之前找出问题。
动态黑盒测试是指在不了解软件如何工作的前提下进行测试。
静态白盒测试是指通过正式审查和检验检查代码的细节。
动态白盒测试是指在看到软件的工作方式时,根据获得的信息对软件进行测试。