胡静懿 熊川霎
摘要
针对软件测试计划编写不受重视或者软件测试计划“束之高阁”的现象,文中综合了软件测试组的实践经验,以智能电表为例,论述了如何制定一份合理的且高效可行的测试计划。其中重点强调了软件测试计划的内容应该囊括整个软件测试的方法;测试计划的编写应该贯穿整个软件流程且必须在需求分析之后输出。最终从需求覆盖度,版本情况比对以及人力成本核算三个角度验证了该测试计划的有效性。
【关键词】智能电表 软件测试计划 需求分析测试设计
国内许多中小型软件公司的软件测试流程不规范,软件测试人员对于软件测试计划的重要性理解不深刻,往往在没有进行软件测试计划设计编写或者是将原有项目的测试计划进行简单的修改就直接应用在新的测试项目中。由于缺乏指导性的文件指引,在后期测试过程中经常会发现测试点遗漏,测试重点的优先级没有进行区分导致软件研发在后期进行大规模的回归测试或者频繁的进行全功能测试,测试资源配置不到位测试执行阻塞,测试时间安排不合理导致测试时间不足,测试版本发布过多,测试用例编写的不合理导致需求变更后测试用例大范围更改等一系列的问题。
公司测试人员在实际工作中对上述问题深有体会,并进行了一系列的改革实践,将诸多软件测试设计理论转化成了本文中现实可行的设计方法。
1 软件测试计划编写思路
在编写软件测试计划的时候首先要分析公司现状:
(1)公司软件测试主要负责的产品为智能电表;
(2)鉴于智能电表软件是基于嵌入式系统的特点,软件的功能测试占了很重的比例;
(3)验证电表项目中客户需求是否真正实现是软件测试最基本的目标。
其次,考虑编写的软件测试计划在实施过程中应该产生的作用:
(1)为测试工作整体的规划安排提供指导;
(2)帮助测试主管或测试经理了解项目进程以及实施情况,合理的安排和调整资源;
(3)帮助测试人员更加全面的编写测试用例,合理的安排测试进度等。
最后,考虑在软件测试计划实施过程中可能的影响因素:
(1)分析公司的软件测试模型以及测试流程制定出符合当前公司现状的测试计划;
(2)要充分的考虑测试计划的可操作性,充分分析能够调用的一切资源以及受到的限制,可能出现状况的可调整方案;
(3)软件测试计划要贯穿在整个软件项目过程中,根据项目的实际实施情况以及需求变更情况及时的做出调整;
(4)软件测试计划周知相关的项目管理人员、研发人员等并进行评审以确保测试计划的可执行性;
(5)测试组人员必须及时跟踪软件开发的过程以及变更(项目计划的变更、需求的变更、测试产品版本的变更、测试资源的变更)情况,以确保测试计划的变更与软件开发以及项目计划同步。
综上,本文的重点旨在以智能电表软件功能测试计划编写为例,从“需求分析”出发,衍生出“测试范围”到“测试策略设计”,最后到“测试执行规划”(包括测试优先级划分及版本规划、资源配置等)详细论述如何编写合理的,行之有效的测试计划指导整个测试的过程,保证软件测试的充分性,减少不必要的人力、时间的浪费。
2 软件测试模型分析
公司主要采用“W模型”开发方式,在这种开发方式下,将测试计划的编写贯穿到整个开发周期中。软件测试计划的编写应该囊括所有的测试方法包括功能测试,集成测试,稳定性测试,系统测试。充分分析几种测试方法的测试阶段,测试环境差异,测试资源配置,有针对性的规划测试版本,安排测试内容。
3 软件测试流程分析
公司的软件测试过程主要包括以下几个方面:需求分析、测试计划编写及评审、测试设计及评审、测试实施、测试执行、测试报告编写。在该流程中,测试人员在需求分析阶段就介入整个项目流程,使得测试人员能够明确测试范围,验收标准,搭建合理的测试架构,制定可执行的测试计划。测试计划应该作为测试的起始步骤,指导以及贯穿整个测试过程,避免“任务导向”以及“无目的无安排”的测试,减少人力资源以及时间的浪费,使得测试人员在规定的时间期限内交付满足需求的令客户满意的产品。在软件测试流程过程中若发现变更则需要根据实际的变更情况重新修改测试计划,重新安排测试。
4 软件测试计划的撰写
分析了公司的测试模型以及测试流程之后,下面主要以智能电表为例详细的阐述如何编写一份合理的行之有效的测试计划。
4.1 测试需求分析
进行需求分析的目的是为了了解客户的验收标准,规划测试的版本,了解测试的范围设计测试点,识别测试场景进而交付令客户满意的、满足测试需求的产品。在智能电表行业中主要的测试分为两大块,基表测试和通信测试,基表功能测试主要在集成测试阶段完成,通信测试主要在系统测试阶段完成。基表的功能模块主要有:计量、需量、时钟、费率、显示、负荷控制、升级、负荷曲线、结算、事件记录等。通信测试主要包括4G、PLC、RF、M-bus等。针对不同的功能,客户一般会有不同的需求,我们要分析出主要的测试点、测试的重难点、从而设计出完全覆蓋测试需求的测试用例。同时,不同的区域对智能电表会有侧重点,比如有些区域测试与窃电的检测,有些地方侧重于通信的测试,因此我们要根据需求的具体情况划分测试点的优先级。
4.2 测试策略设计
下面以智能电表中负荷曲线的选择性抄读功能为例给出详细的测试策略设计步骤。如表1所示。
4.2.1 需求分析
选择性抄读功能的原始需求为通过range和entry的方式进行选择性抄读。
4.2.2 测试范围
根据曲线选择性抄读的原始需求点衍生出需求的测试范围并对测试范围进行分析,详情见表1的需求->测试范围->测试范围分析。
4.2.3 测试设计
根据测试范围给出对应的测试用例标题,根据测试用例的类型给出不同的测试点应该采取的测试方法以及每一个测试点需要的工时,详情见表1的测试范围分析->测试用例标题->工时->测试类型。表中给出的测试方法主要有四种:FT(A)代表功能测试(手工),FT(M)代表功能测试(自动化),STT代表稳定性测试,SYT代表系统集成测试,h代表小时。
4.2.4 测试优先级划分及版本规划
根据不同的测试用例在测试中的先后稳定顺序划分了不同的测试优先级,测试必须在高优先级(H)的测试点全部执行之后才会接受研发下一个版本继续执行中优先级(M)的测试点,最后测试低优先级(L)的测试点,相同的优先级别放在同一个版本。不允许在H级的测试点未执行完成就频繁的接受研发发布的新版本程序重新进行测试,因为频繁的发布版本会导致测试的工作量大量增加,测试效率得不到保证。最后,根据单个功能的版本规划以及优先级情况推论出整个项目的功能优先级以及版本规划情况。详情见表1的测试用例标题->测试类型->优先级(版本->准出准则)。
4.2.5 资源配置
表2针对表1中涉及的不同的测试方法对其资源配置情况进行了分析。资源配置主要包括环境资源配置分析和人力资源的配置分析。分析测试该功能模块使用不同的测试手段的时候应该分别具有什么样的测试环境,测试工具,通信环境,需要的电表个数,其他的资源的个数以及人力资源配置等。
4.2.6 变更应对策略
由于软件测试计划在需求分析阶段之后输出,在需求分析到程序发布验收的过程中发生变更,根据公司的实际情况发生较多的变更主要有项目计划的变更和需求的变更。当发生变更的时候我们主要分析变更的影响点,从测试设计、版本规划以及人力资源配置三个方面考虑测试策略的调整。
4.3 测试计划变更记录
由于测试计划贯穿整个软件流程中是“动态的”,为了了解软件测试计划的变更情况以了解测试计划是否根据具体的项目情况做出调整,检验测试计划的效度就要做好软件测试计划变更记录,主要包括:测试计划变更的原因,变更的时间,变更的范围,变更的人员并且做出测试计划的变更分析。
5 软件测试计划有效性验证
为了验证软件测试计划的有效性本文主要从需求覆盖度比对,人力成本核算,版本发布情况比对三个方面进行说明。
5.1 需求覆盖度比对
需求管理工具记录A、B项目的需求覆盖度情况,A项目未进行测试计划的编写需求的覆盖度为53.33%,B项目根据本文的测试计划編写步骤编写了测试计划,需求的覆盖度为79.78%,需求覆盖度提高了26.45%。
5.2 版本发布情况比对
根据版本发布管理软件记录,A项目发布的版本数为18个,使用了软件测试计划后B项目发布的版本数缩短为3个。
5.3 人力成本核算
根据表2可以算出除了稳定性测试,每测试“选择性抄读”这一需求一遍就需要9小时(稳定性测试是一个持续的过程因此把该工时去掉),该功能总共有8个需求点,该项目有12个功能模块,假设每个工时的人力成本为30元,每一个功能的复杂程度以及功能需求点个数一致则:
根据图5,多发15个软件版本,除去回归测试,假设多4轮的全功能则:
多耗费人力成本=9hour*8*12*4
由上计算可以看出没有做出行之有效的软件测试计划,人力成本的耗费是非常巨大的;时时的追踪变更并调整测试计划是非常有必要的,因此一份行之有效的测试计划的编写尤为重要。
6 结束语
文中针对测试人员对软件测试计划的重要性理解不深刻,测试计划编写不合理的情况,结合公司的实际情况,分析了公司的软件测试模型以及软件测试流程,给出了软件测试计划编写的核心内容点以智能电表为例详细的讲述了如何编写一份完成且行之有效的测试计划,并从需求覆盖度、版本发布情况比对以及人力成本核算三个角度验证了该测试计划的有效性以及软件测试计划编写的重要性。同时,给出了软件测试计划编写过程中的一些建议:测试计划的设计并不仅仅是测试计划说明说的编写,必须能够指导整个项目的测试;测试计划是“动态的”,测试计划的编写人员需要时刻的关注项目的变更情况,项目进度近况等一系列的因素,及时的调整测试计划。
参考文献
[1]罗瑛.智能电表在智能电网中的应用概述[J].广东科技,2013,16(08):116-119.
[2]黄清清,许宏斌.软件测试计划与测试用例在嵌入系统中的应用[J].舰船电子工程,2005(01):59-63.
[3]宋锡强,汪萍萍,周韶园.智能电能表软件测试技术概述[J].电测与仪表,2014,51(11):18-22.
[4]曹耀辉,王刚.论软件测试计划的成功制定[J].价值工程,2014,51(11):172-173.
[5]强澄英.软件测试计划的制定及常见问题的分析[J].电信交换,2009(04):40-43.