




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
软件测试工具由安博测试空间技术中心/提供第一章概述软件测试的发展历史;软件测试技术的分类方法;软件测试原则;软件测试的定义;软件测试同软件开发之间的关系;软件测试与开发模型;软件测试工作流程。1.1软件测试的发展历程及现状
1.1.1软件测试的发展历程
20世纪50-60年代,软件仍然处于次要位置,测试理论和方法的发展比较缓慢。70年代以后,软件技术的成熟和完善使得软件测试的规模和复杂度加大,软件测试也逐渐形成了一套完整的体系,逐渐走向规范化。
1.1.2软件测试的现状与一些发达国家相比,国内测试工作还存在一定的差距。国内测试人员所占比例小,但是,在软件测试实现方面都是相当的,而且向产业化方向发展。1.2什么是软件测试
1.2.1软件测试的定义
根据侧重点的不同,主要有以下三种观点:
1)1983年IEEE将软件测试定义为:“使用人工或自动手段运行或测定某个系统的过程,其目的在于检验它是否满足规定的需求或是弄清预期结果与实际结果之间的差别”,该定义明确地提出了软件测试以检验是否满足需求为目标。2)Myers认为:“是为了发现错误而执行程序的过程”,明确提出了“寻找错误”是测试目的。
3)从软件质量保证的角度看:是一种重要的软件质量保证活动,其动机是通过一些经济、高效的方法,捕捉软件中的错误,从而达到保证软件内在质量的目的。
测试过程中的活动包括“分析”软件(静态测试)和“运行”软件(动态测试)。也有人认为软件测试(softwaretesting)就是在软件投入运行前,对软件需求分析、设计规格说明和编码的最终复审,是软件质量保证的关键步骤。
软件测试有两个基本职责:即验证和确认。
注意:区分软件测试和软件调试。
1.2.2软件测试生命周期测试的生命周期(softwaretestinglifecycle)分为几个阶段(如图1-1所示)。前三个阶段就是引入程序错误阶段;后三个阶段就是清除程序错误的阶段。
图1-1测试生命周期1.2.3软件开发与测试模型下面我们将介绍几种典型的软件开发与测试模型。一、软件开发与测试V模型
在传统开发过程中测试不受重视,仅把它作为在需求分析、概要设计、详细设计及编码之后的一个阶段。尤其在瀑布模型中。如图1-2所示,在V模型中,描述了一些不同的测试级别,并说明了这些级别所对应的生命周期中不同的阶段,清楚地描述了这些测试阶段和开发过程期间的对应关系。
图1-2V模型示意图
V模型适用于所有类型的开发过程,但并不一定适用于开发和测试过程的所有方面。
二、软件开发与测试W模型由于各种原因,开发的每一个环节都可能产生错误,如果坚持各个阶段的技术评审,就能够尽早发现和预防错误。图1-3为软件开发与测试的W模型,形象地说明了软件测试与开发的这种同步性。
图1-3W模型示意图
应用该模型的优点在于,每个软件开发活动结束后就可以执行相应的测试,如:在需求分析结束后,就可以进行需求分析测试。三、软件开发与测试H模型
与前两种模型相比,H模型充分地体现了测试过程。如图1-4所示的H模型揭示了:1、软件测试不仅仅指测试的执行,还包括很多其他的活动。2、软件测试是一个独立的流程,贯穿产品的整个开发周期,与其它流程并发进行。3、软件测试要尽早准备,尽早执行。
图1-4H模型示意图
4、软件测试根据被测物的不同是分层次的.不同层次的测试活动可以是按照某个次序先后进行的,但也可能是反复的。1.2.4与软件测试相关的术语1.错误(Error)程序员在编写代码时会出错,我们把这种错误称之为bug。随着开发过程的进行,错误会不断的放大。2.缺陷(Default)缺陷是错误的结果,更精确的说是错误的表现。3.失效(Failure)在缺陷运行时,常常会发生失效的情况。一种是过错缺陷对应的失效;一种是遗漏缺陷对应的失效。 4.测试(Test)测试是一项采用测试用例执行软件的活动,在这项活动中某个系统或组成的部分将在特定的条件下运行,然后要观察并记录结果,以便对系统或组成部分进行评价。
5.测试用例(TestCase)测试用例是为特定的目的而设计的一组测试输入、执行条件和预期的结果。6.回归测试(Regressiontesting)回归测试的目的是为了测试由于修正缺陷而更新的应用程序,以确保彻底修正了上一个版本的缺陷,并且没有引入新的软件缺陷。
1.3软件测试技术分类从不同的角度,可以把软件测试技术分成不同种类,如:一、从是否需要执行被测软件的角度,可分为静态测试和动态测试。那些不利用计算运行被测程序,而是通过其他手段达到测试目的的方法称作静态测试。下面我们对这几种静态测试分别加以介绍:①代码检查②代码走查③桌面检查④同行评分
二、从软件测试用例设计方法的角度,可分为黑盒测试(Black-BoxTesting)和白盒测试(White-BoxTesting)。三、按照软件测试的策略和过程分类,软件测试可分为单元测试(UnitTesting)、集成测试(IntegrationTesting)、确认测试(ValidationTesting)、系统测试(SystemTesting)和验收测试(VerificationTesting)。
1.4软件测试的目的
测试真正的目的是使我们通过对软件错误的原因和分布进行归纳,来发现并排除当前软件产品的缺陷,对在需求和设计过程中存在的问题查缺补漏,从而确保软件产品的质量。
G.Myers给出了关于测试的一些规则,我们也可以把这些规则看作是测试的目标:
1)软件测试是为了发现错误而执行程序的过程。
2)测试是为了证明程序有错,而不是证明程序无错。
3)一个好的测试用例在于他能发现至今未发现的错误。
4)一个成功的测试是发现了至今未发现的错误的测试。这里要强调的一点是,软件测试不只是软件测试人员的工作,也是软件开发人员和软件使用者的工作。1.5软件测试的原则1.5.1尽早地和不断地进行软件测试
IBM的研究结果表明,缺陷存在放大趋势。图1-5表示了缺陷放大模型大致状况。图1-5缺陷放大模型由此可见,问题发现越早,解决问题的代价就越小,这是软件开发过程中的黄金法则。
1.5.2不可能完全的测试
对一个程序进行完全测试就是意味着在测试结束之后,再也不会发现其它的软件错误了。其实,这是不可能的,主要原因有以下几点:一、不可能测试程序对所有可能输入的响应。二、不可能测试到程序每一条可能的执行路径三、无法找出所有的设计错误四、不能采用逻辑来证明程序的正确性
1.5.3增量测试,由小到大
图1-7测试资源关系图1.5.4避免测试自己的程序
避免程序员测试自己的代码的主要原因归纳如下:1.程序员轻易不会承认自己写的程序有错误。2.程序员的测试思路有局限性,在做测试时很容易受到编程思路的影响。3.多数程序员没有严格正规的职业训练,缺乏专业测试人员的意识。4.程序员没有养成错误跟踪和回归测试的习惯.
1.5.5设计周密的测试用例软件测试的本质就是针对要测试的内容确定一组测试用例。测试用例至少应该包括如下几个基本信息:1、在执行测试用例之前,应满足的前提条件。2、输入(合理的、不合理的)。3、预期输出(包括后果和实际输出)。
图1-8典型的测试用例信息1.5.6注意错误集中的现象软件缺陷的“扎堆”现象的常见形式:
1、对话框的某个控件功能不起作用,可能其他控件的功能也不起作用。
2、某个文本框不能正确显示双字节字符,则其他文本框也可能不支持双字节字符。
3、联机帮助某段文字的翻译包含了很多错误,与其相邻的上下段的文字可能也包含很多的语言质量问题。4、安装文件某个对话框的“上一步”或“下一步”按钮被截断,则这两个按钮在其他对话框中也可能被截断。1.5.7确认BUG的有效性有时候测试人员提交的BUG并不是真正的BUG。图1-10具体地描述了无效BUG的来源。一般由A测试人员发现的BUG,一定要由另外一个B测试人员来进行确认,如果发现严重的BUG可以召开评审会进行讨论和分析。图1-10无效BUG来源构成图1.5.8合理安排测试计划
合理的测试计划有助于测试工作顺利有序地进行,因此要求在对软件进行测试之前所作的测试计划中,应该结合了多种针对性强的测试方法、列出所有可使用资源,建立一个正确的测试目标。要本着严谨、准确的原则,周到细致地做好测试前期的准备工作,避免测试的随意性。尤其是要尽量科学合理地安排测试时间。
图1-11错误依赖关系1.5.9回归测试1.5.10测试结果的统计和分析
只有对这些输出信息进行深入地统计、分析和比较,才能够正确的鉴别测试后输出的数据,给出清晰的错误原因分析报告。当输出的信息很庞大时,我们可以借助专业的测试工具。1.5.11及时更新测试
事实上,有可能导致测试失败的原因还有很多,可大致归纳为如下几点:
1、测试团队管理者失职;
2、测试团队中沟通不好;
3、测试团队和项目团队沟通不良;
4、测试过程中,执行角色无准确定义;
5、测试团队缺乏良好的培训。
北京测试空间科技发展有限公司是注册于北京市海淀区高新技术园的软件企业,目前主要业务范围包括软件测试管理工具研发、软件测试项目外包和软件测试专业技术人才培养
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025甘肃省安全员A证考试题库
- 2025年河南省商丘市单招职业适应性测试题库学生专用
- 2025安徽省安全员B证考试题库附答案
- 水产公司合同范本
- 社交媒体与时尚文化传播的相互影响研究
- 2025年河北建筑安全员-C证考试(专职安全员)题库附答案
- 配件保修合同范本
- 急危重症护理学知到智慧树章节测试课后答案2024年秋昌吉职业技术学院
- 2025年黑龙江商业职业学院单招职业技能测试题库及答案一套
- 租赁合同范本 押金
- 新闻采访与写作课件第十九章融合报道
- 常用小学生词语成语积累归类大全
- 七种不同样式的标书密封条
- 全国水利工程监理工程师培训教材质量控制
- 中国传统成语故事(英文版)
- 铸造厂总降压变电所及厂区配电系统设计
- 航拍中国优秀课件
- 《做自己的心理医生 现代人的心理困惑和自我疗愈策略》读书笔记思维导图PPT模板下载
- 小学音乐组集体备课计划
- 稿件修改说明(模板)
- 血液透析安全注射临床实践专家共识解读
评论
0/150
提交评论