APP下载

常用软件测试模型分析及优化

2018-09-03付帅孙云杰

西部论丛 2018年8期
关键词:基本概念PDCA循环

付帅 孙云杰

摘 要:随着IT产业的快速发展,软件测试的质量得到了企业和客户的高度重视,软件测试行业的前景也很光明。本文从软件测试的基本概念开始,重点介绍软件测试过程中涉及的几个关键阶段。

软件测试过程包括测试要求分析,测试计划准备,测试计划开发,测试用例设计和测试环境。准备,测试数据准备,测试用例执行,错误跟进,回归测试以及测试报告编写和摘要。测试的每个阶段基本上是PDCA循环体,也称为Deming循环,它是质量改进模型。P(Plan)代表计划,D(Do)代表执行,C(Check)代表检查,A(Action)代表处理。通过PDCA循环来达到提高软件测试质量的目的。

关键词:基本概念 软件测试过程 PDCA循环 软件测试质量

1 软件测试的基本概念

测试软件是软件生命周期中的重要阶段,也是软件质量保证的关键步骤。软件测试是执行程序以发现软件错误和缺陷,记录问题并修复它们以确保软件质量的过程。软件测试可用于检查系统是否满足预期要求。

2 软件测试的过程概述

测试人员应尽早参加软件测试活动。软件测试过程包括以下阶段:

a)测试需求分析;b)測试计划的编写;c)测试方案的制定;d)测试用例的设计;e)测试环境的搭建;f)测试数据的准备;g)测试用例的执行;h)Bug的跟进及回归;i)测试报告的总结及编写。

以上几个阶段实质上就是一个PDCA循环体。首先,在分析软件需求的前提下规划和设计测试活动,然后根据既定计划测试和记录测试。检查并分析测试结果以形成测试报告。因此形成了一个质量改进的闭环。从而达到提高软件测试质量的目的。通过完整的软件测试过程,您不仅可以发现软件缺陷,还可以发现错误,分析错误,查找错误分布特征和规则。这反过来又帮助项目经理识别当前用于改进的软件开发过程中的缺陷。

3 软件测试过程

3.1 测试需求分析

a)测试需求分析的目的

1)分析确定测试范围;2)分析确定处理分支;3)分析确定所需要的业务场景;4)分析确定各功能点对应的预期处理结果。

b)测试需求分析的依据

在软件测试需求分析阶段,我们需要根据“软件需求规范”逐项分析系统的各种需求。这包括功能要求,性能要求,安全要求,易用性要求,兼容性要求和安装要求。并列出需求列表清单,对需求进行剖析,拆分至详细的子需求点。

c)测试需求分析的方法

1)拆分《需求规格说明书》

在测试需求分析阶段,通过将“需求规范”拆分为需求跟踪矩阵的形式,并对各种需求进行分类,如功能要求,性能要求,安全要求,易用性要求,兼容性要求,安装要求等。重点对功能需求在分析时进行明确指出哪些是业务功能,哪些是辅助功能,哪些是数据约束、哪些是编辑约束等。

2)分析业务场景

通过对不同的业务场景进行业务分析,考虑实际业务场景的调用者,并绘制相应的业务流程图,检查是否可以遍历所有业务场景并设计涵盖所有业务场景的测试用例。

3.2 测试计划的编写及测试方案的制定

软件测试计划是测试过程的总体设计。通过收集项目和产品相关信息,分析测试范围,测试风险以及估计测试用例,工作量,资源和时间。对测试中使用的策略,方法,环境,资源和时间表做出合理安排。

测试计划的编写遵循5W原则,即:

a)When:何时开始做,何时结束测试,有必要合理安排测试进度;

b)What:我们要做什么?要明确的罗列出来,便于明确我们的测试方向和重点,及后期划分责任模块,即确定测试范围;

c)Who:谁要参与这次项目的测试?具体负责哪个模块的功能测试?主要负责任务是?都是在这个里面进行明确的责任划分,即进行测试资源安排;

d)How:如何测试,确定我们的测试策略:它是否包括功能测试,性能测试,安全测试,安装测试,可用性测试和兼容性测试,即确定测试策略;

e)Where:这个是说把文档放在哪里,就明确指出我们的输出文档有哪些:比如说测试用例,Bug清单、测试报告等等文档要存放的位置,作用就是规定输出文档以及输出文档的存放位置,即确定测试的输出。

我们根据测试计划编写的5W原则可以进行编写完整的测试计划,测试计划模板可如下所示:

1概述

1.1 测试项目简介

1.2 测试范围说明

2测试目标

3测试资源

3.1 软件资源

3.2 硬件资源

3.3 测试工具

3.4 人力资源

4测试种类和测试标准

4.1 功能测试

4.2 性能测试

4.3 安装测试

4.4 易用性测试

5测试要点

6测试时间和进度

7风险及对策

3.3 测试用例的设计

编写测试用例可以使测试覆盖更加全面,使测试工作井然有序,便于切换和通信。结构合理,案例覆盖面广,可执行,可重复。

测试用例一般包含的要素:用例编号,测试范围描述,测试模块描述,用例标题,前提条件,测试数据输入,测试程序,测试用例优先级(致命,严重,一般,次要,推荐),预期结果,执行结果。

测试用例的常用方法如下所示:

a)等价类划分法。等价类划分方法是典型的黑盒测试方法。它对无法详尽的输入条件进行分类,并使用等价类中的测试条件作为查找系统缺陷的输入代表。如果在这种输入条件下也找不到系统缺陷,则与此等价的其他输入也找不到系统缺陷,反之亦然。等价类考虑单个输入字段的各种情况,避免输入数据的不完整性和覆盖的不稳定性,无论是盲目还是随机。

b)边界值。边值分析方法是一种测试用例设计技术,它补充了等价类划分方法。在测试期间,可以忽略边界值的条件,并且在输入或输出范围的边界处发生软件设计中的大量错误。而不是发生在输入输出范围的内部。因此,为各种边界条件设计测试用例可以识别更多的系统缺陷。

c)基本路径分析法。基本路径方法是设计白盒测试用例的一种方法,但它也可用于设计黑盒测试用例。重点是设计系统业务流程图,确定流程分支,并根据覆盖程序分支的原则选择测试数据来设计测试用例。这样设计的测试用例就覆盖了主流程,但是对于一些存在循环的流程就很少考虑。

d)正交表法。正交表分析方法可以有效地减少设计测试用例的数量。正交表设计测试用例的步骤如下:

列出系统功能的影响因素,即系统功能输入条件;

明确每个因素的输入参数;

选择合适的正交表来列出所有正交表值;

把变量的值映射到表中;

根据正交表分析,编写测试用例。

e)因果图。因果图方法是通过图形分析输入的各种组合来设计测试用例的方法,并且适用于检查程序输入条件的各种条件的组合。设计因果关系测试用例的步骤如下:

分析所有可能的输入和可能的输出;

找出输入和输出之间的对应关系;

画出因果图;

把因果图转换成判定表;

根据判定表设计测试用例。

f)场景设计法。场景设计方法是Rational的RUP开发模型所倡导的测试用例设计思想。测试人员根据系统功能触发事件,进行发散思维,考虑系统功能的主业务场景和扩展业务场景,并根据实际业务场景编写测试用例。

g)异常分析法。主要是构造环境异常来看测试结果,比如网络中断,服务器宕机等。

h)错误猜测法。虚假猜测旨在通过根据经验和直觉猜测程序中可能发生的各种错误来针对测试用例。

3.4 测试环境的搭建与维护

测试环境是完成软件测试所必需的计算机硬件,软件,网络设备和历史数据的通用术语。那就是测试环境=软件+硬件+网络+数据准备+测试工具。

在设置测试环境时,请尝试考虑测试环境与正式环境之间的差异,并确保测试环境的稳定性。它有助于顺利执行测试用例,并在测试环境中及时再现软件缺陷。

如何搭建和维护稳定的测试环境呢?一般我们和开发人员进行沟通,根据测试计划中提供的软件和硬件资源,借鉴开发人员搭建的本地环境和其他类似环境的说明文档,即可进行搭建和维护测试环境。

3.5 测试用例的执行

测试要求的分析,测试计划和测试用例的准备,测试环境的构建和维护都准备好用于测试执行。测试用例的执行是测试过程的一项重要活动。在进行测试时,我们应该注意以下几点:a)选择合理的测试用例;b)测试的分工及资源的利用;c)在测试执行时,建议大家要先进行冒烟测试,即先进行整个业务流程的验证,再进行细节的验证;d)在执行测试时,及时记录bug;e)如果在进行测试时测试用例覆盖率不足,则需要及时补充;f)我们将进行多轮循環测试,直到满足测试要求。

3.6 bug的跟进及回归

在执行测试的过程中,如果发现测试用例失败,我们将及时记录错误。那么我们如何记录高质量的bug呢?记录bug时,我们应该包括问题范围、问题错误行为描述、问题发现的版本、问题出现的环境、问题预期行为的描述和问题的重现步骤和问题截图等。我们可以把 bug录入缺陷管理系统,比如 bugfree等,在管理工具中,我们指派给相应的开发人员,待开发人员解决问题更新状态后,我们再进行验证,直至问题关闭。

因软件底层架构设计等因素,等大多数问题关闭后,可能由于开发人员修改一个微小的问题,而导致影响其他功能的正常使用,故当我们进行完一轮测试后,我们还要进行多轮循环测试验证,即回归测试,直至满足测试要求。

3.7 测试报告的总结及编写

测试执行完成后,我们可以通过记录的 bug和跟进的 bug状态及分布情况,对 bug进行各维度汇总分析,确定软件缺陷的规律,并帮助项目经理了解软件开发过程中的缺陷以进行改进。

3.7.1软件测试报告的编写

我们可以从bug的总体数量,bug分类,bug类型分布,bug模块分布,bug状态分布,bug的趋势等维度进行分析软件问题。进而帮助我们编写软件测试报告。软件测试报告的内容包括以下内容:

a)测试项目简介;b)测试目标及范围;c)测试过程;d)测试情况分析;e)测试总结。

3.7.2软件测试总结

软件测试摘要包括软件资源消耗的摘要和软件测试经验的摘要。

a)软件资源消耗情况:包括投入了多少测试人员,用了多长时间,执行了多少测试用例,覆盖了多少功能模块等;

b)软件测试经验:包括成功的测试经验和失败的教训,比如哪些测试用例设计得比较好,覆盖比较全面,采用的哪些测试策略比较好等。

4 结束语

软件测试过程应该是一个完整的PDCA循环体。我们不会再执行完最后一个测试用例就戛然而止了,我们还会进行多轮的回归验证,直至满足软件测试的要求。PDCA循环是一个自我完善和改进的全闭环模型,对于质量的不断提高和改进非常有效。

参考文献:

[1] 陈能技.软件测试技术大全:测试基础 流行工具 项目实战(第二版)[M].北京:人民邮电出版社.2011.

猜你喜欢

基本概念PDCA循环
PDCA循环在医院科技档案管理中的应用
督导制下PDCA循环的园林工程施工质量控制体系的构建
PDCA循环应用于
利用线性方程组直观理解线性代数的基本概念
PDCA循环在企业绩效管理中的实际运用
浅谈高三思想政治课复习方法