基于测试驱动的软件测试管理系统的研究 优秀专业论文.docx

上传人:lao****ou 文档编号:127971 上传时间:2023-04-05 格式:DOCX 页数:59 大小:354.35KB
下载 相关 举报
基于测试驱动的软件测试管理系统的研究 优秀专业论文.docx_第1页
第1页 / 共59页
基于测试驱动的软件测试管理系统的研究 优秀专业论文.docx_第2页
第2页 / 共59页
基于测试驱动的软件测试管理系统的研究 优秀专业论文.docx_第3页
第3页 / 共59页
基于测试驱动的软件测试管理系统的研究 优秀专业论文.docx_第4页
第4页 / 共59页
基于测试驱动的软件测试管理系统的研究 优秀专业论文.docx_第5页
第5页 / 共59页
亲,该文档总共59页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《基于测试驱动的软件测试管理系统的研究 优秀专业论文.docx》由会员分享,可在线阅读,更多相关《基于测试驱动的软件测试管理系统的研究 优秀专业论文.docx(59页珍藏版)》请在第一文库网上搜索。

1、基于测试驱动的软件测试管理系统的研究摘要本文主要讲述了测试驱动开发(TDD)的理念和相关理论,并结合工程实际开发,从数据库服务层和GUI图形用户界面两个方面,阐明了如何进行测试设计。本文首先介绍了软件测试的基本概念和理论,之后着重介绍了驱动开发的理论和发展状况。对于软件测试管理系统进行了较为详细的需求分析,结合系统开发的实际,提出了保证系统质量的测试驱动开发方法。在对测试驱动开发进行了介绍之后,从系统的数据服务层和GUI图形用户界面两大部分,举例讲述了如何使用测试驱动开发方法进行测试设计和编码的工作过程。最后针对本系统的应用,讨论了使用TDD方法上进行扩展和完善的方法以及一些重要的技术难点。文

2、章探讨了本课题在相关热点领域进行深入研究的可能性。关键词:软件测试,测试驱动开发,数据库服务层,GUIAbstractThis thesis introduces Development (TDD) idea of drive and relevance theory, havedeveloped with a view of and project reality ,and the design of test of data access layer and GUI,which are two import parts of Testing Management System.This t

3、hesis describes the basic concepts and theories of software test at first. And then, itdescribes the theories of TDD. After it introduces the system structure and requirement analysis,it brings forward a new development method-Test-Drive Development. Also this thesis givessome typical examples of ho

4、w to design test of data access layer and GUI in detail.In the end, this thesis discusses some important technique methods of TDD to expand thissystem. The prospect of implementing these new ideas and methodologies is also discussed.Keywords: software testing; Test-Drive Development (TDD); data acce

5、ss layer; GUI摘要1Abstract11绪论11.1 软件测试的基本概念11.2 测试驱动研究过程21.3 测试的局限性31.4 研究内容41.5 文章结构52软件测试52.1 软件测试的方法52.2 面向对象的软件测试72.3 软件测试的历史与发展现状102.4 敏捷开发过程与极限编程123测试驱动研究183.1 测试用例生成与测试驱动193.2 研究现状213.3 测试驱动开发解析214软件测试管理系统的设计244.1 系统需求分析244.2 系统体系结构244.3 系统功能概述254.4 系统特征及运行平台275用测试驱动方法开发系统285.1 测试驱动开发的步骤285.2

6、测试框架295.3 实现技术和开发平台306数据服务层测试设计316.1 系统数据库概述316.2 测试设计步骤336.3 数据库连接测试设计346.4 测试基类的实现347 GUI(图形用户接口)测试设计367.1 客户端概述377.2 GUI测试设计398结语39参考文献41X绪论信息技术的飞速发展,使软件产品应用到社会的各个领域,软件产品的质量自然成为人们关注的焦点。目前,计算机已经广泛应用于银行、证券、工业控制、医疗、交通、航空、航天等领域。在这些应用领域中,软件质量往往关系到人民生命财产和生态环境的安危,一旦软件发生故障,就可能造成灾难性的后果。因此,人们对于软件质量重视程度越来越高

7、,设计人员和使用人员希望在将软件系统投入运行之前,能得到系统正确性的保证。这就使得以软件测试为中心的软件质量保障技术在软件生产实践中得到了迅速的发展,测试在软件开发中的地位越来越重要。因此软件测试作为软件开发过程的重要环节,是保证和提高软件质量和可靠性的重要手段。1.1软件测试的基本概念1983年IEEE提出的软件工程标准术语中给出的软件测试的定义:”使用人工或自动手段来运行或测试某个系统的过程,其目的在于检查它是否满足规定的需求或是弄清预期结果与实际结果之间的差别”。定义包含了两个方面的含义,一是是否满足规定的需求,二是是否有差别。如果有差别,说明设计或实现中存在故障,自然不满足规定的需求。

8、因此该定义非常明确地提出了软件测试以检验软件是否满足需求为目标。Myers认为:1测试是为了发现故障而执行程序的过程2 一个好的测试用例在于能发现至今未发现的故障,3 一个成功的测试是发现了至今未发现的故障的测试。这种观点提出了人们测试要以查找错误为中心,而不是为了演示软件的正确功能。软件测试的目标是设计这样的测试,能够系统地揭示不同类型的错误,并且耗费最少的时间和最少的工作量。Jeff Offutt在他的文章中认为软件测试包括在某个程序段中执行测试用例集,并将预期结果和实际结果进行比较。国内的一般性定义为:软件测试是为了发现错误而执行程序的过程。或者说,软件测试是根据软件开发各阶段的规格说明

9、或程序的内部结构而精心设计一批测试用例,并利用这些测试用例去运行程序,以发现程序错误的过程。总之,人们从不同的测试目的与角度定义了软件测试的概念。通过综合理解,我们认为,软件测试就是以软件规格说明或程序代码为输入,精心设计测试用例,然后用测试用例来执行程序,并对实际结果和预期结果进行评估,进而发现软件错误的过程。1.2测试驱动研究过程软件开发过程和方法己经研究了几十年了。然而,我们仍然没有找到可靠的工具,可以保证要求高可靠性的复杂软件系统,没有错误(Faults)和操作失败。错误可能是由多方面导致的,比如说理解错误和交流错误,分析不完全错误和抄写错误等等。而最终用户的过高预期和任务复杂度的增加

10、,更加恶化了这个问题。通常有三种处理错误的方法,如下:1)错误避免,就是通过合适的分析、设计、实现和维护在一开始避免赌误,包括使用先进的软件构建方法,重用可靠的自描述的软件模块和对象,以及获取活动知识域的支持。2)错误消除,是对分析、设计和实现时产生错误的补救.表现为验证、确认和测试。3)容错,是对任何残留问题在运行时的补救,比如操作环境下的需求之外的变化和用户错误等。完全的错误避免既不经济也不可行。接下来,最好的办法是错误一发生就消除,当然是在错误遗留到系统运行之前。由于人犯错误在一发生就消除,当然是在错误遗留到系统返行之前。出于人犯错误在所难免,很有必要多次重复访问软件工件,这样可以确认我

11、们对问题的理解、我们的设计和实现是正确的和符合需要的。过程反馈和前馈循环,对于发现问题和消除错误很有帮助。止匕外,越早发现错误,修复错误的代价就越小。近年来,随着敏捷编程的兴旺,出现了一个新兴的软件开发实践-测试驱动开发。测试驱动开发由于其紧密的反馈循环,是一项有效的错误检测和消除技术。自从Kent Beck在极限编程中提出TDD, TDD的研究在这几年成为了一个很热门的课题,尤其是从2002年底开始。虽然上面提到了一些TDD应该具有的优点,事实表明,初学者很难适应先写测试。所以,上面提到的TDD的优点仍然需要评估。德国卡尔斯鲁(Karlsruhe)大学的Matthias M. Muller和

12、Oliver Hagner在2001年底首次执行了一个实验评估TDD的效果。19个男性计算机科学专业的研究生参加了实验,10个在测试先行组和传统组。两组实验人员的编程经验没有很大的差别。这个实验中需要解决的任务叫“图形库”。它要求实现一个给定图形库的主类,这个图形库只包含了方法的声明和注释而没有程序主体。这个实验从2001年了月持续到2001年8月,几乎都是暑假的时候。实验人员的工作分为两个阶段:(1)实现阶段,实验人员完成他们的任务,直到他们认为他们的程序运行无误。一旦他们要求功能测试,这个阶段也就结束了。(2)功能测试阶段,实验人员必须修复那些导致功能测试失败的缺陷。北卡林那州立大学的La

13、urie Williams等人也组织了两组实验对测试驱动开发进行评估。第一组实验有24对专业程序员。在每个试验中,开发人员都是随机地结对成双分到两组:TDD和传统组。所有开发人员都使用结对编程实践。此外,这24个开发人员的TDD经验各不相同,有的是初学者,有的是专家。要求每一对开发一个保龄球游戏程序。那些传统组的团队使用的传统的设计-开发-测试-调试(瀑布式)的开发方法。他们从试验中得出了如下结论:(1)TDD看起来能产出更高外部代码质量的代码,这是一组黑盒测试用例检测以及同更传统的瀑布式模型开发实践相比较的结果。(2)实验结果表明,TDD开发人员比传统组开发人员多花了 16%的时间。然而,每

14、个组的性能变化很大,这些结果也只是指导性的。止匕外,那些传统组的团队基本上没有编写任何有用的自动测试用例,尽管对他们作了这个要求,这也使得这个比较不公平。(3)平均80%的专业开发人员认为TDD是一个有效的方法,78%的认为这个方法提高了开发效率。这是问卷调查的统计结果。(4)定性方面,这个研究也发现,TDD促使更简单的设计,而且前期设计的缺乏不是个问题。但是,对于某些人,很难转换到TDD开发理念。Laurie wiHialns等人在IBM的零售商店解决方案开发组组织了第二个实验。根据一个不变的需求说明构建一个软件系统,并且严格要求使用TDD实践的单元测试和构建方法。9个全职的工程师组成了开发

15、组,其中5个在美国,另外4个在墨西哥。为了保证团队中所有成员编写的测试用例能够运行,在美国当地和墨西哥都建立了一个自动构建和测试系统。这些系统能够每天从库中提取代码,并构建和运行所有的单元测试。使用了Apache的ANT工具。每一次自动构建和测试之后,就给所有成员都发一封邮件,列出所有运行通过的测试和发现的错误。这个自动构建和测试为团队做每日集成和确认。根据这个实验,也得出了一些结果:(1)缺陷率。TDD的单元测试是和代码开发集成在一起的。因此,在系统的功能验证测试缺陷率上,获得了50%的改善。(2)开发效率。项目至少如期完成。测试频率。他们一共写了2500个自动测试和400个交互测试。86%的测试是自动的,超过了80%的目标。(4)设计。大家认为,TDD开发的产品更容易应付后期变化。集成。以前,快到功能验证测试时才集成代码成产品。每日集成为我们省去了后期集成出现的问题。每日集成给我们的项目提供了一个指标,减少了风险,因为能更早发现问题。(6)士气。开发人员很积极地应用TDD,而且会继续。1.3 测试的局限性经验表明

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 应用文档 > 汇报材料

copyright@ 2008-2022 001doc.com网站版权所有   

经营许可证编号:宁ICP备2022001085号

本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有,必要时第一文库网拥有上传用户文档的转载和下载权。第一文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知第一文库网,我们立即给予删除!



客服