近年来,随着社会对信息化依赖程度的不断加深,对于软件质量更是提出了安全、可靠、稳定、易用、效率等全方位的要求。因此保证和加强软件质量成为制约社会信息化高速发展的重要因素。
软件测试是控制软件质量的重要手段,目前我国还没有适应国情的、系列化协调配套的、工程化的信息系统生产过程管理、质量评测、控制技术的规范和法律规程指导,因此以第三方测试工程为基础,对信息系统的建设进行质量保证是非常必要的。
第三方测试可以避免开发方内部测试由于思维定势而造成问题的漏测和误判,尤其体现在涉及业务流程、安全可靠性、易用性和可扩充性等方面;同时也可以避免用户自测的盲目性和非专业性。
第三方测试的目的是尽可能多地发现系统目前存在以及潜在的问题,借助长期积累下来的丰富的行业测试经验,更客观地从用户角度和专业角度出发,投入足够的人力、物力,运用专业的测试工具更好地进行测试以保证软件质量。
现在以某一集团公司的企业应用为例介绍第三方测试的实施案例。
该企业应用是该集团业务规范化运营和一体化管理的信息支撑系统,建设目的在于整合新、旧业务系统,实现历史数据和实时数据的集中存储和统一管理,同时通过整合后的统一管理平台来提高公司管理水平,为领导决策的正确性提供可靠的理论依据。
业务系统基于目前较为主流的J2EE三层架构,采用B/S运行模式,应用服务器使用Weblogic并且采用集群策略,数据库服务器使用Oracle并且采用集群策略,具体网络拓扑图如图1所示。
本次测试根据相关国家标准和企业标准,针对企业应用的业务需求,对其在功能度、性能、安全可靠性、易用性、资源占用率、兼容性、可扩充性和用户文档八个方面进行了测试。
功能度方面主要采用黑盒测试方法,包括因果图分析、等价类划分、边界值分析等,根据用户需求说明书和用户操作手册,分别对系统的全部功能点和主要业务流程进行测试。由于该系统多个模块涉及到工作流,公文和业务单据的流转是测试的重点,尤其是验证特殊流程分支中单据的走向和状态以及异常处理是否会导致单据的丢失等等。
安全可靠性方面,结合功能考察软件的用户权限限制、用户和密码封闭性、留痕功能、屏蔽用户错误操作、错误提示的准确性、数据备份恢复手段等方面。
易用性方面,考察软件的用户界面友好性、易学习性和易操作性等等。
兼容性方面,考虑软件、硬件和数据的兼容性。
可扩充性方面,考虑软件结构的功能可扩展性和异种数据库的结构等等。
用户文档方面,考虑文档的完整性、一致性、易理解程度和操作实例等等。
下面重点介绍一下性能测试的关注点。
在性能测试方面,针对该企业关注的用户登录、单据查询、批量转账等关键业务点进行负载压力测试,同时监控应用服务器和数据库服务器的资源使用情况,包括CPU占用率、硬盘使用状况以及事务处理平均响应时间等相关参数,考察系统在各种情况下的性能表现。
测试前期需求分析中确定该操作的最大并发用户数为50人,采用逐步加压的方式对系统进行压力测试,分析在不同负载情况下系统的承受能力。
关注点1:
交易吞吐量和交易响应时间是评估系统性能的重要概念。
吞吐量:系统服务器每秒能够处理通过的交易数。
交易响应时间:是系统完成事务执行准备后所采集的时间戳和系统完成待执行事务后所采集的时间戳之间的时间间隔,是衡量特定类型应用事务性能的重要指标,标志了用户执行一项操作大致需要多长时间。
关注点2:
随着负载增加,当吞吐量不再递增时,交易平均响应时间是否会递增。
随着负载增加,当吞吐量不再递增时,交易平均响应时间一般会递增。
当系统达到吞吐量极限时,客户端交易会在请求队列中排队等待,等待的时间会记录在响应时间中。
关注点3:
根据上述测试结果,服务器资源使用情况是否合理?
应用服务器资源合理。由测试结果来看,不同负载下的两台应用服务器CPU占用情况相当,并且都低于70%。
数据库服务器资源占用不合理。从测试结果可以明显看出,不同负载下的两台数据库服务器CPU占用情况始终差距较大,其中一台负载较大,而另一台比较空闲,由此可知,数据库集群策略并未生效,需要调整集群策略。
最新内容请见作者的GitHub页:http://qaseven.github.io/