王斌 莫正攀 冯真
摘要:该文主要介绍了某型人事薪资管理系统的软件测试方案。采用黑盒测试和白盒测试相结合的原理,选取功能测试、性能测试、人机界面测试三种测试类型,重点检测系统功能实现情况以及主要性能指标。文章介绍了部分重点测试用例设计以及执行情况,给出了测试结论。
关键词:人事薪资管理系统;测试方法;功能测试;性能测试;人机界面测试
中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2015)19-0062-02
薪资业务管理是人力资源管理的重要组成部分,其作用尤为重要,其不仅关系着每名员工的利益,同时还对公司的整体工作效率产生显著的影响。某单位为充分利用现有网络资源,实现薪资管理的信息化和智能化,开发了某型薪资管理系统(以下简称:薪资系统)。在系统开发结束后,应对软件进行系统测试,寻找软件功能缺陷和性能瓶颈,以便开发方进行修改完善,使系统尽快投入使用。
1被测软件简介
薪资系统为B/S架构,由基于J2EE平台的java语言开发,采用Microsoft SQL Server 2008作为系统数据库,开发过程中使用了分层的S2SH集成框架技术,在数据库查询过程中引入了模糊概念,可进行模糊集匹配数据库查询。
根据需求分析,将薪资系统划分为五个模块,包括员工资料、人事管理、工资管理、统计管理和系统设置。系统总体功能及模块划分如图1所示。针对这些功能需求,引申出系统的性能需求主要是数据库查询响应时间,一般情况下应不大于1000ms。
2系统测试方案
2.1测试原理
薪资系统的测试方法是将静态、动态两种测试技术有机联系在一起。静态测试技术主要是从需求分析、结构检查、设计、流程图分析等处查找错误,在这个过程中,并不执行系统的软件。动态测试技术执行作为测试程序的补充,用执行过程当中的各项结论找出程序误差。
薪资系统的测试结合了白盒、黑盒两种测试方法,采用两者相结合的测试方式,来适应各软件系统测试的需要。黑盒法是测试方案的基础,白盒法则是测试方案的补充。
黑盒测试主要用于测试系统的主要功能及业务流程是否正确实现,用到的方法主要有:
1)系统的功能说明中包括各个组合的输入条件,首先要使用“因果图法”。
2)采取边界值分析的测试方法,测试系统在输入,输出域临界点的运行状态。
3)采取错误推测的测试方法来检测本系统。
4)采取等价划分的测试方法,在每个正常/异常等价类设计用例来测试系统功能。
白盒测试方法中最关键的就是逻辑覆盖。逻辑覆盖是基本的测试系统的内部模块当中的内部逻辑部分。覆盖技术一般包括组合覆盖、语句覆盖、判定覆盖等几项。本系统要采用逻辑覆盖来测试在开发模块中的核心代码,期望值和测试器的比较,有没有不正常情况。本次测试的白盒测试思路为:
1)本系统要根据执行步骤来执行一遍各子程序要实现的功能。
2)在子程序当中,需要对某个逻辑进行判断时,就要对这个逻辑进行测试,同时,将测试结果与所希望的结果比较。
3)本系统的各子程序,能否具备有效执行的数据结构。
4)子程序中的循环程序是否有边界执行有越界的情况存在。
2.2测试类型选择
根据系统需求,主要选择功能测试、性能测试、人机界面测试三种测试类型。薪资系统主要关注点在于系统的功能和性能,所以下文主要就功能测试和性能测试进行说明。
2.3关键模块功能测试
薪资系统测试共设计了测试用例1269个,篇幅所限不能详细列出。这里选择工资计算、员工管理与薪资管理三个模块的部分代表性功能测试用例作为代表。
工资计算模块的测试主要关注工资计算与考勤录入的输入值响应,主要测试用例参见表1。
员工管理模块主要关注员工资料的增删改查,主要测试用例参见表2。
薪资管理模块主要关注薪资项目、类型、核算等内容,主要测试用例参见表3。
2.4关键性能指标测试
主要关注普通数据库查询与模糊查询算法之间的性能比较。测试内容及结果见表4。
根据前面的测试内容,可绘制测试结果的柱形图,从图中可以很清晰地看出模糊查询要优于普通查询。查询时间柱形图如图2所示。
通过此测试用例,可以看出模糊查询算法优于一般的SOL语句查询,并且响应时间短,准确性高。
在业务响应时间方面,使用LoadRunner工具软件进行测试的结果为:用户在进行单笔或是小批量业务的操作时,系统的响应时间一般都在1秒钟以内;如果进行大批量的替换业务,则由于数据量的不同,系统的响应时间也会有所不同,一般来说数据量越大,响应时间越长,但是一般都不会超过45秒。
2.5人机界面测试
在人机界面测试方面,测试人员进行常规操作时,系统的运行情况良好,不存在链接错误或是脚本运行错误等一些WEB开发中出现的常见错误。此外我们使用了Xenu软件对链接进行检查,没有发现死链接错误。
3测试结论
基于以上测试结果,我们认为该薪资系统是安全稳定的,实现了系统需求中要求的所有功能,且性能指标合格,人机界面友好便于使用,建议该系统通过测试,待发现的软件缺陷完善后即可投入试运行阶段。