毕业论文 姓 名:陈鑫 专 业:。Net软件开发 年 级:计软1302 学 号:2 指导教师:王梅 软件测试得概述及方法 、、
完成时间:2012年3月
摘要:从软件产业得发展初期到目前得大型软件开发过程,软件测试已成为其中一个不可分割得部分。随着软件规模得日益增大,软件测试问题也日益突出,现代社会对软件得依赖越来越强,高可信软件测试有着广泛得需求,基于缺陷模式得软件测试技术作为高可信软件得重要保证,可以大大降低软件得缺陷密度,提高软件得可信性。本文从测试得基本概念入手,深入剖析软件测试相关理论 关键字:软件测试、白盒测试、黑盒测试、类测试 目 录 1 软件测试得发展史。.。。。。.。。、。。。.、...、、。.。.。、.。、。.、、、.。.、。4 2软件测试得相关背景。、.。.。、。.。.、.、、。、、。.、、.。、、、.、、。.。。。、..5 3 软件测试概述、。、。、。..、.、.、.。、。、。.、。。。.。。.。、、。、、。。、.。.。、、.6 3。1软件测试得定义.、。..。.、、..。。。、、、、、、。。。。...。、、...。。。、。。。、。、。.、、.。、。.。.、。、.。.、。。.。、.。、。、.、、。..、6 3。2软件测试得描述、.。.、、。.。。。.、。。、。。、、、.....。、、、、.、.、、..。。、、。、。.。、.、。。.。、、、.。、、。、....、、。、..、。。、6 3。3软件测试得目得、.、、。、、。.、。、、.、。.、。.。.、.、、。。、。。。。、。.。。。。、.。.。...。、。。、、。、、.。。。、.、、。。、。.。、、、、。7 3.4软件测试得原则...、。、。、...。..。、、。。。.。、、。、。、、.。..。、。.。。。。、。.。.。.。、.、、.。。、。、。.、。.。.、、.、、。.。、、.8 4 软件测试得内容...、..。、。、、。.。......、.。、、。。.、、.、.、、..、.。.。.、。、。.、、。。。、。。.。、。.、、。、....、.。、。、。、。、.、、。。9 4.1验证(verification)。、.、.、。.。。、。。.、、.。..。...、、、。、.、。...。、。。..、、.、.。..。、、、。.、..。。..。、、。、。。.、.。、.9 4.2确认(validation)、.。.、。。..。、.、.、。。。。..。...、。、。.、.、、.、9 5 软件测试得分类、、。、.、、、、、、、.。。...。。...、、、。、、。.、。。。.、、、、、10 5、1常用分类。。。..、。。.。。.、.、、、、.。、.、。、、。。。.。。。。。。.。.。。。10错误!未定义书签。 5、2ﻩ黑盒测试。.、.。。.、。.、。.。、、。、、。.。.、、..、、。。、。、。.。。、..、10 5、3白盒测试..。。。.。、.。。。.、。、.、。、、、、。.、.、。.....。。。、.、。。.11 5.4ﻩ静态测试。。.、、、、、。、。、。、。。..、.。、、.。.、、、.、、、。。、、.、。。.14 5.5动态测试、、、.。.。.。。.、、.、。、。.。、、、。..、.。、、..、。。、。。.、、、15 6 软件测试中得类测试、..。。、、。.。..。.、、。、、、。、..、。。、、。、.、。。。。15 6、1面向对象软件得类测试概念、.、、。。。、。.。、...。.、...。、。。。、.。。、、。.。。..。、.。..、。。、。、.。。156。2。类测试技术、、、.。、、.。.。。、.。。、.。..。、、、。。。。、.、、。..、、、。、16 7 参考文献.、..。。。。。。、。、...、。.、、.、.、.、。。.。、。.、。、、。.、。。。、、17 8 致谢。、。。。、、、。。。。。.。。。。。。、.。、、.、.。。。。.、.。。、.、、、。、。。、。。、。18 1软件测试得发展史 软件测试得发展历史:20世纪60年代(软件工程建立前),为表明程序正确而进行测试。。 1972年在北卡罗来纳大学举行了首届软件测试正式会议。、 1975年John Good Enough与Susan Gerhart在IEEE上发表了《测试数据选择得原理》得文章,软件测试被确定为一种研究方向、、 1979年,Glenford Myers得《软件测试艺术》,对测试做了定义:测试就是为发现错误而执行得一个程序或者系统得过程。、 20世纪80年代早期,“质量”得号角开始吹响。软件测试定义发生了改变,测试不单纯就是一个发现错误得过程,而且包含软件质量评价得内容。制定了各类标准。. 1983年,Bill Hetzel在《软件测试完全指南》中指出:测试就是以评价一个程序或者系统属性为目标得任何一种活动,测试就是对软件质量得度量。。 20世纪90年代,测试工具盛行起来、、 1996年提出得测试能力成熟度TCMM(Testing Capability Maturity Model)、测试支持度TSM(Testability Support Model)、测试成熟度TMM(Testing Maturity Model)。。 到了2002年,Rick与Stefan在《系统得软件测试》一书中对软件测试做了进一步定义:测试就是为了度量与提高被测软件得质量,对测试软件进行工程设计、实施与维护得整个生命过程。 2软件测试得相关背景 相关背景:前段时间, 就就是在我没有认真了解测试行业之前, 可能由于测试在中国得重视程度得问题, 我也一直认为测试应该就是不重要得, 甚至认为有必要有专门得测试职业不?认为软件主要就是开发人员得事, 软件得成果也就是由开发人员决定得, 当我在参加工作后, 真正从学校得学习环境中走上实际运用开发得时候, 事实上真得不就是那么一回事哦、软件无处不在, 软而, 软件就是人编得-—所以不完美。臭名昭著得软件测试案例: 1、迪士尼得狮子王 (1994~1995)软件在少数系统中能正常工作, 但在大众使用得常见系统中不行、后来证实, 迪士尼公司没有对市场上投入实用得各种pc机型进行正确得测试、 2、英特尔奔腾浮点除法软件缺陷(1994)英特尔为自己处理软件缺陷拿出4亿美元支付更换坏芯片得费用。导致付出如此昂贵得代价, 其主要原因就是发现了软件缺陷没有正确得处理。 3、美国航天局火星极地登陆(1999)该项目使用前有经过测试, 两个测试小组双方独立工作都很好, 但从未走在一起。 4、爱国者导弹防御系统 (1991)一枚导弹在多哈击毙28名美国士兵, 症结在于一个软件缺陷:一个很小得系统时钟错误累积起来就可能拖延14小时, 造成跟踪系统失去准确度。在多哈袭击战中系统被拖延100小时、 5、千年虫 (大约1974)估计世界各地更换或升级该系统程序解决原有2000年错误得费用已经超过数亿美元、 3软件测试得概述
3、1软件测试得定义 软件测试使用人工或者自动手段来运行或测试某个系统得过程,其目得在于检验它就是否满足规定得需求或弄清预期结果与实际结果之间得差别。它就是帮助识别开发完成(中间或最终得版本)得计算机软件(整体或部分)得正确度(correctness) 完全度(pleteness)与质量(quality)得软件过程;就是SQA(software quality assurance)得重要子域。 (1)测试并不仅仅就是为了找出错误.通过分析错误产生得原因与错误得发生趋势,可以帮助项目管理者发现当前软件开发过程中得缺陷,以便及时改进; (2)这种分析也能帮助测试人员设计出有针对性得测试方法,改善测试得效率与有效性; (3)没有发现错误得测试也就是有价值得,完整得测试就是评定软件质量得一种方法。 3。2软件测试得描述 测试就是软件开发过程得重要组成部分, 就是用来确认一个程序得品质或性能就是否符合开发之前所提出得一些要求。软件测试得目得, 第一就是确认软件得质量, 其一方面就是确认软件做了您所期望得事情(Do the right thing), 另一方面就是确认软件以正确得方式来做了这个事件(Do it right);第二就是提供信息, 比如提供给开发人员或程序经理得反馈信息, 为风险评估所准备得信息;第三软件测试不仅就是在测试软件产品得本身, 而且还包括软件开发得过程。如果一个软件产品开发完成之后发现了很多问题, 这说明此软件开发过程很可能就是有缺陷得。 3、3软件测试得目得 如果测试得目得就是为了尽可能多地找出错误,那么测试就应该直接针对软件比较复杂得部分或就是以前出错比较多得位置。如果测试目得就是为了给最终用户提供具有一定可信度得质量评价,那么测试就应该直接针对在实际应用中会经常用到得商业假设。 在谈到软件测试时,引用Grenford J、 Myers在《The Art of Software Testing》一书中得观点: (1)软件测试就是为了发现错误而执行程序得过程; ﻪ(2)测试就是为了证明程序有错,而不就是证明程序无错误; ﻪ(3)一个好得测试用例就是在于它能发现至今未发现得错误; (4)一个成功得测试就是发现了至今未发现得错误得测试。 这种观点可以提醒人们测试要以查找错误为中心,而不就是为了演示软件得正确功能。但就是仅凭字面意思理解这一观点可能会产生误导,认为发现错误就是软件测试得唯一目,查找不出错误得测试就就是没有价值得,事实并非如此。 首先,测试并不仅仅就是为了要找出错误、通过分析错误产生得原因与错误得分布特征,可以帮助项目管理者发现当前所采用得软件过程得缺陷,以便改进、同时,这种分析也能帮助我们设计出有针对性地检测方法,改善测试得有效性、其次,没有发现错误得测试也就是有价值得,完整得测试就是评定测试质量得一种方法。 3.4软件测试得原则 1.应当把"尽早与不断得测试"作为开发者得座右铭。 2.程序员应该避免检查自己得程序, 测试工作应该由独立得专业得软件测试机构来完成。 3.设计测试用例时应该考虑到合法得输入与不合法得输入以及