软件测试的分类——按测试模式来分类

安测试模式来分类:

瀑布模型、敏捷测试、基于脚本的测试、基于风险的测试、探索式测试等

常用的测试模型

1、传统的瀑布模型——最早出现的软件开发模型

项目计划——需求分析——软件设计——程序开发——软件测试——集成维护。

每一个阶段都是以上个阶段的输出作为下个阶段的输入。

项目计划:制定项目总体的研发计划,确定主要的里程碑节点。输出项目的技术书。

需求分析:明确用户需求定义,并对定义进行清晰描述。是充分理解客户需求,描述产品功能的重要阶段。输出产品的需求规格说明。

软件设计:根据需求的定义来确定产品实现方案。输出概要设计、详细设计等。

程序开发:开发团队具体实现。

软件测试:通过独立测试团队评估产品是否满足需求的定义。输出测试结果、测试报告。

集成维护:根据用户使用对产品进行必要的需改升级。

优点:

强调需求、设计的作用

前一阶段完成后,只需关注后续阶段

为项目提供了按阶段划分的检查点,里程碑清晰

文档规范

缺点:

难以适应需求的频繁变化

项目周期后段才能看到成果

强制的里程碑、完成时间点

文档工作量大

2、V模型——目前使用最广泛的模型(瀑布模型的变种)

表明了测试过程的不同阶段和开发各个阶段的对应关系

需求分析                                                             验收测试(确定软件是否满足用户的最终需求和合同的有关规定)

      概要设计                                              系统测试(软件在功能、性能这些质量特性上是否满足系统要求)

               详细设计                              集成测试(检测程序是否满足设计程序的要求)

                      软件编码           单元测试(检测程序是否满足设计程序的要求)

V模型强调了软件开发的协作和速度,反映测试活动和分析设计的关系,将软件的实现和验证有机结合起来

局限性:将需求分析放在了最后

3、W模型——测试伴随着开发周期进行

有利于尽早发现问题,改进了V模型

用户需求            验收测试设计                                           交付             验收测试

       需求分析             系统测试设计                              实施          系统测试

             概要设计                 集成测试设计                集成        集成测试

                    详细设计                  单元测试设计

                                                 编码                    单元测试

局限性:不能很好的支持迭代开发

4、X模型——针对V模型的改进

程序片段1                                                    封版

       测试设计                                         执行测试

              工具配置                             测试设计

                    执行测试                 工具配置

                           编码完整    迭代1....n

                    执行测试                   探索式测试

               工具配置

         测试设计                                        执行测试

程序片段n

左边:针对单独的片段进行的测试和编码,此后进行频繁的交接、集成

探索式测试:不进行事先计划的特殊测试,在测试计划之外发现更多错误

5、H模型——贯穿在整个软件生命周期

测试准备   测试就绪点   测试执行

                                                        测试流程

                                                        其他流程

其他测试模型

1、敏捷测试

Agile Testing——遵循敏捷宣言的一种测试实践

敏捷宣言

个体与交互  重于  过程和工具

可用的软件  重于  完备的文档

客户协作      重于  合同谈判

响应变化      重于  遵循计划

在每对比较重,后者并非全无价值,但我们更看重前者

敏捷测试

强调从客户角度进行测试;

重点关注迭代测试新功能,不在强调测试阶段

尽早测试,不间断测试,具备条件即测试

强调持续反馈

预防缺陷重于发现缺陷

敏捷测试VS传统测试

传统测试:测试是质量的最后保护者;严格的变更管理;预先的计划和细节的准备;重量级文档;各阶段测试严格的入口和出口标准;

                    更多在回归测试时进行重量级的自动化测试;严格依赖流程进行;测试团队和开发团队是相对独立的

敏捷测试:开发和测试人员是紧密合作,大家都有责任对软件负责;变更是可接受的,拥抱变更;计划随时随着仅占市场调整;只需要绝对必要的文档;

                   各迭代之间已经没有明显的入口和出口标准;所有阶段都需要自动测试,每个人都需要做,是项目集成的一部分;流程不在需要严格执行;团队合作是无缝隙合作


2、基于脚本的测试——SBT

script-based Testing

Scripted Testing(ST)

Exploratory Testing(ET)探索式测试:完全抛开测试脚本的测试

          是一种测试风格、思维而不是一种测试技术

ST:系统性强;容易管理、控制;设计在先,执行在后;主要是验证自己的思路;可预见性

ET:自由灵活;和ST是互补的;执行和设计(思考)并行;不断和系统交互,带着问题测试;学习的过程

探索式测试优点:

更能激发测试人员的创造性和工作乐趣

增加了发现新的或较深入Bug的可能性

在较短时间内找到更多Bug以及对SUT做一个快速的评估(SUT:soft ware and test)

有利于更加有效地实施自动化

更加适用于敏捷项目

减少了在简单、繁复上用例的无谓编写时间

缺点:

测试管理上有局限性,较难协调和控制

对于BUg的重复利用和重现上作用有限

对测试人员的测试技能和业务知识深度依赖较大

只有在SUT已完全可用的前提下才更有作用

ET的生产率很难定义

ET本身较难进行自动化

测试方法上分为:局部探索式测试和全局探索式测试(漫游测试法)

局部探索式测试五大要素:输入、状态、代码路径、用户数据、执行环境

全局探索式测试六大区

执行探索式测试:Know you Mession ——learning Session——Coverage Session——Deep Session——Close Session 

3、基于风险的测试——RBT(Risk-based Testing)

一种基于对软件失效的风险评估并以此指导测试计划、设计、执行、结果评价的软件测试类型

哪些是风险?

质量风险、管理风险

风险级别=风险可能性*风险严重度

识别风险

可能性:复杂性、时间压力、高变更率、技能水平、地理分散度

严重程度:使用频率、失效可视性、商业损失、组织负面影响和损害、社会损失和法律责任

风险要素风=sum(单项权重*得分)

4、基于模型的测试-MBT








你可能感兴趣的:(软件测试的分类——按测试模式来分类)