这本书介绍了50条软件测试的最优实践,覆盖了软件测试中得10个重要方面。分别是需求阶段的测试,测试规划,测试人员的组成,测试系统构架,有效的设计和开发测试过程,测试策略中开发人员进行单元测试的角色,自动化测试工具,自动化测试最佳实践,非功能性方面测试,测试执行的管理策略。
需求阶段
对需求的测试在于保证每条需求的阐述准确明确恰当,所有读者对需求的理解完全相同。
测试人员及早介入:在需求的初期介入,是缺陷预防的重要方法,可以保证生成出可预测的需求,并且彻底详细的了解产品,以设计出更出色全面的测试方案。
-
验证需求:为每一个需求建立一个质量测度标准,以明确化模糊的需求。在考虑功能性需求以外,还需要尽早考虑非功能性需求,这些非功能性需求会决定技术方案的选择和存在风险的区域,因此功能性需求应该和与之关联的非功能性需求一起进行说明。
需求验证列表: * 正确性:基于用户需要; * 完整性: 保证需求中没有遗漏任何必须的元素; * 一致性:工作产品的内部元素之间或者工作产品之间有没有内部或外部的矛盾; * 可测试或可验证; * 可行性; * 必要性; * 优先级: 每条需求的价值,1到5个等级的奖励分和惩罚分。需要在用户观点和实现需求的成本技术风险之间取得平衡; * 明确性: 保证需求的陈述使用了精确的可测量的方法。 * 可追溯性: 能够找到所有引用这条需求的系统部分,对于需求的变化,能确定系统中受影响的所有部分。
非功能性需求(性能,安全性,可适用性,兼容性和可访问性):在需求文档中分为两级: 1. 定义作用于整个系统的非功能性需求。 2. 每条需求的描述中应有一个“非功能性需求”部分,罗列此需求需要的,不同于系统的非功能需求规格说明的特殊的非功能性需求。
每条需求都是一个能够单独确定的、可测的实体,还需要考虑需求之间的联系。可以将需求划分成几个容易管理的组(按照优先级划分\使不同组之间的联系最小),考虑组内需求的关系和不同组间的联系。
需求就绪后立即设计测试过程:
确保需求变化的传达:
注意在现存系统上进行开发和测试:
更多文章请访问我的博客,谢谢。