论文部分内容阅读
软件测试是软件工程最重要的组成部分之一,它对软件质量的保证起到了关键性的作用。对软件产品进行彻底和全面的回归测试是保证软件产品健壮性和可靠性的基础。
手工执行测试用例既费时,又占用了宝贵的人力资源,而自动测试可以把测试人员从简单、枯燥的重复劳动中解脱出来,去完成更有价值的任务。现在,软件产品的功能越来越丰富,软件测试所需要的测试用例也越来越多,因此实现测试自动化的重要性也越来越突出。
应用服务器软件的测试通常需要在多种操作系统平台上运行,因此其自动测试系统应当保证测试的平台无关性。同时,部分应用服务器产品支持多种编程语言编写的组件,因此面向应用服务器的软件测试系统还应当具备一定的可扩展性。此外,生成测试报告和对测试结果进行分析的能力也逐渐成为人们评价自动测试系统的一个重要指标。
目前可用于应用服务器测试的自动测试工具很多。它们虽然可以实现在多种操作系统平台上运行,但是通常只支持单一语言的测试用例。而测试报告的生成则是依赖于测试用例的执行的,缺乏灵活性。另一方面,虽然很多测试工具具备对测试结果进行分析的能力,但是这种分析是依赖于单次测试执行的,不能对软件的质量变化进行评价。
本文对面向应用服务器的自动回归测试系统进行了研究,我们采用分布式体系结构,将测试控制与测试执行分离开来,并采用通信中间件技术实现控制主机与测试客户端主机/应用服务器主机的通信,从而显著降低了测试系统的平台相关性。我们在自动回归测试系统中实现了多种编程语言的接口,使其支持用多语言编写的测试用例,从而具备高可扩展性。我们提出了异步生成测试报告的设计理念,使得测试报告的生成更加灵活,不依赖于测试的执行。在对测试结果进行软件质量分析方面,我们提出了改进的多属性全局质量推断(A-MAGIQ)方法,在对多个版本的软件测试结果数据进行比较时引入了错误严重等级因素,能更准确地评估软件质量。在此基础上,我们还提出了最近N项A-MAGIQ算法和最佳N项A-MAGIQ算法,利用这些算法评估参与比较的版本,可更精确地对当前软件版本在整个开发周期中的质量水平进行定位。