软件测试的分类
按测试模式来分类
瀑布模式、敏捷测试、基于脚本大的测试、基于风险的测试、探索式测试等
传统的瀑布模型(传统软件工程学的开发模式)
项目计划-->需求分析-->软件设计-->程序开发-->软件测试-->集成维护
项目计划:制定项目总体的研发计划,确定项目主要的里程碑节点;需要输出项目计划书。
需要分析:明确用户的需求定义,并对定义进行清晰的描述,是充分理解客户需求,详细描述产品功能的一个重要阶段;需要输出产品的需求规格书。
软件设计:根据产品的定义,确定产品的实现方案;包括定义软件与硬件的结构,组件模块的实现方法,接口、界面、数据如何组织,需要输出概要设计、详细设计在内的多份说明书。
程序开发:由开发团队根据需求和设计具体实现产品的功能,根据编程规范编写各类组件和模块,最后输出产品版本。
软件测试:通过独立的测试小组(QA团队)来评估产品是否满足需求的定义,需要输出测试结果、测试报告。
集成维护:产品经过测试后交付给用户,根据用户的使用情况,对产品进行维护,及必要的修改、升级的操作。
瀑布模式的有缺点
优点
1、强调需求、设计的作用
2、前一阶段完成后,只需要关注后续阶段
3、为项目提供了按阶段划分的检查点,里程碑清晰
4、文档规范
缺点
1、难以适应需求的频繁变化
2、项目周期后段才能看到成果
3、强制的里程碑、完成时间点
4、文档工作量大
优点
描述了测试与软件开发过程的对应关系。
强调了软件开发的协作与速度,反应测试活动和分析设计的关系,并且将软件实现和验证有机的结合起来,明确界定测试过程存在不同阶段的,明确了不同测试阶段和研发过程每个阶段的对应关系。
缺点
把测试当做软件编码后的阶段,忽视了测试对需求的分析和验证,对需求与概要的验证要到后期才能进行,不符合软件测试需要尽早进行的感念。
软件开发过程中,各个阶段测试都参与,测试伴随软件开发的整个开发周期
优点:能尽早的发现软件的缺陷;有利于尽早的发现软件的风险,及早的制定相应的应对方案,加快项目的进度
缺点:需求设计编码还是串行的关系,测试开发保持着一种线性的关系,在上一个阶段完成后才能进行以一个阶段,不能很好的支持迭代场景。
解决交接与频繁集成周期的问题。
分片段进行测试。
把软件测试当做一个独立的流程,贯穿在整个软件测试周期当中,与其他流程并发进行。