软件测试的目的及原则:
目的:验证软件有或没有问题
原则:以客户为中心,遵循软件测试的规范、流程、标准和要求
什么是bug
当且仅当规格说明书存在的并且正确,程序与规格说明书不匹配才叫错误;
当没有需求规格说明书时,判断标准最终由用户决定。
测试生命周期
需求分析、计划、设计、编码、测试、运行维护
开发模型
- 瀑布模型
强调开发的阶段性,强调早期计划及需求调查,强调测试。风险在后期测试才能显露,不能早早得到修改 - 螺旋模型
渐进式开发模型之一。适用于规模大、复杂度高、风险大的项目。强调全过程风险管理,引入非常严格的风险识别、分析和控制。 - 增量、迭代
增量是逐块建造;迭代是反复求精的概念。 - 敏捷开发
敏捷宣言:
个体交互大于过程和工具;
可用的软件大于完备的文档;
客户协作大于合同谈判;
响应变化大于遵循计划;
在每对比对中,后者并非全无价值,但我们更注重前者。
敏捷开发中比较流行的是scrum,scrum将产品的开发分解为若干个小sprint(迭代),其周期为1周到4周不等。成员5-9人。每期迭代要完成的user story是一定的,每次迭代会有一定的交付。
敏捷中的测试
- 挑战
挑战1:轻文档
挑战2:快速迭代
测试人员一切遵循敏捷开发原则,不能依赖文档,测试用例作用减弱,更多的用思维导图、探索性测试。讲求合作。
软件测试v模型
用户需求—需求分析与系统—概要设计—详细设计—编码—单元测试—集成测试—系统测试—验收测试
单元和集成测试检测程序是否满足软件设计的要求。
系统测试检测系统功能、性能质量特性是否达到系统要求的指标。
验收测试确定软件的实现是否符合用户和合同的需求。
软件测试W模型
用户需求—需求分析和系统—概要设计—详细设计—编码—集成—实现—交付
用户需求和验收测试准备—需求分析和设计系统测试准备—概要设计和集成测试准备—详细设计和单元测试准备—单元测试—集成测试—系统测试—系统测试—验收测试
测试和开发是同步执行的
软件测试和配置管理
配置管理是通过对软件生命周期不同时间点的软件配置进行标识,并对这些软件配置项的更改进行系统控制,从而达到保证软件产品的完整性和可塑性的过程。
优点:
能够对文档、代码的变化进行有效的管理;
能够方便重现某个文件的历史版本;
能够重新编译某个历史版本,使得维护工作变的容易。
能够使得异地多团队开发、并行开发成为现实。
提高项目组人员流动时的工作效率。
测试人员应该从配置库取源代码编译后再测试,只有看见新的构建版本不在出现bug,才能将那个bug关闭。