软件测试技术交流课件_第1页
软件测试技术交流课件_第2页
软件测试技术交流课件_第3页
软件测试技术交流课件_第4页
软件测试技术交流课件_第5页
已阅读5页,还剩169页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

软件测试技术交流深圳市中兴通讯股份有限公司2003年2月软件测试技术交流1软件测试软件测试的重要性和必要性软件测试的目的和原则软件测试的基本概念软件测试的基本技术和策略软件测试阶段软件测试流程软件测试工具软件测试软件测试的重要性和必要性2

1.1软件测试——保证软件质量的重要手段系统的、严密的软件测试能最大限度的发现软件中的错误,从而减少软件中残留的错误通过软件测试可以验证软件功能、性能、容量、约束、限制等指标是否满足规定的需求软件可靠性测试可得到软件可靠性指标软件测试为软件质量定量评定提供依据高层次的软件测试可以发现系统级错误

软件测试的重要性和必要性1.1软件测试——保证软件质量的重要手段3

软件测试的重要性和必要性1.2软件测试局限性被测系统存在故障敏感性和巧合正确性获得预期结果困难,甚至不可能测试本身也可能存在错误软件测试的重要性和必要性1.2软件测4

1.2软件测试局限性(续)完全的软件测试是不现实的软件测试不能保证发现软件中所有的错误软件测试不能取代其它质量保证手段软件测试:巨大的效益和艰苦的工作并存

软件测试的重要性和必要性1.2软件测试局限性(续)软件5软件测试的重要性和必要性软件测试的目的和原则软件测试的基本概念软件测试的基本技术和策略软件测试阶段软件测试流程软件测试工具软件测试软件测试的重要性和必要性软件测试6软件测试的目的和原则2.1软件测试的目的基于不同的立场,存在着两种完全不同的测试目的。从用户的角度出发,普遍希望通过软件测试暴露软件中隐藏的错误和缺陷,以考虑是否可接受该产品。从软件开发者的角度出发,则希望测试成为表明软件产品中不存在错误的过程,验证该软件已正确地实现了用户的要求,确立人们对软件质量的信心。软件测试的目的和原则2.1软件测试的目的7软件测试的目的和原则2.2软件测试目的测试是程序的执行过程,目的在于发现错误;一个好的测试用例在于能发现至今未发现的错误;一个成功的测试是发现了至今未发现的错误的测试。软件测试的目的和原则2.2软件测试目的8软件测试的目的和原则2.3简而言之,软件测试的最终目的是:以最少的时间和人力,尽可能多地找出软件中潜在的各种错误和缺陷,把尽可能多的问题解决在产品出厂之前在可接受的开销下提高对软件的信心。测试的附带收获是,它能够证明软件的功能和性能与需求说明相符合。

测试不能表明软件中不存在错误,恰恰相反它只能说明软件中存在错误。软件测试的目的和原则2.3简而言之,软件测9软件测试的目的和原则2.4软件测试原则之一:Good-enough这是一种权衡投入/产出比的原则,测试既不要不充分,也不要过分。不充分和过分都是一种不负责任的表现

Zero-bug是一种理想,Good-enough是我们的原则软件测试的目的和原则2.4软件测试原则之一10软件测试的目的和原则2.5软件测试原则之二:bug的80%原则一般情况下,在分析、设计、实验阶段的复审和测试工作能够发现和避免80%的bug,而系统的软件测试能够找出其余bug中的80%。最后约5%的bug只有在用户大范围、长时间的使用后才会暴露出来。

因此测试只能保证尽可能多地发现错误,不能保证发现所有的错误。软件测试的目的和原则2.5软件测试原则之二:11软件测试的目的和原则2.6软件测试的其他原则尽早地和不断地进行软件测试。问题发现得越早,解决问题的代价就越小程序员应避免检查自己的程序——独立性原则在设计测试用例时,应包括合理的输入条件和不合理的输入条件充分注意测试中的群集现象。经验表明,一段程序中存在错误的概率与在这段程序中已发现的错误数成比例。严格执行测试计划,排除测试的随意性软件测试的目的和原则2.6软件测试的其他原12软件测试的目的和原则2.6软件测试的其他原则(续)分派有经验、富有创造性的人员承担测试不能为了便于测试擅自修改程序既测试软件应该做的也检查软件不该做的既测试有效的和期望的输入也测试无效的和不期望的输入软件测试的目的和原则2.6软件测试的其他原13软件测试的目的和原则2.7软件测试的完成准则完成测试计划规定的测试项使用规定的测试用例设计方法查出一定数目的错误标出单位时间查出的错误量,进行曲线分析某一测量值达到预期目标(如可靠性测试)考查测试充分性软件测试的目的和原则2.7软件测试的完成准14软件测试的重要性和必要性软件测试的目的和原则软件测试的基本概念软件测试的基本技术和策略软件测试阶段软件测试流程软件测试工具软件测试软件测试的重要性和必要性软件测试15

软件测试的基本概念3.1什么是软件测试GB/T11457-1995的定义

由人工或自动方法来执行或评价系统或系统部件的过程,以验证它是否满足规定的需求;或识别出期望的结果和实际结果之间的差别.该定义也就是IEEE1983中软件测试的定义软件测试的基本概念3.1什么是软件测试16

软件测试的基本概念3.2软件测试认识的变迁和发展历史上的一些错误认识测试和调试没有什么区别,除了支持调试外,测试没有别的目的(错误)测试的目的在于证明软件正确(错误)当前软件测试工作中的认识测试的目的在于证明软件错误(实际)测试的目的不是证明任何事情,仅是为了将已察觉的故障的风险程度减小到一个可接受的值(度量)测试是检验软件是否满足规定的需求(全面)软件测试的基本概念3.2软件测试认识的变17

3.2软件测试认识的变迁和发展(续)软件测试的发展方向测试不是一种行为,它是不需要更多的测试工作即可以产生低风险的软件的一种认识上的训练(预防).

软件测试的基本概念3.2软件测试认识的变迁和发展(续)软18

3.3什么是“错误”?“错误”这一术语,在没有特别加以说明的情况下,这是一个泛用的、模糊的概念它指的可能是bug(设计中的差错)、fault(故障)、error(出错)、failure(失效)、crash(重大事故)、problem(疑问)等

软件测试的基本概念3.3什么是“错误”?软件测试的基本概念19

软件测试的基本概念3.3什么是“错误”?(续)故障(fault):软件的内在缺陷。这些缺陷可以在生存期各个阶段被引入。出错(error):故障在一定的环境条件下的暴露,导致系统在运行中出现了不正常、不正确、不按规范执行的状态,称为软件出错。失效(failure):对错误不做任何修正和恢复,导致系统的输出不满足用户要求,称为软件的一次失效软件测试的基本概念3.3什么是“错误”?(续)20

软件测试的基本概念3.4测试是需要设计的测试是一项具有很大创造性的工作,其工作量一点也不比代码设计小测试是需要设计的,一个好的测试计划或方案往往能达到事半功倍的效果测试设计即利用测试工具提供的脚本语言进行测试用例设计测试设计可以是自动的,半自动的或手工编写软件测试的基本概念3.4测试是需要设计的21

软件测试的基本概念3.5测试和调试是不同的测试是查找潜在的错误,调试是定位已知的错误测试贯穿于整个软件生存期,调试主要是在软件开发过程中测试是发现问题,调试解决问题测试与调试不能相互替代,但可相互支持,相辅相成软件测试的基本概念3.5测试和调试是不同的测试是查找潜在22

软件测试的基本概念3.6软件的生命周期——V字模型用户需求定义需求分析预设计详细设计代码单元测试集成测试确认测试系统测试软件测试的基本概念3.6软件的生命周期——V字模型用户需23

软件测试的基本概念3.7软件测试的分类按功能分类白盒测试(Whiteboxtesting)黑盒测试(Blackboxtesting)按测试阶段分类单元测试(Unittesting)集成测试(Integratedtesting)确认测试(Validationtesting)系统测试(Systemtesting)按运行状态分类动态测试(Dynamictesting)静态测试(Statictesting)软件测试的基本概念3.7软件测试的分类24

软件测试的基本概念3.8软件测试的流程软件测试的基本概念3.8软件测试的流程25

3.9软件测试的工程化软件生命周期软件测试方法软件测试规程软件测试文档软件测试工具

软件测试的基本概念3.9软件测试的工程化软件测试的基本概念26软件测试的重要性和必要性软件测试的目的和原则软件测试的基本概念软件测试的基本技术和策略软件测试阶段软件测试流程软件测试工具软件测试软件测试的重要性和必要性软件测试27

软件测试基本技术和策略4.1软件测试的总体方略与软件设计的各阶段相对应,从单元测试开始,然后集成测试、确认测试、系统测试主要测试技术:静态分析、动态测试、覆盖测试主要方法:白盒法、黑盒法软件测试基本技术和策略4.1软件测试的总体方略28

软件测试基本技术和策略4.1软件测试的总体方略(续)软件测试基本技术和策略4.1软件测试的总体方略(续)29

软件测试基本技术和策略静态测试概念不运行被测程序检查软件是否易维护,是否符合编程标准软件工程度量(指标测试),如复杂度等代码统计静态测试具体技术人工审查:

如代码走查、代码审议、技术评审、桌面检查等自动静态分析:

使用软件测试工具自动地完成4.2静态测试软件测试基本技术和策略静态测试概念4.2静态测试30

4.3.1动态测试的基本概念利用计算机运行被测程序取得程序运行的真实情况,主要测试软件的功能、覆盖率、运行时间等动态测试的关键在于测试用例设计使用的方法主要有黑盒法和白盒法4.3动态测试

软件测试基本技术和策略4.3.1动态测试的基本概念4.3动态测试软件测试基31

软件测试基本技术和策略4.3动态测试4.3.2测试用例(TestCase)动态测试是由一个一个的测试用例来完成的测试用例通常是一段用脚本语言(Scriptlanguage)编写的小程序,该程序定义了被测对象、测试条件、输入参数、期望输出参数、桩调用及其顺序等测试用例与被测程序一起运行才能生效软件测试基本技术和策略4.3动态测试4.3.2测试用例32

4.3.3黑盒测试和白盒测试黑盒测试像中医:使用望、闻、问、切白盒测试像西医:使用X光、CT扫描目的都是发现病人的病症PINOUT白盒测试:黑盒测试:

软件测试基本技术和策略4.3.3黑盒测试和白盒测试PINOUT白盒测试:黑盒测33

4.3.4黑盒测试:这种方法是把测试对象看做一个黑盒子,测试人员完全不考虑程序内部的逻辑结构和内部特性,只依据程序的需求规格说明书,检查程序的功能是否符合它的功能说明。黑盒测试又叫做功能测试或数据驱动测试。测试用例根据程序规格说明生成某些代码段可能得不到测试适用于从单元测试到系统测试需要用白盒测试加以补充软件测试基本技术和策略4.3.4黑盒测试:软件测试基本技术和策略34

4.3.4黑盒测试(续)黑盒测试方法是在程序接口上进行测试,主要是为了发现以下错误:

是否有不正确或遗漏了的功能?在接口上,输入能否正确地接受?能否输出正确的结果?

是否有数据结构错误或外部信息(例如数据文件)访问错误?

性能上是否能够满足要求?

是否有初始化或终止性错误?软件测试基本技术和策略4.3.4黑盒测试(续)软件测试基本技术和策略35ALAC测试

软件中有许多错误客户遇到的错误只占很小比例针对客户最容易遇到的错误进行测试,以便改进测试的有效性软件测试基本技术和策略ALAC测试软件中有许多错误客户遇到的错误只占很小比例针对36IBM对典型软件的一项研究1、客户所看到的57%以上的故障是由占错误总数2%以下的错误引起的2、超过总数61%的错误只引起低于3%的客户将会经历的故障。3、不同的错误在引起的故障率上存在高达四个数量级的巨大差异----一些错误运行几个小时就表现出来,而其他一些数年之后才出现。软件测试基本技术和策略IBM对典型软件的一项研究软件测试基本技术和策略374.3.5白盒测试白盒法把测试对象看做一个透明的盒子,它允许测试人员利用程序内部的逻辑结构及有关信息,设计或选择测试用例,对程序所有逻辑路径进行测试。通过在不同点检查程序的状态,确定实际的状态是否与预期的状态一致。因此白盒测试又称为结构测试或逻辑驱动测试。可以发现黑盒测试后没有被测试到的部分用程序结构信息生成测试用例构造测试用例使特定程序部分得到运行适用于单元测试和覆盖率测试软件测试基本技术和策略4.3.5白盒测试软件测试基本技术和策略384.3.5白盒测试(续)软件人员使用白盒测试方法,主要想对程序模块进行如下的检查:对程序模块的所有独立的执行路径至少测试一次;对所有的逻辑判定,取“真”与取“假”的两种情况都至少测试一次;在循环的边界和运行界限内执行循环体;测试内部数据结构的有效性,等。软件测试基本技术和策略4.3.5白盒测试(续)软件测试基本技术和策略394.4.1什么是单元测试单元测试又称模块测试,是针对软件设计的最小单位─程序模块,进行正确性检验的测试工作。其目的在于发现各模块内部可能存在的各种差错。单元测试需要从程序的内部结构出发设计测试用例。多个模块可以平行地独立进行单元测试。4.4单元测试软件测试基本技术和策略4.4.1什么是单元测试4.4单元测试软件测试基本技术和404.3.2单元测试的步骤软件测试基本技术和策略测试计划测试用例测试执行分析测试结果生成测试报告4.3.2单元测试的步骤软件测试基本技术和策略测试计划测试414.4.3单元测试的内容软件测试基本技术和策略模块覆盖条件边界条件出错处理模块接口局部数据结构4.4.3单元测试的内容软件测试基本技术和策略模块覆盖条件424.4.4单元测试的配制软件测试基本技术和策略驱动程序被测模块桩模块#2桩模块#1桩模块#3测试用例测试结果4.4.4单元测试的配制软件测试基本技术和策略驱动程序被测434.4.4单元测试的配制(续)被测模块并不是一个独立的程序,在考虑测试模块时,同时要考虑它和外界的联系,用一些辅助模块去模拟与被测模块相联系的其它模块。

驱动模块(driver)——模拟主程序调用

桩模块(stub)──模拟被调用模块,此时被测模块并没有真正调用其他模块,而是从桩模块处得到一个所需的值。这种技术叫做打桩(Stub),用来隔离其他模块对被测模块的影响。软件测试基本技术和策略4.4.4单元测试的配制(续)软件测试基本技术和策略44概念集成测试又称组装测试、联合测试在单元测试的基础上,需要将所有模块按照设计要求集合成为系统,测试便进入集成测试阶段。这时需要考虑的问题是:在把各个模块连接起来的时侯,穿越模块接口的数据是否会丢失;一个模块的功能是否会对另一个模块的功能产生不利的影响;各个子功能组合起来,能否达到预期要求的父功能;4.5集成测试软件测试基本技术和策略概念4.5集成测试软件测试基本技术和策略45在单元测试的同时可进行集成测试,发现并排除在模块连接中可能出现的问题,最终构成要求的软件系统有时我们需要将部分模块组装成子系统,针对子系统的集成测试特别称为部件测试,它所做的工作是要找出组装后的子系统与系统需求规格说明之间的不一致。软件测试基本技术和策略全局数据结构是否有问题;单个模块的误差累积起来,是否会放大,从而达到不能接受的程度。软件测试基本技术和策略全局数据结构是否有问题;464.6.1什么是确认测试(Validationtesting)确认测试又称有效性测试。任务是验证软件的功能和性能及其它特性是否与用户的要求一致。对软件的功能和性能要求在软件需求规格说明书中已经明确规定。它包含的信息就是软件确认测试的基础。4.6确认测试

软件测试基本技术和策略4.6.1什么是确认测试(Validationtesti474.6.2如何实施确认测试在模拟环境(如开发环境)下,运用黑盒测试的方法,验证被测软件是否满足需求规格说明书列出的需求。首先制定测试计划,规定要做测试的种类。还需要制定一组测试步骤,描述具体的测试用例。通过实施预定的测试计划和测试步骤,确定

软件的特性是否与需求相符;所有的文档都是正确且便于使用;对其它软件需求,例如可移植性、兼容性、出错自动恢复、可维护性等,也都要进行测试

软件测试基本技术和策略4.6.2如何实施确认测试软件测试基本技术和策略484.6.2如何实施确认测试(续)软件配置复查。软件配置复查的目的是保证:软件配置的所有成分都齐全;各方面的质量都符合要求;具有维护阶段所必需的细节;而且已经编排好分类的目录。

应当严格遵守用户手册和操作手册中规定的使用步骤,以便检查这些文档资料的完整性和正确性。

软件测试基本技术和策略4.6.2如何实施确认测试(续)软件测试基本技术和策略494.7.1系统测试(Systemtesting)系统测试是将通过确认测试的软件,作为整个基于计算机系统的一个元素,与计算机硬件、外设、某些支持软件、数据和人员等其它系统元素结合在一起,在实际运行环境下,对计算机系统进行一系列的组装测试和确认测试。系统测试的目的在于通过与系统的需求定义作比较,发现软件与系统的定义不符合或与之矛盾的地方。4.7系统测试

软件测试基本技术和策略4.7.1系统测试(Systemtesting)4.7504.7.2系统测试的特点系统测试的对象已不限于被测软件本身,还包括硬件平台、操作系统、辅助设备等一切与之相关的环境因素系统测试发现的问题可能不仅仅由被测软件造成,因此对错误的分析定位尤其重要相对而言,系统测试的实施比较困难,特别是嵌入式软件的系统测试

软件测试基本技术和策略4.7.2系统测试的特点软件测试基本技术和策略514.8.1覆盖率测试的基本概念覆盖率测试又称覆盖率分析(Coverageanalysis),它以程序内部的逻辑结构为基础,是白盒测试的一种。被测代码中某一条语句执行过了,就称该语句被覆盖了覆盖率测试就是分析被测软件在运行过程中各条语句(代码)的执行情况,如是否执行了?在什么条件下执行的?执行过的代码占总代码的比例称为覆盖率根据执行条件的不同,我们区分不同的覆盖率4.8覆盖率测试

软件测试基本技术和策略4.8.1覆盖率测试的基本概念4.8覆盖率测试软件测试基524.8.2覆盖种类语句覆盖:程序中每一可执行语句至少执行一次分支覆盖:程序中每个判断的取真分支和取假分支至少经历一次。分支覆盖又成判定覆盖。条件覆盖:程序中每个判断的每个条件的可能取值至少执行一次。条件组合覆盖:每个判断的所有可能的条件取值组合至少执行一次。条件组合覆盖又称布尔覆盖。...

软件测试基本技术和策略4.8.2覆盖种类软件测试基本技术和策略534.8.3覆盖测试的基本技术——插装插装(Instrumentation),又称软件探针(Software

Probe),是白盒测试的一种常用技术。插装是在软件特定的位置插入一些语句,用来获取软件的运行信息并反馈给测试者。插装不应影响原程序的执行,更不能改变原程序的结构

软件测试基本技术和策略4.8.3覆盖测试的基本技术——插装软件测试基本技术和策54

软件测试基本技术和策略4.9测试策略之一:重视需求测试什么是需求(Requirement)?AdefinitionofWHATthesystemshoulddo需求又称外部叙述、功能描述、系统需求定义、逻辑说明等软件的测试、验证和确认只有当具备软件需求分析时才有意义。因此保证需求的正确是非常重要的需求测试,即基于需求的测试(RequirementsBasedTesting)指在系统尚处于需求定义阶段时就进行测试在软件生命周期的初级阶段进行测试,可以尽早地发现错误软件测试基本技术和策略4.9测试策略之一:重视需求测试55软件测试基本技术和策略詹姆斯马丁的研究:测试所发现的错误中,超过50%的错误其根源在于错误的或不恰当的需求定义上软件测试基本技术和策略詹姆斯马丁的研究:56软件测试基本技术和策略同时,研究结果表明80%以上的用于定位软件错误的费用是基于软件系统需求定义的错误DistributionofEfforttoFixBugs软件测试基本技术和策略DistributionofEff57软件测试基本技术和策略通常,错误发现得越早,用于纠正错误的开销就越小因此,改进软件系统测试方法的最佳途径,是改进软件系统需求定义开发过程和功能测试过程——加强需求测试软件测试基本技术和策略58软件测试基本技术和策略4.10测试策略之二:选择合适的测试工具工欲善其事,必先利其器根据测试需要和工具的特长进行选择Caliber-RBT:需求测试Cantata/Cantata++:单元测试、集成测试McCabe:结构化测试、白盒测试Trace32:实时在线测试...软件测试基本技术和策略4.10测试策略之二:选择合适的测试59软件测试的重要性软件测试的基本概念软件测试的工作内容软件测试的基本技术和策略软件测试阶段软件测试流程软件测试工具软件测试软件测试的重要性软件测试60软件测试阶段单元单元单元单元单元测试单元测试单元测试单元测试组装测试确认测试系统测试已测单元组装的软件确认的软件设计信息软件需求其它系统元素5.1软件测试阶段图软件测试阶段单元单元单元单元单元测试单元测试单元测试单元测试61

5.2单元测试特点a.相当于硬件设备板级部件的检验,是发现和改正错误都较容易的阶段b.对详细设计说明书负责c.有条件进行较细致的白盒测试组织

在开发组内,可交叉进行。软件测试阶段5.2单元测试软件测试阶段62

5.2单元测试(续)内容

a.功能测试b.重要的执行路径测试c.局部数据结构d.错误处理测试e.影响上述各条的边界条件f.语句覆盖测试,分支覆盖测试软件测试阶段5.2单元测试(续)软件测试阶段63

5.2单元测试(续)要求

a.语句覆盖100%b.分支覆盖c.软件特性覆盖方法

a.黑盒(功能、边界、随机)b.白盒(控制流/数据流)c.使用驱动/桩程序d.某些工具支持软件测试阶段5.2单元测试(续)软件测试阶段64

5.3组装测试特点

a.相当于硬件设备的功能模块测试b.对概要设计说明书负责c.是发现和改正模块接口错误的重要阶段d.是验证系统功能增长正确性的阶段组织

一般在开发小组内部进行软件测试阶段5.3组装测试软件测试阶段65

5.3组装测试(续)内容a.单元间的接口测试b.部件的功能测试c.全局数据结构测试d.部件的运行时间、运行空间、计算精度测试e.边界和在人为条件下的性能软件测试阶段5.3组装测试(续)软件测试阶段66

5.4确认测试特点

a.对软件需求规格说明负责b.对完整软件功能和性能的总体测试c.相当于硬件设备成品检验组织

独立测试方式软件测试阶段5.4确认测试软件测试阶段67

5.4确认测试(续)内容功能测试-安全性测试性能测试-恢复性测试界面测试-边界测试强度测试-功能多余物测试余量测试-安装性测试可靠性测试软件测试阶段5.4确认测试(续)软件测试阶段68

5.4确认测试(续)要求

a.有用户参加确认测试b.采用独立测试方式c.测试环境符合要求方法

a.功能特性分析及确定测试特性b.黑盒测试方法、状态/转换测试等一般方法c.仿真/模拟测试软件测试阶段5.4确认测试(续)软件测试阶段69

5.5系统测试特点

a.对系统/子系统任务书负责b.是软件加入真实系统的阶段c.强调测试软件在大系统中的表现d.测试的内容和整个系统构成密切相关组织

由上级系统组织,软件开发和测试人员协助、参加软件测试阶段5.5系统测试软件测试阶段70

5.5系统测试(续)内容(从软件角度)系统功能测试-系统安全性测试系统性能测试-系统恢复性测试系统接口测试-系统边界测试系统强度测试-系统敏感性测试系统余量测试系统可靠性测试软件测试阶段5.5系统测试(续)软件测试阶段71

5.5系统测试(续)要求

a.加强技术状态管理(软件配置管理)b.加强测试环境数据记录c.符合系统有关规定d.从软件测试角度给出一些系统运行实例方法

a.运行测试b.情景测试c.半实物仿真试验d.系统综合匹配试验软件测试阶段5.5系统测试(续)软件测试阶段72

5.6回归测试软件更动后重新进行的测试既要测试更动部分,也要测试受影响部分中心在决定哪些测试必须被重复关键是保证测试工作的可重现性编程测试发现错误更动回归测试软件测试阶段5.6回归测试软件测试阶段73

5.6回归测试方法重复原先所有的测试确定并运行标准测试集进行系统级功能测试测试新功能,并人工判别需重复的测试使用回归测试辅助工具捕获和释放工具测试用例管理工具/测试管理工具软件测试阶段5.6回归测试方法软件测试阶段74软件测试的基本概念软件测试的重要性软件测试的工作内容软件测试的技术和策略软件测试阶段软件测试流程软件测试工具软件测试软件测试的基本概念软件测试75

6.1软件测试的基本流程在测试工作中应产生完整的测试文档:测试计划、测试说明和测试报告正式测试中这三份文档应得到评审软件测试流程制订测试计划产生测试用例集执行测试评价测试工作和被测软件6.1软件测试的基本流程软件测试流程制订测试计划产生测试76

6.2制订测试计划输入:软件需求规格说明、用户手册、操作手册、运行环境资料。任务:确定测试活动的范围,测试方法、进度、资源、功能验证的实施步骤,各级测试的详细规程、软件验收标准、测试报告和处理方法。输出:软件测试计划、测试支持资源需求(工具/环境)。软件测试流程6.2制订测试计划软件测试流程77

6.3产生测试用例集输入:软件测试计划、软件结构设计文档、测试支持资源需求。任务:根据被测试特性,设计测试用例集结构,为每一测试用例决定软件输入输出和控制方式(人工、半自动、自动)并控制相应的测试规程、获得并验证所需要的测试数据。输出:测试设计说明、测试规程说明、测试用例说明(也可以合并为测试说明)。软件测试流程6.3产生测试用例集软件测试流程78

6.4执行测试输入:测试设计说明、测试规程说明、测试用例说明、软件数据结构描述、测试项、测试支持资源。任务:按测试规程执行测试用例,决定测试通过或失败,如果通过则进行评价,否则根据错误情况重新运行测试或修改软件设计、编码或文件的有关部分,然后再重新进行测试。输出:测试结果描述、错误描述、其它执行信息、修订后的测试说明。软件测试流程6.4执行测试软件测试流程79

6.5评价测试工作和被测软件输入:测试结果描述、错误描述、其它执行信息、修订后的测试说明。任务:依照评价准则,评价测试工作和被测软件,当发现测试工作不足时,应修订测试计划,重复制定计划开始的工作,直到测试完备时止。输出:测试总结报告。软件测试流程6.5评价测试工作和被测软件软件测试流程80软件测试的基本概念软件测试的重要性软件测试的工作内容软件测试的技术和策略软件测试阶段软件测试流程软件测试工具软件测试软件测试的基本概念软件测试81白盒测试工具-DevPartnerStudio自动错误检查工具BoundsChecker(VC)SmartCheck(VB)CodeReview(VB)Jcheck(Java)自动代码覆盖分析TrueCoverage(VC++/VB/Java)自动性能分析和优化TrueTime软件测试工具白盒测试工具-DevPartnerStudio自动错误检查82白盒测试工具-Pure自动错误检查工具Purify(C/C++/Fortran)自动代码覆盖分析PureCoverage(C/C++/Fortran)自动性能分析和优化Quantify(C/C++/Fortran)软件测试工具白盒测试工具-Pure自动错误检查工具软件测试工具83黑盒测试工具-QACenterQADirector-测试的组织与管理工具TrackRecord-缺陷跟踪管理工具QARun-应用的功能测试工具QALoad-强度测试工具WebCheck-Web站点质量分析工具EcoTools-性能监测工具软件测试工具黑盒测试工具-QACenterQADirector-测试的组84黑盒测试工具-RationalTestManager-测试管理工具Robot-功能、回归、冒烟测试工具LoadTest-强度测试工具VisualTest-Windows应用功能测试工具ClearQuest-缺陷跟踪和变更管理工具软件测试工具黑盒测试工具-RationalTestManager-测试管85嵌入式软件测试工具LogiScopeCodeTestCantata软件测试工具嵌入式软件测试工具LogiScope软件测试工具86谢谢大家!谢谢大家!87软件测试技术交流深圳市中兴通讯股份有限公司2003年2月软件测试技术交流88软件测试软件测试的重要性和必要性软件测试的目的和原则软件测试的基本概念软件测试的基本技术和策略软件测试阶段软件测试流程软件测试工具软件测试软件测试的重要性和必要性89

1.1软件测试——保证软件质量的重要手段系统的、严密的软件测试能最大限度的发现软件中的错误,从而减少软件中残留的错误通过软件测试可以验证软件功能、性能、容量、约束、限制等指标是否满足规定的需求软件可靠性测试可得到软件可靠性指标软件测试为软件质量定量评定提供依据高层次的软件测试可以发现系统级错误

软件测试的重要性和必要性1.1软件测试——保证软件质量的重要手段90

软件测试的重要性和必要性1.2软件测试局限性被测系统存在故障敏感性和巧合正确性获得预期结果困难,甚至不可能测试本身也可能存在错误软件测试的重要性和必要性1.2软件测91

1.2软件测试局限性(续)完全的软件测试是不现实的软件测试不能保证发现软件中所有的错误软件测试不能取代其它质量保证手段软件测试:巨大的效益和艰苦的工作并存

软件测试的重要性和必要性1.2软件测试局限性(续)软件92软件测试的重要性和必要性软件测试的目的和原则软件测试的基本概念软件测试的基本技术和策略软件测试阶段软件测试流程软件测试工具软件测试软件测试的重要性和必要性软件测试93软件测试的目的和原则2.1软件测试的目的基于不同的立场,存在着两种完全不同的测试目的。从用户的角度出发,普遍希望通过软件测试暴露软件中隐藏的错误和缺陷,以考虑是否可接受该产品。从软件开发者的角度出发,则希望测试成为表明软件产品中不存在错误的过程,验证该软件已正确地实现了用户的要求,确立人们对软件质量的信心。软件测试的目的和原则2.1软件测试的目的94软件测试的目的和原则2.2软件测试目的测试是程序的执行过程,目的在于发现错误;一个好的测试用例在于能发现至今未发现的错误;一个成功的测试是发现了至今未发现的错误的测试。软件测试的目的和原则2.2软件测试目的95软件测试的目的和原则2.3简而言之,软件测试的最终目的是:以最少的时间和人力,尽可能多地找出软件中潜在的各种错误和缺陷,把尽可能多的问题解决在产品出厂之前在可接受的开销下提高对软件的信心。测试的附带收获是,它能够证明软件的功能和性能与需求说明相符合。

测试不能表明软件中不存在错误,恰恰相反它只能说明软件中存在错误。软件测试的目的和原则2.3简而言之,软件测96软件测试的目的和原则2.4软件测试原则之一:Good-enough这是一种权衡投入/产出比的原则,测试既不要不充分,也不要过分。不充分和过分都是一种不负责任的表现

Zero-bug是一种理想,Good-enough是我们的原则软件测试的目的和原则2.4软件测试原则之一97软件测试的目的和原则2.5软件测试原则之二:bug的80%原则一般情况下,在分析、设计、实验阶段的复审和测试工作能够发现和避免80%的bug,而系统的软件测试能够找出其余bug中的80%。最后约5%的bug只有在用户大范围、长时间的使用后才会暴露出来。

因此测试只能保证尽可能多地发现错误,不能保证发现所有的错误。软件测试的目的和原则2.5软件测试原则之二:98软件测试的目的和原则2.6软件测试的其他原则尽早地和不断地进行软件测试。问题发现得越早,解决问题的代价就越小程序员应避免检查自己的程序——独立性原则在设计测试用例时,应包括合理的输入条件和不合理的输入条件充分注意测试中的群集现象。经验表明,一段程序中存在错误的概率与在这段程序中已发现的错误数成比例。严格执行测试计划,排除测试的随意性软件测试的目的和原则2.6软件测试的其他原99软件测试的目的和原则2.6软件测试的其他原则(续)分派有经验、富有创造性的人员承担测试不能为了便于测试擅自修改程序既测试软件应该做的也检查软件不该做的既测试有效的和期望的输入也测试无效的和不期望的输入软件测试的目的和原则2.6软件测试的其他原100软件测试的目的和原则2.7软件测试的完成准则完成测试计划规定的测试项使用规定的测试用例设计方法查出一定数目的错误标出单位时间查出的错误量,进行曲线分析某一测量值达到预期目标(如可靠性测试)考查测试充分性软件测试的目的和原则2.7软件测试的完成准101软件测试的重要性和必要性软件测试的目的和原则软件测试的基本概念软件测试的基本技术和策略软件测试阶段软件测试流程软件测试工具软件测试软件测试的重要性和必要性软件测试102

软件测试的基本概念3.1什么是软件测试GB/T11457-1995的定义

由人工或自动方法来执行或评价系统或系统部件的过程,以验证它是否满足规定的需求;或识别出期望的结果和实际结果之间的差别.该定义也就是IEEE1983中软件测试的定义软件测试的基本概念3.1什么是软件测试103

软件测试的基本概念3.2软件测试认识的变迁和发展历史上的一些错误认识测试和调试没有什么区别,除了支持调试外,测试没有别的目的(错误)测试的目的在于证明软件正确(错误)当前软件测试工作中的认识测试的目的在于证明软件错误(实际)测试的目的不是证明任何事情,仅是为了将已察觉的故障的风险程度减小到一个可接受的值(度量)测试是检验软件是否满足规定的需求(全面)软件测试的基本概念3.2软件测试认识的变104

3.2软件测试认识的变迁和发展(续)软件测试的发展方向测试不是一种行为,它是不需要更多的测试工作即可以产生低风险的软件的一种认识上的训练(预防).

软件测试的基本概念3.2软件测试认识的变迁和发展(续)软105

3.3什么是“错误”?“错误”这一术语,在没有特别加以说明的情况下,这是一个泛用的、模糊的概念它指的可能是bug(设计中的差错)、fault(故障)、error(出错)、failure(失效)、crash(重大事故)、problem(疑问)等

软件测试的基本概念3.3什么是“错误”?软件测试的基本概念106

软件测试的基本概念3.3什么是“错误”?(续)故障(fault):软件的内在缺陷。这些缺陷可以在生存期各个阶段被引入。出错(error):故障在一定的环境条件下的暴露,导致系统在运行中出现了不正常、不正确、不按规范执行的状态,称为软件出错。失效(failure):对错误不做任何修正和恢复,导致系统的输出不满足用户要求,称为软件的一次失效软件测试的基本概念3.3什么是“错误”?(续)107

软件测试的基本概念3.4测试是需要设计的测试是一项具有很大创造性的工作,其工作量一点也不比代码设计小测试是需要设计的,一个好的测试计划或方案往往能达到事半功倍的效果测试设计即利用测试工具提供的脚本语言进行测试用例设计测试设计可以是自动的,半自动的或手工编写软件测试的基本概念3.4测试是需要设计的108

软件测试的基本概念3.5测试和调试是不同的测试是查找潜在的错误,调试是定位已知的错误测试贯穿于整个软件生存期,调试主要是在软件开发过程中测试是发现问题,调试解决问题测试与调试不能相互替代,但可相互支持,相辅相成软件测试的基本概念3.5测试和调试是不同的测试是查找潜在109

软件测试的基本概念3.6软件的生命周期——V字模型用户需求定义需求分析预设计详细设计代码单元测试集成测试确认测试系统测试软件测试的基本概念3.6软件的生命周期——V字模型用户需110

软件测试的基本概念3.7软件测试的分类按功能分类白盒测试(Whiteboxtesting)黑盒测试(Blackboxtesting)按测试阶段分类单元测试(Unittesting)集成测试(Integratedtesting)确认测试(Validationtesting)系统测试(Systemtesting)按运行状态分类动态测试(Dynamictesting)静态测试(Statictesting)软件测试的基本概念3.7软件测试的分类111

软件测试的基本概念3.8软件测试的流程软件测试的基本概念3.8软件测试的流程112

3.9软件测试的工程化软件生命周期软件测试方法软件测试规程软件测试文档软件测试工具

软件测试的基本概念3.9软件测试的工程化软件测试的基本概念113软件测试的重要性和必要性软件测试的目的和原则软件测试的基本概念软件测试的基本技术和策略软件测试阶段软件测试流程软件测试工具软件测试软件测试的重要性和必要性软件测试114

软件测试基本技术和策略4.1软件测试的总体方略与软件设计的各阶段相对应,从单元测试开始,然后集成测试、确认测试、系统测试主要测试技术:静态分析、动态测试、覆盖测试主要方法:白盒法、黑盒法软件测试基本技术和策略4.1软件测试的总体方略115

软件测试基本技术和策略4.1软件测试的总体方略(续)软件测试基本技术和策略4.1软件测试的总体方略(续)116

软件测试基本技术和策略静态测试概念不运行被测程序检查软件是否易维护,是否符合编程标准软件工程度量(指标测试),如复杂度等代码统计静态测试具体技术人工审查:

如代码走查、代码审议、技术评审、桌面检查等自动静态分析:

使用软件测试工具自动地完成4.2静态测试软件测试基本技术和策略静态测试概念4.2静态测试117

4.3.1动态测试的基本概念利用计算机运行被测程序取得程序运行的真实情况,主要测试软件的功能、覆盖率、运行时间等动态测试的关键在于测试用例设计使用的方法主要有黑盒法和白盒法4.3动态测试

软件测试基本技术和策略4.3.1动态测试的基本概念4.3动态测试软件测试基118

软件测试基本技术和策略4.3动态测试4.3.2测试用例(TestCase)动态测试是由一个一个的测试用例来完成的测试用例通常是一段用脚本语言(Scriptlanguage)编写的小程序,该程序定义了被测对象、测试条件、输入参数、期望输出参数、桩调用及其顺序等测试用例与被测程序一起运行才能生效软件测试基本技术和策略4.3动态测试4.3.2测试用例119

4.3.3黑盒测试和白盒测试黑盒测试像中医:使用望、闻、问、切白盒测试像西医:使用X光、CT扫描目的都是发现病人的病症PINOUT白盒测试:黑盒测试:

软件测试基本技术和策略4.3.3黑盒测试和白盒测试PINOUT白盒测试:黑盒测120

4.3.4黑盒测试:这种方法是把测试对象看做一个黑盒子,测试人员完全不考虑程序内部的逻辑结构和内部特性,只依据程序的需求规格说明书,检查程序的功能是否符合它的功能说明。黑盒测试又叫做功能测试或数据驱动测试。测试用例根据程序规格说明生成某些代码段可能得不到测试适用于从单元测试到系统测试需要用白盒测试加以补充软件测试基本技术和策略4.3.4黑盒测试:软件测试基本技术和策略121

4.3.4黑盒测试(续)黑盒测试方法是在程序接口上进行测试,主要是为了发现以下错误:

是否有不正确或遗漏了的功能?在接口上,输入能否正确地接受?能否输出正确的结果?

是否有数据结构错误或外部信息(例如数据文件)访问错误?

性能上是否能够满足要求?

是否有初始化或终止性错误?软件测试基本技术和策略4.3.4黑盒测试(续)软件测试基本技术和策略122ALAC测试

软件中有许多错误客户遇到的错误只占很小比例针对客户最容易遇到的错误进行测试,以便改进测试的有效性软件测试基本技术和策略ALAC测试软件中有许多错误客户遇到的错误只占很小比例针对123IBM对典型软件的一项研究1、客户所看到的57%以上的故障是由占错误总数2%以下的错误引起的2、超过总数61%的错误只引起低于3%的客户将会经历的故障。3、不同的错误在引起的故障率上存在高达四个数量级的巨大差异----一些错误运行几个小时就表现出来,而其他一些数年之后才出现。软件测试基本技术和策略IBM对典型软件的一项研究软件测试基本技术和策略1244.3.5白盒测试白盒法把测试对象看做一个透明的盒子,它允许测试人员利用程序内部的逻辑结构及有关信息,设计或选择测试用例,对程序所有逻辑路径进行测试。通过在不同点检查程序的状态,确定实际的状态是否与预期的状态一致。因此白盒测试又称为结构测试或逻辑驱动测试。可以发现黑盒测试后没有被测试到的部分用程序结构信息生成测试用例构造测试用例使特定程序部分得到运行适用于单元测试和覆盖率测试软件测试基本技术和策略4.3.5白盒测试软件测试基本技术和策略1254.3.5白盒测试(续)软件人员使用白盒测试方法,主要想对程序模块进行如下的检查:对程序模块的所有独立的执行路径至少测试一次;对所有的逻辑判定,取“真”与取“假”的两种情况都至少测试一次;在循环的边界和运行界限内执行循环体;测试内部数据结构的有效性,等。软件测试基本技术和策略4.3.5白盒测试(续)软件测试基本技术和策略1264.4.1什么是单元测试单元测试又称模块测试,是针对软件设计的最小单位─程序模块,进行正确性检验的测试工作。其目的在于发现各模块内部可能存在的各种差错。单元测试需要从程序的内部结构出发设计测试用例。多个模块可以平行地独立进行单元测试。4.4单元测试软件测试基本技术和策略4.4.1什么是单元测试4.4单元测试软件测试基本技术和1274.3.2单元测试的步骤软件测试基本技术和策略测试计划测试用例测试执行分析测试结果生成测试报告4.3.2单元测试的步骤软件测试基本技术和策略测试计划测试1284.4.3单元测试的内容软件测试基本技术和策略模块覆盖条件边界条件出错处理模块接口局部数据结构4.4.3单元测试的内容软件测试基本技术和策略模块覆盖条件1294.4.4单元测试的配制软件测试基本技术和策略驱动程序被测模块桩模块#2桩模块#1桩模块#3测试用例测试结果4.4.4单元测试的配制软件测试基本技术和策略驱动程序被测1304.4.4单元测试的配制(续)被测模块并不是一个独立的程序,在考虑测试模块时,同时要考虑它和外界的联系,用一些辅助模块去模拟与被测模块相联系的其它模块。

驱动模块(driver)——模拟主程序调用

桩模块(stub)──模拟被调用模块,此时被测模块并没有真正调用其他模块,而是从桩模块处得到一个所需的值。这种技术叫做打桩(Stub),用来隔离其他模块对被测模块的影响。软件测试基本技术和策略4.4.4单元测试的配制(续)软件测试基本技术和策略131概念集成测试又称组装测试、联合测试在单元测试的基础上,需要将所有模块按照设计要求集合成为系统,测试便进入集成测试阶段。这时需要考虑的问题是:在把各个模块连接起来的时侯,穿越模块接口的数据是否会丢失;一个模块的功能是否会对另一个模块的功能产生不利的影响;各个子功能组合起来,能否达到预期要求的父功能;4.5集成测试软件测试基本技术和策略概念4.5集成测试软件测试基本技术和策略132在单元测试的同时可进行集成测试,发现并排除在模块连接中可能出现的问题,最终构成要求的软件系统有时我们需要将部分模块组装成子系统,针对子系统的集成测试特别称为部件测试,它所做的工作是要找出组装后的子系统与系统需求规格说明之间的不一致。软件测试基本技术和策略全局数据结构是否有问题;单个模块的误差累积起来,是否会放大,从而达到不能接受的程度。软件测试基本技术和策略全局数据结构是否有问题;1334.6.1什么是确认测试(Validationtesting)确认测试又称有效性测试。任务是验证软件的功能和性能及其它特性是否与用户的要求一致。对软件的功能和性能要求在软件需求规格说明书中已经明确规定。它包含的信息就是软件确认测试的基础。4.6确认测试

软件测试基本技术和策略4.6.1什么是确认测试(Validationtesti1344.6.2如何实施确认测试在模拟环境(如开发环境)下,运用黑盒测试的方法,验证被测软件是否满足需求规格说明书列出的需求。首先制定测试计划,规定要做测试的种类。还需要制定一组测试步骤,描述具体的测试用例。通过实施预定的测试计划和测试步骤,确定

软件的特性是否与需求相符;所有的文档都是正确且便于使用;对其它软件需求,例如可移植性、兼容性、出错自动恢复、可维护性等,也都要进行测试

软件测试基本技术和策略4.6.2如何实施确认测试软件测试基本技术和策略1354.6.2如何实施确认测试(续)软件配置复查。软件配置复查的目的是保证:软件配置的所有成分都齐全;各方面的质量都符合要求;具有维护阶段所必需的细节;而且已经编排好分类的目录。

应当严格遵守用户手册和操作手册中规定的使用步骤,以便检查这些文档资料的完整性和正确性。

软件测试基本技术和策略4.6.2如何实施确认测试(续)软件测试基本技术和策略1364.7.1系统测试(Systemtesting)系统测试是将通过确认测试的软件,作为整个基于计算机系统的一个元素,与计算机硬件、外设、某些支持软件、数据和人员等其它系统元素结合在一起,在实际运行环境下,对计算机系统进行一系列的组装测试和确认测试。系统测试的目的在于通过与系统的需求定义作比较,发现软件与系统的定义不符合或与之矛盾的地方。4.7系统测试

软件测试基本技术和策略4.7.1系统测试(Systemtesting)4.71374.7.2系统测试的特点系统测试的对象已不限于被测软件本身,还包括硬件平台、操作系统、辅助设备等一切与之相关的环境因素系统测试发现的问题可能不仅仅由被测软件造成,因此对错误的分析定位尤其重要相对而言,系统测试的实施比较困难,特别是嵌入式软件的系统测试

软件测试基本技术和策略4.7.2系统测试的特点软件测试基本技术和策略1384.8.1覆盖率测试的基本概念覆盖率测试又称覆盖率分析(Coverageanalysis),它以程序内部的逻辑结构为基础,是白盒测试的一种。被测代码中某一条语句执行过了,就称该语句被覆盖了覆盖率测试就是分析被测软件在运行过程中各条语句(代码)的执行情况,如是否执行了?在什么条件下执行的?执行过的代码占总代码的比例称为覆盖率根据执行条件的不同,我们区分不同的覆盖率4.8覆盖率测试

软件测试基本技术和策略4.8.1覆盖率测试的基本概念4.8覆盖率测试软件测试基1394.8.2覆盖种类语句覆盖:程序中每一可执行语句至少执行一次分支覆盖:程序中每个判断的取真分支和取假分支至少经历一次。分支覆盖又成判定覆盖。条件覆盖:程序中每个判断的每个条件的可能取值至少执行一次。条件组合覆盖:每个判断的所有可能的条件取值组合至少执行一次。条件组合覆盖又称布尔覆盖。...

软件测试基本技术和策略4.8.2覆盖种类软件测试基本技术和策略1404.8.3覆盖测试的基本技术——插装插装(Instrumentation),又称软件探针(Software

Probe),是白盒测试的一种常用技术。插装是在软件特定的位置插入一些语句,用来获取软件的运行信息并反馈给测试者。插装不应影响原程序的执行,更不能改变原程序的结构

软件测试基本技术和策略4.8.3覆盖测试的基本技术——插装软件测试基本技术和策141

软件测试基本技术和策略4.9测试策略之一:重视需求测试什么是需求(Requirement)?AdefinitionofWHATthesystemshoulddo需求又称外部叙述、功能描述、系统需求定义、逻辑说明等软件的测试、验证和确认只有当具备软件需求分析时才有意义。因此保证需求的正确是非常重要的需求测试,即基于需求的测试(RequirementsBasedTesting)指在系统尚处于需求定义阶段时就进行测试在软件生命周期的初级阶段进行测试,可以尽早地发现错误软件测试基本技术和策略4.9测试策略之一:重视需求测试142软件测试基本技术和策略詹姆斯马丁的研究:测试所发现的错误中,超过50%的错误其根源在于错误的或不恰当的需求定义上软件测试基本技术和策略詹姆斯马丁的研究:143软件测试基本技术和策略同时,研究结果表明80%以上的用于定位软件错误的费用是基于软件系统需求定义的错误DistributionofEfforttoFixBugs软件测试基本技术和策略DistributionofEff144软件测试基本技术和策略通常,错误发现得越早,用于纠正错误的开销就越小因此,改进软件系统测试方法的最佳途径,是改进软件系统需求定义开发过程和功能测试过程——加强需求测试软件测试基本技术和策略145软件测试基本技术和策略4.10测试策略之二:选择合适的测试工具工欲善其事,必先利其器根据测试需要和工具的特长进行选择Caliber-RBT:需求测试Cantata/Cantata++:单元测试、集成测试McCabe:结构化测试、白盒测试Trace32:实时在线测试...软件测试基本技术和策略4.10测试策略之二:选择合适的测试146软件测试的重要性软件测试的基本概念软件测试的工作内容软件测试的基本技术和策略软件测试阶段软件测试流程软件测试工具软件测试软件测试的重要性软件测试147软件测试阶段单元单元单元单元单元测试单元测试单元测试单元测试组装测试确认测试系统测试已测单元组装的软件确认的软件设计信息软件需求其它系统元素5.1软件测试阶段图软件测试阶段单元单元单元单元单元测试单元测试单元测试单元测试148

5.2单元测试特点a.相当于硬件设备板级部件的检验,是发现和改正错误都较容易的阶段b.对详细设计说明书负责c.有条件进行较细致的白盒测试组织

在开发组内,可交叉进行。软件测试阶段5.2单元测试软件测试阶段149

5.2单元测试(续)内容

a.功能测试b.重要的执行路径测试c.局部数据结构d.错误处理测试e.影响上述各条的边界条件f.语句覆盖测试,分支覆盖测试软件测试阶段5.2单元测试(续)软件测试阶段150

5.2单元测试(续)要求

a.语句覆盖100%b.分支覆盖c.软件特性覆盖方法

a.黑盒(功能、边界、随机)b.白盒(控制流/数据流)c.使用驱动/桩程序d.某些工具支持软件测试阶段5.2单元测试(续)软件测试阶段151

5.3组装测试特点

a.相当于硬件设备的功能模块测试b.对概要设计说明书负责c.是发现和改正模块接口错误的重要阶段d.是验证系统功能增长正确性的阶段组织

一般在开发小组内部进行软件测试阶段5.3组装测试软件测试阶段152

5.3组装测试(续)内容a.单元间的接口测试b.部件的功能测试c.全局数据结构测试d.部件的运行时间、运行空间、计算精度测试e.边界和在人为条件下的性能软件测试阶段5.3组装测试(续)软件测试阶段153

5.4确认测试特点

a.对软件需求规格说明负责b.对完整软件功能和性能的总体测试c.相当于硬件设备成品检验组织

独立测试方式软件测试阶段5.4确认测试软件测试阶段154

5.4确认测试(续)内容功能测试-安全性测试性能测试-恢复性测试界面测试-边界测试强度测试-功能多余物测试余量测试-安装性测试可靠性测试软件测试阶段

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论