基于W模型的软件测试设计与实现

2012-04-29 05:47:22张瑞青董淑娟
电脑知识与技术 2012年20期
关键词:软件测试

张瑞青 董淑娟

摘要:该文首先简单分析了软件测试重要性,然后介绍了W模型及其对软件测试的指导作用,最后以模拟Margarita Mid的COPY模块为为测试对象,采用W测试模型,以等价类划分、边界值分析、错误推测法为主要方法,实现从需求分析、系统设计到编码各个软件开发阶段的测试设计与实现。

关键词:软件测试;W模型;测试设计

中图分类号:TP393文献标识码:A文章编号:1009-3044(2012)20-4909-03

W Model-based Software Test Design and Implementation

ZHANG Rui-qing,DONG Shu-juan

(Information Engineering, Yellow River Conservancy Technical Institute, Kaifeng 475001, China)

Abstract:This paper analyzes the importance of software testing Briefly,and then introduced the W model and its role in guiding the soft ware test. finally, to the analog Margarita Mid COPY modules for the test object, using the W-test model to equivalence partitioning, boundary valueanalysis, error guessing method as the main method to achieve from the needs analysis, system design to coding each soft ware development phase of the test design and implementation.

Key words:software testing; W model; test design

1绪论

随着计算机软硬件技术的不断发展,计算机应用已经深入到我们整个社会的经济体系,甚至人们生活的各个层面中。在计算机应用的过程中,人们对计算机软件的依赖性也越来越大。虽然质量可靠的软件给我们的工作和生活带来了前所未有的便利,但是质量不好的软件也让我付出了惨痛的代价[1]。这让我们逐渐认识到软件质量正在牵动着社会的命脉,提高软件质量是软件开发过程中非常重要的一个环节。

为了提高软件质量,软件开发人员进行了大量的研究和实践。最初的研究重点是技术革新,从各种软件工具,如编辑、编译、调试工具等到各种计算机辅助软件工程环境,同时注重软件开发模型的研究。但是这种以技术、方法为重心的作法未能达到保证软件质量的目的。不过,在这个过程中,人们逐渐认识到只有对软件开发过程的质量加以控制,才有可能大幅度的提高软件质量。因此,软件质量保证也从最初的技术、方法为重心转移到以过程管理为重心。

软件质量保证的本质是为了确保软件开发过程和结果符合预期要求而建立的一系列活动及其结果评价,其最终目的是缺陷预防。软件测试作为软件质量保证中重要的一项活动,则是通过检测错误,发现缺陷来保证软件质量。因此,在软件开发的过程中,如何采取有效的测试方法,对软件进行合理的测试设计,已经成为当今保证软件质量的一种重要途径。

2 W模型

目前主流的软件开发模型有瀑布模型、原型模型、螺旋模型、增量模型、渐进模型、快速软件开发(RAD)以及Rational统一过程(RUP)等,这些模型对于软件开发过程具有很好的指导作用,但在这些过程方法中,并没有充分强调测试的价值,也没有给测试以足够的重视,利用这些模型无法更好地指导测试实践。软件测试是与软件开发紧密相关的一系列有计划的系统性的活动,也需要测试模型去指导实践。目前常见的软件测试模型有V模型、W模型、H模型、X模型等[3]。

W模型是众多测试模型中相对比较成熟的一种测试模型。它本质上是在V模型的基础上,基于“尽早地和不断地进行软件测试”的原则而设计的。该模型强调测试应该伴随着软件的整个开发周期,测试的对象不仅仅是程序,还包括需求、功能和设计。因此,在W模型中,只要相应的开发活动完成,就可以开始执行测试,即,测试与开发是同步进行的,从而有利于尽早地发现问题。以需求为例,需求分析一完成,我们就可以对需求进行测试,而不是等到编码完成后才进行针对需求的验收测试。具体如图1所示。

在W模型中,软件开发各个阶段的文档是软件测试开始的重要准则之一,即一旦某个开发阶段的文档一经交付,就要及时确定测试条件,以及编写测试用例,这对测试的各个级别都有意义。例如,当需求被提交后,就需要确定高级别的测试用例来测试这些需求。当概要设计编写完成后,就需要确定测试条件来查找该阶段的设计缺陷。如果测试文档能尽早提交,那么就有了更多的检查和检阅的时间,这些文档还可用于评估开发文档。另外,测试者可以在项目中尽可能早地面的规格说明书中的挑战。这意味着测试不仅仅是评定软件的质量,测试还可以尽可能早地找出缺陷所在,从而帮助改进项目内部的质量。参与前期工作的测试者可以预先估计问题和难度,这将可以显著地减少总体测试时间,加快项目进度。

3模拟Margarita Mid的COPY模块的测试设计

该文通过一个实例,以模拟惠普打印机Margarita Mid的COPY模块为测试对象,采用W测试模型,以等价类划分、边界值分析、错误推测法为主要方法,实现从需求分析、系统设计到编码各个阶段的测试设计。

3.1需求阶段测试设计

为了更好的对模拟Margarita Mid的COPY模块进行测试,首先需要测试人员要熟悉该软件各个模块的需求。由于缺乏完整的需求资料,该文采用输入随机命令和数据、请专业人员演示和阅读相关帮助文件等方法来了解应用程序,整理出测试需求。对于整理出的测试需求文档,该文主要依据以下5条原则来对其进行测试。

1)需求文档是否具有清晰的格式和文档结构。

2)需求文档的内容是否正确、完整,描述是否明确、无二义性。3)需求文档所描述的需求是否必要、可行、可追踪、可更新。

4)需求文档所描述的需求是否可证实、可测试.

5)对不同的需求是否定义了优先级。

在需求测试通过测试的基础上,测试人员根据W模型的指导,首先列出测试项及测试特征,然后根据这些内容确定测试方法和测试所需要的软硬件环境、制定测试通过与失败的标准、风险和意外情况应对措施、估算测试所需人力以及整个项目规划的大致测试周期并搭建测试环境。在此基础上制定详细的用户的验收测试以及系统测试计划。

3.2设计阶段测试设计

在对模拟Margarita Mid的COPY模块进行设计实现后,该文根据详细设计的具体内容,设计出测试用例模板,以等价类划分、边界值分析、错误推测法为主要方法来设计具体的测试用例。由于时间和环境限制,该文所设计的测试用例主要针对软件的功能来进行系统测试。具体测试用例设计流程如图2所示。

测试用例的评审能够使用例的结构更清晰,覆盖的用户场景更全面。因此,在测试用例设计后,该文以召开组内评审会议的形式完成了测试用例的评审。与会者在设计人员讲解之后给出意见和建议,同时进行详细的评审记录。结合被测对象的特点,该文评审的重点如下。

1)测试用例本身的描述是否清晰,是否存在二义性。

2)测试用例的设计的是否存在冗余性,都造成了测试用例的执行效率低下。

3)是否针对需求跟踪矩阵,覆盖了所有的软件需求。

通过小组评审会议讨论,本次设计中,80%的测试用例通过评审,作为可执行测试用例保存下来。

3.3编码阶段测试设计

编码完成后,模拟软件基本成型,在该阶段可以采用白盒测试中的逻辑覆盖法进行程序内部逻辑测试,并根据需要编写适当的桩模块和驱动模块来配合单元测试的进行。由于该文实例主要完成系统功能测试,所以在编码完成后,测试工作主要集中表现为执行测试和缺陷管理。

执行测试的过程中,如何对发现的缺陷进行合理的管理,是进行测试工作的关键。通常情况下,合理有效的管理能够保证软件缺陷及时有效的得到解决,同时保证测试工作的效率。该文采用的缺陷管理流程如下。

1)测试人员发现缺陷后,填写缺陷报告,设置缺陷状态为“开放”。

2)项目经理浏览所有状态为“开放”的缺陷并进行判断,如果缺陷可接受,则指定负责人,并标记缺陷状态为“已分配”,否则标记缺陷状态为“拒绝”。

3)缺陷负责人浏览所有分配给自己的缺陷进行修复,修复完成后,标记缺陷状态为“已修复”。

4 )测试人员浏览所有“拒绝”的缺陷,重新测试,提交缺陷报告。同时对于“已修复”的缺陷进行二次验证,如果确实被修复则标记缺陷状态为“关闭”,否则重新设置缺陷状态为“开放”。

本小组对被测软件执行了3次完整的测试循环,组合起来的测试覆盖率达到了100%。在最后一轮的测试运行中,90%的测试用例通过,同时没有发现灾难性的缺陷。基于这种结果,测试小组建议被测软件通过测试。

4小结

近20年来,随着软件工程思想在国内的不断普及,软件测试在保证软件质量方面的作用日趋明显。测试工作开展的深度与广度,很大程度上决定了软件的质量、成本、工期。软件测试过程模型是软件测试的工作框架,用于指导软件测试的全过程。该文采用W模型指导测试模拟惠普打印机Margarita Mid的COPY模块,尽早地和不断地对被测对象进行软件测试,这不仅充分保证了测试工作的质量,而且完整的体现了软件测试的工程化思想。

参考文献:

[1]王茂森.软件质量的重要性及提高方法[J].山东省农业管理干部学院学报,2007,23(1).

[2]徐芳.软件测试技术[M].北京:机械工业出版社,2009.

[3]邓璐娟.软件测试模型及X模型的改进[J].郑州轻工业学院学报:自然科学版,2011(1).

猜你喜欢
软件测试
软件测试方向人才培养“1+X”融合研究
基于OBE的软件测试课程教学改革探索
计算机教育(2020年5期)2020-07-24 08:53:20
航天软件测试模型构建与应用
软件(2020年3期)2020-04-20 01:45:34
基于MBD模型自动生成测试用例的软件测试方法
测控技术(2018年9期)2018-11-25 07:44:18
计算机软件测试方法的研究
电子测试(2018年14期)2018-09-26 06:05:06
EXCEL和VBA实现软件测试记录管理
电子制作(2018年16期)2018-09-26 03:27:18
关于软件测试技术应用与发展趋势研究
电子测试(2017年15期)2017-12-18 07:19:20
一种航空机载软件测试项目的进度改进模型
电子测试(2017年12期)2017-12-18 06:36:14
军用软件测试文档生成设计与实现
电子测试(2017年12期)2017-12-18 06:35:35
软件测试工程化模型及应用研究