基于模型之软件测试用例智能生成研究

基于模型之软件测试用例智能生成研究

ID:10555612

大小:54.50 KB

页数:4页

时间:2018-07-07

基于模型之软件测试用例智能生成研究_第1页
基于模型之软件测试用例智能生成研究_第2页
基于模型之软件测试用例智能生成研究_第3页
基于模型之软件测试用例智能生成研究_第4页
资源描述:

《基于模型之软件测试用例智能生成研究》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、基于模型之软件测试用例智能生成研究第1章绪论1.1研究背景及意义信息时代的到来,计算机和互联网技术得到了迅猛的发展,计算机技术已经被应用到了社会生活、国民经济和国防建设的各个方面,软件系统的规模和复杂度也在快速增加,并且由于软件是由人工设计开发的,软件系统中出现错误的概率也在逐渐增大,这些错误有可能会致使系统崩溃,经济损失严重,更有甚者可能会危及人类的生命。软件测试是保证软件可靠性、提高软件系统质量的最基本、最有效的手段,在软件开发过程中占据着重要的地位,其主要目标就是尽可能多地发现软件系统中存在的错误,然后通过修改这些错误提高软件的质量。美国

2、质量保证研究所对软件测试的研究结果显示,软件系统中错误发现的越晚,修改错误就会越困难,而且修改成本也会越高,在编码后修改错误的成本通常是是编码前成本的10倍左右,并且软件发布后的维护成本也会越高,因此,应当尽早地开始测试,将软件测试贯穿到软件系统的整个生命周期中。然而,软件测试并不是一个简单的过程,这个过程将会耗费大量的财力、物力、人力和时间。根据调查,一些优秀的软件开发厂商在软件测试阶段投入的工作量约为总工作量的40%,投入的成本约为总成本的30%~50%[1],对于那些安全性和可靠性要求更高的软件系统,测试费用甚至是软件开发费用的3~5倍。

3、由于测试人员需要分析软件系统并手动设计、执行测试用例,所以软件测试的质量和效率并不高,但是费用却总是居高不下。因此,通过提高软件测试过程自动化的程度来降低测试成本、保障软件质量。但是,不可能完全实现软件测试的过程自动化,可以将自动测试和人工测试有机结合起来,以此提高测试效率,降低开发过程的成本。在进行软件测试时,需要对软件的需求、设计说明以及代码等进行分析,确定测试目标,并根据这些内容设计一组测试用例。在这些工作中,有效的测试用例的设计和生成是软件测试过程的核心,也是最为复杂的部分,因而,自动生成测试用例的过程成为了软件自动化测试过程的关键。目

4、前,在软件测试用例的生成方面虽然取得了一定的研究成果,但是测试过程仍然存在一定的盲目性,导致了软件测试的低效率和高成本,一旦测试用例被自动生成,那么一个软件产品甚至能够通过测试用例执行模块来全完自动化地进行测试以实现自动化测试的环境[2]。因此,急需对软件测试用例的生成方法进行研究并研发出相应的测试用例的自动化生成系统,将软件测试过程自动化进行,以提高软件测试的效率和软件的质量。目前,对于测试用例的生成,主要有以下三种方法:基于代码的测试用例的生成方法、基于需求规格说明的测试用例的生成方法以及基于UML模型的测试用例的生成方法[3]。基于代码的

5、测试用例的生成方法属于白盒测试,该方法能够直接获得程序的运行状况,自动记录测试的覆盖率,易于自动化地生成测试用例,但是,该方法重点考虑的是程序的编写情况而不是设计情况,不能发现需求中要求实现,实际上却没有实现的错误。基于需求规格说明的测试用例的生成方法属于黑盒测试,该方法主要应用于软件的功能测试和系统测试,用来发现不满足需求规格说明的错误,在该方面是基于代码的测试用例的生成方法的补充。基于UML模型的生成测试用例的方法是基于需求规格说明的生成测试用例方法中的一种。UML模型可以从多个角度描述系统[4],它具有普遍适用性,而且由于UML模型具有良

6、好的定义,基于以上原因,UML模型逐步成为了研究的热点,被众多软件企业和开发者采用,并且被广泛应用于测试领域。目前,基于UML模型的测试的研究主要集中在UML模型中动态模型的部分,包括基于状态图、活动图、交互图(顺序图和协作图)等模型的研究。第2章软件测试基础知识概述2.1软件测试的定义随着时代进步,伴随着软件系统庞大化、多功能化以及复杂化的发展趋势,软件系统的错误率也不断上升,而软件系统中这些错误的存在可能会造成巨大的经济损失,在某些关键部门应用的软件系统中,比如飞机的飞行控制系统、核电站的安全控制系统和军队的导弹防御系统等,一旦这些软件系统

7、出现错误,将会对人类的生命安全造成严重的威胁,因此,社会的发展需要高质量的软件。无论是软件的开发者还是软件产品的用户,软件产品的质量都是重中之重。首先,对于软件的开发者来说,软件产品和其他产品一样,为了能够占领市场,必须保证质量,这样才可能有更多的用户来购买其产品。其次,对于用户(即软件系统的使用者)来说,都希望软件系统具有很高的质量。软件测试是保证软件质量的重要手段[22],在整个产品的生命周期中占有极其重要的地位。软件测试在开发过程中也发挥着至关重要的作用。但是,对于什么是软件测试,并没有一个统一的定义,根据侧重点不同,主要有以下几种描述:

8、定义1:在1983年,IEEE(美国电气和电子工程师协会)给出了软件测试的定义:以检查该系统是否满足需求并找出实际结果与期望结果的差别为目标手动或自动

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。