对软件测试的理解
- 软件=程序 + 文档
- 软件测试 ≠ 程序测试
使用人工或自动手段,来运行或测试某个系统的过程。其目的在于检验它是否满足规定的需求或弄清预期结果与实际结果之间的差别。
软件测试是以检验是否满足需求为目标。
对缺陷的理解
Bug是软件中(包括程序和文档)不符合用户需求的问题
Bug类型:
- 完全没有实现的功能
- 功能或性能问题或差异
- 多余的功能
软件测试PIE模型:

- 通过执行软件,检查执行结果的动态测试活动能够发现的问题只有外部层面的软件失败,内部静态层次缺项和内部中间状态层次错误无法检测到。
- 测试设计的重要工作之一,如何恰当地设计测试数据,使得软件缺陷尽可能地产生失败而被外部观察到
软件测试基本原则
- 测试表明缺陷存在,而不是证明缺陷不存在
- 穷尽测试是不可能的
- 测试活动应尽早开展
- 缺陷往往集中出现
- 注意杀虫剂悖论(重复同样的测试用例会逐渐失效)
- 测试依赖于上下文
- 错误谬论(软件没有缺陷≠软件能满足用户需求)
追溯需求:
- 覆盖性保证:保证每一个需求都有相应的测试用例(避免遗漏)。
- 可追踪性:当需求变更时,能快速定位需要修改的测试。
- 目标一致性:测试不应该“随便测”,而是始终对准需求目标。