软件质量属性之可测试性
王正帅
(石家庄铁道大学,河北省石家庄市,050043)
摘 要:随影响软件测试质量的因素除了测试技术与方法,还包括对测试过程的管理。本文旨在探讨上述过程的管理内容与管理方法,通过提高过程的可视性和可控性即提高过程能力来提高软件测试的质量。通过本文研究,得到如下成果:一、论述了软件测试过程对测试质量的重要影响;二、引入MVC框架来描述可测试性的具体作用和意义;三、得到了提高软件的可测试性的几种方法。
关键词:可测试性,MVC框架,软件测试用例管理
Software quality attributes - testability
WangZhengshuai
(ShiJiaZhuang TieDao University,Shijiazhuang, Hebei province,050043,China)
Abstract:The factors that affect the quality of software testing include not only testing techniques and methods, but also the management of the testing process.
The purpose of this paper is to explore the management contents and methods of the above process, and to improve the quality of software testing by improving the visibility and controllability of the process. Through the research of this paper, the results are as follows: first, it discusses the important influence of the software testing process on the testing quality; second, it puts forward the software testing process management method; third, it obtains the application effect of the process management method in the pilot project.
Key words:testability,MVC framework,Software test case management
引言:
我国近几年来软件产品的出口正在迅速增长,国内软件产品的应用也越来越广泛,市场对软件质量重要性的认识正由此而逐渐加强。通过开展软件测试,可以充分暴露软件中潜在的各种缺陷,从而提高软件产品质量。在这样的背景下,我国的软件测试行业正在从萌芽状态中逐步发展起来。影响软件测试质量的因素除了测试技术与方法,还包括对测试过程的管理.下面我将谈谈对软件测试过称管理的认识。
一、进行软件测试管理的原因
1.软件测试的工作量要占整个软件开发工作量的40%以上,对于高可靠、高安全的软件来说,这一比例可能会达到 60%~70%。因此,软件测试是软件开发过程中的一项重要工作,必须对其进行科学有效的管理。
2.一项软件测试工作涉及到技术、计划、质量、工具、人员等各个方面,是一项复杂的工作,因此需要对其进行管理。
3.任何软件测试工作都是在一定的约束条件下进行的,要做到完全彻底的测试是不可能的。4.只有系统化、规范化的软件测试才能有效地发现软件缺陷,才能对发现的软件缺陷实施有效的追踪和管理,才能在软件缺陷修改后进行有效的回归测试。
二、软件可测试性战术分析
1.可测试性战术的目标是允许在完成软件开发的一个增量后,轻松地对软件进行测试。
2.测试的目标是发现错误。
3.可测试性战术的目标:
图1可测试性战术的目标
4.可测试性战术总结:
图2可测试性战术总结
4.1输入/输出
记录/回放(Record/playback ):记录/回放是指将捕获跨接口的信息,并将其作为测试专用软件的输入。
将接口与实现分离(Separate interface from implementation ):将接口与实现分离允许实现的代替。占位实现允许在缺少被占位组件时,对系统的剩余部分进行测试
特化访问路线/接口:具有特化的测试接口允许通过测试工具并独立于其正常操作,来捕获或指定组件变量的值
4.2内部监视
组件可以根据内部状态实现战术,以支持测试过程。
内部监视器(Built-in monitors ):组件可以维持状态、性能负载、容量、安全性或其他可通过接口访问的信息。当监视状态被激活时可以记录事件。
三、MVC框架可测试性体现
MVC框架把应用程序分成三个核心模块:模型、视图、控制器,它们各自处理自己的任务。
图 3 MVC框架分层图解
根据MVC架构,我们大致可以把测试用例分称三个方面,分别是功能、UI和业务流程,从这三个角度来进行设计。
1、从功能的角度,功能是每个项目测试的重点,通常在测试人员得到需求文档的时候,我们就开始设计测试用例,那么这个时候需求文档上列出都是功能以及部分一些业务逻辑等,所以在测试用例的第一阶段就是完成功能的用例设计。不过这里,肯定会让很多人疑惑,其实功能、业务还有UI,都是有关联的,而且很多时候无法分解的。这里后面我会举个例子说明哈,但绝非都是可以分类,只是谈谈如何分解的方法,最重要的就是不要遗漏就行。
2、从UI的角度,UI通常是指界面测试,这个应该不难理解,但要想与功能点进行分解,也不是那么容易区分的,所以我们来直观的说明。界面测试,注重样式,外观、整洁、摆放以及易用性,还包括用户体验等。
3、从业务的角度,这个相对来说,还比较好理解,业务通常是指一连串的动作所连接起来的流程,这个流程必须有行为和目标,或者说方向。业务通常是一个项目或者产品设计的核心,当下,越来越多的应用业务流程都是非常复杂,所以对于业务的用例设计,就是考验一个测试人员的业务水平如何。
下面通过一个证券交易平台上的买入和撤单业务,进行具体说明:
业务说明:买入业务包括股票代码、当前价格、买入价格,买入股票数量、确定买入按钮和取消按钮;
撤单业务包括选择撤单的未成交业务、撤单成功、撤单失败以及取消撤单按钮;功能点:买入按钮、取消按钮、选择撤单、撤单按钮和取消撤单按钮等
UI界面测试:股票代码、当前价格、买入价格、买入股票数量,所有的文本框;买入成功/失败的提示框;撤单成功/失败的提示框;撤单成功/失败的业务状态等
业务测试:买入业务,从输入买入表单的数据,到提交表单,到最后买入的表单显示的位置,以及买入提交但未成交,可以撤单,完成撤单的业务,到撤单成功或者失败等,这一连串的工作组合就是一个业务流程。
其实这里就存在一个争议性的问题,对于买入和撤单,既可以作为功能点,也可以作为一个业务逻辑来设计,但从本质上来讲,功能点注重单独的操作,而业务流重的在是一个流程,还需要具体业务去甄别。功能点的设计更主要对这个买入和撤单的按钮本身进行用例设计;而业务则是需要从买入和撤单之前的输入到最后输出这样一个过程来设计。
对于测试来说,用例是基础,对于回归测试、自动化、性能等等都是根本,管理好测试用例,也就是提高测试的工作质量。
四、总结
本文从归纳软件测试质量的影响因素入手,重点分析了过程能力对软件测试质量的影响,进而提出了软件测试项目过程管理方法,并通过案例分析验证该方法的可行性和有效性。本文的逻辑框架主要是由问题分析、管理方法提出、实践总结三大部分组成。首先通过论证过程能力对测试质量的影响阐明过程管理的重要意义。其次通过分析软件测试项目的典型活动流程,论述了软件测试过程对测试质量的重要影响和引入MVC框架来描述可测试性的具体作用和意义。
参考文献:
[1] 林锐《软件工程思想》
[2] Vince《软件可测试性设计》
[3] 刘菲菲,赵怀勋,祁冰:《软件测试性分析方法的研究》
[4] 聂长海.关于软件测试的几点思考[J].计算机科学,2011第二期,02
[5] 蔡一博.国内软件测试现状分析[J.东方企业文化,2010第三期,103
[6] 郑丽娜,王威,周悦.中国第三方软件测试发展现状分析[J].软件产业与工程,2012第五期,38-39