杨沁晓,郝小敏,严航
(成都久信信息技术股份有限公司,四川成都,610000)
测试用例在软件开发生命周期始终占据重要位置。很多因素都会影响手机软件测试的结果,例如开发手机软件的复杂程度、开发人员的编码能力、测试人员技能、测试方法和素养等等。进行测试时,手机测试用例作为测试的标准和依据,测试人员必须严格按照测试用例的操作步骤进行测试,然后把测试结果记录在用例管理工具中,可以手动或自动生成测试结果文档,为提高和维护软件测试质量稳定打下坚实基础。
完成软件测试工作后,对软件测试结果进行评估,完成测试报告编写。判断软件测试是否完成、测试质量是否达标,需要采用一些量化的结果进行评估,例如测试用例执行覆盖率,测试用例通过合格率等等。采用测试用例作为度量基准会更加准确、有效。代码质量高不高,衡量的标准应该是测试用例覆盖率、测试用例通过率、提交软件缺陷数决定的。
通过收集软件缺陷,对比测试用例库和缺陷问题库,分析验证是漏测还是缺陷复现。漏测反映了测试用例设计的不完善和未全面覆盖测试需求点,每轮测试完成后,根据测试需求点补齐测试用例,测试用例执行通过率达到测试用例通过标准,不仅能提高软件产品质量,还可以保障稳定运行。好的测试用例会使测试成本大大降低。
测试用例设计方法包括白盒测试法和黑盒测试法两种。
白盒测试也称为透明盒测试、结构测试、逻辑驱动测试或基于代码的测试。不用考虑外部结构,通过检查软件内部程度编码的逻辑结构,对软件中的逻辑路径进行覆盖测试。白盒测试的主要方法包括语句覆盖、判定覆盖、条件覆盖、判定条件覆盖、条件组合覆盖、路径覆盖。
黑盒测试也叫功能测试或数据驱动测试,把程序看成一个不用打开的盒子,不考虑程序的内部结构与特性,只需根据软件《需求规格说明书》设计测试用例,检查程序功能是否正常使用。黑盒测试方法包括等价类划分法、边界值分析法、正交性设计实验法等等。
(1)等价类划分法
等价类划分法是指某个输入域的子集,在该输入域子集合中,把全部输入数据合理划分成有效和无效若干等价类,在每个等价类中选择一个具有典型代表性数据作为测试用例,从而保证设计出来的测试用例具有完整性和代表性。有效等价类是指对于程序的功能来说是指合理、有意义的输入数据所构成的等价类集合。无效等价类是指对于程序的功能来说不合理、无意义的输入数据所构成的等价类集合。
例如:用户密码长度6-12位,必须含有字母(不区分大小写)、数字、下划线的组合,采用等价类划分法设计测试用例。见表1。
表1 测试用例
(2)边界值分析法
边界值分析法就是对输入、输出的边界值进行测试用例设计的一种方法。测试过程中软件功能出现大量的缺陷往往就发生在输入输出的边界值上,而不是发生在输入输出范围的内部。使用边界值分析方法设计测试用例,首选应当确定边界值情况,选取等于、大于或小于边界的值,而不是选取中间值作为测试数据。
例如备注输入长度不能超过300个字符串,采用边界值分析法设计测试用例,见表2。
表2 测试用例
(3)正交实验设计法
正交试验法是研究多因素、多水平的一种试验法,它是利用正交表来对试验进行设计,通过少数的试验替代全面试验,根据正交表的“均匀分散,整齐可比”的特点,从全面试验(测试用例)中挑选适量的、有代表性的点(测试用例)进行设计测试用例。正交表一般使用公式Ln(mk)即:L行数(水平数因子数)表示,L代表是正交表符号,n代表正交表行数,m代表每列因素水平数,K代表正交表列数,且有n=k*(m-1)+1。正交试验法特点是简单易行、计算表格化,使测试人员能够在短时间内可以掌握的一种高效、快速、经济的实验设计方法。
随着现代社会生活水平不断提高,人们对当下手机提出了更高的要求,希望手机软件能够带来更多符合个性化的服务。对比传统手机,智能手机以智能化、便携、上网快等特点,可以最大满足消费者对移动互联网时代实时新闻、娱乐游戏、商务咨询及手机服务等应用功能的体验和需求。所以在设计手机软件功能的时候,既要考虑到手机软件在智能手机上的安装操作兼容性,也要考虑用户的使用习惯和体验感。
如果设计的测试用例颗粒度很细,设计测试用例工作量会变得艰巨而繁重,虽然能在一定程度上可以降低或减少手软件质量风险,但是会降低测试工作效率,执行测试时缺少思考空间,导致测试人员反应迟钝且慢。测试用例设计颗粒度较粗,执行测试任务的工作效率会较高,但是会增加软件缺陷遗留的几率,引起软件质量高风险。
用例评审由公司产品经理、开发人员、测试人员针对测试用例是否符合、覆盖到测试需求点、是否能用于测试执行而做的工作。用例评审可以避免产品人员、开发人员和测试人员对测试需求理解不同而造成的误差,测试人员设计的测试用例,经过开发人员和产品人员评审后,测试人员需要再次对测试用例进行修改。测试人员执行测试用例可以节约时间、人力成本,也可以提高工作效率。
执行完一轮迭代的测试用例后,需要根据手机软件的测试需求进行新增、修改或删除测试用例,至少保证下一次测试时执行用例是完整、全面的覆盖产品。在手机软件测试过程当中,当发现一个好的测试用例,根据已发现的缺陷问题,定时更新和完善测试用例,好的测试用例随时变化,不是一成不变。只有动态的测试用例才能跟上手机软件需求的变更或变动,发现手机软件隐藏的缺陷问题。
软件测试既包括手动测试,也包括自动化测试,二者结合使用,缺一不可。执行功能性测试用例属于手动测试,执行性能测试、安全性测试、Web页面等测试用例属于自动化测试。手工和自动化测试用例结合使用,可以提升整体测试用例的全面性,也能快速地发现更多软件缺陷,进一步提升手机软件功能使用性、安装兼容性、信息安全性、性能及运行效率。
手机软件测试用例设计不仅需要借鉴传统软件测试用例设计方法和技巧、设计思路和测试策略,还需要考虑手机在不同操作系统、硬件环境、手机类型测试也不相同。所以只有设计完整、覆盖全面的测试用例,发现手机软件隐藏的缺陷,才能保证手机软件质量。