软件测试技术交流课件.ppt
《软件测试技术交流课件.ppt》由会员分享,可在线阅读,更多相关《软件测试技术交流课件.ppt(87页珍藏版)》请在三一办公上搜索。
1、软件测试技术交流,深圳市中兴通讯股份有限公司2003年2月,软件测试,软件测试的重要性和必要性软件测试的目的和原则软件测试的基本概念软件测试的基本技术和策略软件测试阶段软件测试流程软件测试工具,1.1 软件测试保证软件质量的重要手段系统的、严密的软件测试能最大限度的发现软件中的错误,从而减少软件中残留的错误通过软件测试可以验证软件功能、性能、容量、约束、限制等指标是否满足规定的需求软件可靠性测试可得到软件可靠性指标软件测试为软件质量定量评定提供依据高层次的软件测试可以发现系统级错误,软件测试的重要性和必要性,软件测试的重要性和必要性,1.2 软件测试局限性被测系统存在故障敏感性和巧合正确性获得
2、预期结果困难,甚至不可能测试本身也可能存在错误,1.2 软件测试局限性(续)完全的软件测试是不现实的软件测试不能保证发现软件中所有的错误软件测试不能取代其它质量保证手段软件测试:巨大的效益和艰苦的工作并存,软件测试的重要性和必要性,软件测试的重要性和必要性软件测试的目的和原则软件测试的基本概念软件测试的基本技术和策略软件测试阶段软件测试流程软件测试工具,软件测试,软件测试的目的和原则,2.1 软件测试的目的基于不同的立场,存在着两种完全不同的测试目的。从用户的角度出发,普遍希望通过软件测试暴露软件中隐藏的错误和缺陷,以考虑是否可接受该产品。从软件开发者的角度出发,则希望测试成为表明软件产品中不
3、存在错误的过程,验证该软件已正确地实现了用户的要求,确立人们对软件质量的信心。,软件测试的目的和原则,2.2 软件测试目的测试是程序的执行过程,目的在于发现错误;一个好的测试用例在于能发现至今未发现的错误;一个成功的测试是发现了至今未发现的错误的测试。,软件测试的目的和原则,2.3 简而言之,软件测试的最终目的是:以最少的时间和人力,尽可能多地找出软件中潜在的各种错误和缺陷,把尽可能多的问题解决在产品出厂之前在可接受的开销下提高对软件的信心。测试的附带收获是,它能够证明软件的功能和性能与需求说明相符合。测试不能表明软件中不存在错误,恰恰相反它只能说明软件中存在错误。,软件测试的目的和原则,2.
4、4 软件测试原则之一:Good-enough这是一种权衡投入产出比的原则,测试既不要不充分,也不要过分。不充分和过分都是一种不负责任的表现 Zero-bug是一种理想,Good-enough是我们的原则,软件测试的目的和原则,2.5 软件测试原则之二:bug的80%原则一般情况下,在分析、设计、实验阶段的复审和测试工作能够发现和避免的bug,而系统的软件测试能够找出其余bug中的。最后约5%的bug只有在用户大范围、长时间的使用后才会暴露出来。因此测试只能保证尽可能多地发现错误,不能保证发现所有的错误。,软件测试的目的和原则,2.6 软件测试的其他原则尽早地和不断地进行软件测试。问题发现得越早
5、,解决问题的代价就越小程序员应避免检查自己的程序独立性原则在设计测试用例时,应包括合理的输入条件和不合理的输入条件充分注意测试中的群集现象。经验表明,一段程序中存在错误的概率与在这段程序中已发现的错误数成比例。严格执行测试计划,排除测试的随意性,软件测试的目的和原则,2.6 软件测试的其他原则(续)分派有经验、富有创造性的人员承担测试不能为了便于测试擅自修改程序既测试软件应该做的也检查软件不该做的既测试有效的和期望的输入也测试无效的和不期望的输入,软件测试的目的和原则,2.7 软件测试的完成准则完成测试计划规定的测试项使用规定的测试用例设计方法查出一定数目的错误标出单位时间查出的错误量,进行曲
6、线分析某一测量值达到预期目标(如可靠性测试)考查测试充分性,软件测试的重要性和必要性软件测试的目的和原则软件测试的基本概念软件测试的基本技术和策略软件测试阶段软件测试流程软件测试工具,软件测试,软件测试的基本概念,3.1 什么是软件测试GB/T 11457-1995 的定义 由人工或自动方法来执行或评价系统或系统部件的过程,以验证它是否满足规定的需求;或识别出期望的结果和实际结果之间的差别.该定义也就是IEEE 1983中软件测试的定义,软件测试的基本概念,3.2 软件测试认识的变迁和发展历史上的一些错误认识测试和调试没有什么区别,除了支持调试外,测试没有别的目的(错误)测试的目的在于证明软件
7、正确(错误)当前软件测试工作中的认识测试的目的在于证明软件错误(实际)测试的目的不是证明任何事情,仅是为了将已察觉的故障的风险程度减小到一个可接受的值(度量)测试是检验软件是否满足规定的需求(全面),3.2 软件测试认识的变迁和发展(续)软件测试的发展方向测试不是一种行为,它是不需要更多的测试工作即可以产生低风险的软件的一种认识上的训练(预防).,软件测试的基本概念,3.3 什么是“错误”?“错误”这一术语,在没有特别加以说明的情况下,这是一个泛用的、模糊的概念它指的可能是bug(设计中的差错)、fault(故障)、error(出错)、failure(失效)、crash(重大事故)、probl
8、em(疑问)等,软件测试的基本概念,软件测试的基本概念,3.3 什么是“错误”?(续)故障(fault):软件的内在缺陷。这些缺陷可以在生存期各个阶段被引入。出错(error):故障在一定的环境条件下的暴露,导致系统在运行中出现了不正常、不正确、不按规范执行的状态,称为软件出错。失效(failure):对错误不做任何修正和恢复,导致系统的输出不满足用户要求,称为软件的一次失效,软件测试的基本概念,3.4 测试是需要设计的测试是一项具有很大创造性的工作,其工作量一点也不比代码设计小测试是需要设计的,一个好的测试计划或方案往往能达到事半功倍的效果测试设计即利用测试工具提供的脚本语言进行测试用例设计
9、测试设计可以是自动的,半自动的或手工编写,软件测试的基本概念,3.5 测试和调试是不同的,测试是查找潜在的错误,调试是定位已知的错误测试贯穿于整个软件生存期,调试主要是在软件开发过程中测试是发现问题,调试解决问题测试与调试不能相互替代,但可相互支持,相辅相成,软件测试的基本概念,3.6 软件的生命周期V字模型,用户需求定义,软件测试的基本概念,3.7 软件测试的分类按功能分类白盒测试(White box testing)黑盒测试(Black box testing)按测试阶段分类单元测试(Unit testing)集成测试(Integrated testing)确认测试(Validation
10、testing)系统测试(System testing)按运行状态分类动态测试(Dynamic testing)静态测试(Static testing),软件测试的基本概念,3.8 软件测试的流程,3.9 软件测试的工程化软件生命周期软件测试方法软件测试规程软件测试文档软件测试工具,软件测试的基本概念,软件测试的重要性和必要性软件测试的目的和原则软件测试的基本概念软件测试的基本技术和策略软件测试阶段软件测试流程软件测试工具,软件测试,软件测试基本技术和策略,4.1 软件测试的总体方略与软件设计的各阶段相对应,从单元测试 开始,然后集成测试、确认测试、系统测 试主要测试技术:静态分析、动态测试、
11、覆盖测试主要方法:白盒法、黑盒法,软件测试基本技术和策略,4.1 软件测试的总体方略(续),软件测试基本技术和策略,静态测试概念不运行被测程序检查软件是否易维护,是否符合编程标准软件工程度量(指标测试),如复杂度等代码统计静态测试具体技术人工审查:如代码走查、代码审议、技术评 审、桌面检查等自动静态分析:使用软件测试工具自动地完成,4.2 静态测试,4.3.1 动态测试的基本概念利用计算机运行被测程序取得程序运行的真实情况,主要测试软件的功能、覆盖率、运行时间等动态测试的关键在于测试用例设计使用的方法主要有黑盒法和白盒法,4.3 动态测试,软件测试基本技术和策略,软件测试基本技术和策略,4.3
12、 动态测试,4.3.2 测试用例(Test Case)动态测试是由一个一个的测试用例来完成的测试用例通常是一段用脚本语言(Script language)编写的小程序,该程序定义了被测对象、测试条件、输入参数、期望输出参数、桩调用及其顺序等测试用例与被测程序一起运行才能生效,4.3.3 黑盒测试和白盒测试黑盒测试像中医:使用望、闻、问、切白盒测试像西医:使用X光、CT扫描目的都是发现病人的病症,P,IN,OUT,白盒测试:,黑盒测试:,软件测试基本技术和策略,4.3.4 黑盒测试:这种方法是把测试对象看做一个黑盒子,测试人员完全不考虑程序内部的逻辑结构和内部特性,只依据程序的需求规格说明书,检
13、查程序的功能是否符合它的功能说明。黑盒测试又叫做功能测试或数据驱动测试。测试用例根据程序规格说明生成某些代码段可能得不到测试适用于从单元测试到系统测试需要用白盒测试加以补充,软件测试基本技术和策略,4.3.4 黑盒测试(续)黑盒测试方法是在程序接口上进行测试,主要是为了发现以下错误:是否有不正确或遗漏了的功能?在接口上,输入能否正确地接受?能否输出正确的结果?是否有数据结构错误或外部信息(例如数据文件)访问错误?性能上是否能够满足要求?是否有初始化或终止性错误?,软件测试基本技术和策略,ALAC测试,软件测试基本技术和策略,IBM对典型软件的一项研究1、客户所看到的57%以上的故障是由占错误总
14、数2%以下的错误引起的2、超过总数61%的错误只引起低于3%的客户将会经历的故障。3、不同的错误在引起的故障率上存在高达四个数量级的巨大差异-一些错误运行几个小时就表现出来,而其他一些数年之后才出现。,软件测试基本技术和策略,4.3.5 白盒测试白盒法把测试对象看做一个透明的盒子,它允许测试人员利用程序内部的逻辑结构及有关信息,设计或选择测试用例,对程序所有逻辑路径进行测试。通过在不同点检查程序的状态,确定实际的状态是否与预期的状态一致。因此白盒测试又称为结构测试或逻辑驱动测试。可以发现黑盒测试后没有被测试到的部分用程序结构信息生成测试用例构造测试用例使特定程序部分得到运行适用于单元测试和覆盖
15、率测试,软件测试基本技术和策略,4.3.5 白盒测试(续)软件人员使用白盒测试方法,主要想对程序模块进行如下的检查:对程序模块的所有独立的执行路径至少测试一次;对所有的逻辑判定,取“真”与取“假”的两种情况都至少测试一次;在循环的边界和运行界限内执行循环体;测试内部数据结构的有效性,等。,软件测试基本技术和策略,4.4.1 什么是单元测试单元测试又称模块测试,是针对软件设计的最小单位 程序模块,进行正确性检验的测试工作。其目的在于发现各模块内部可能存在的各种差错。单元测试需要从程序的内部结构出发设计测试用例。多个模块可以平行地独立进行单元测试。,4.4 单元测试,软件测试基本技术和策略,4.3
16、.2 单元测试的步骤,软件测试基本技术和策略,4.4.3 单元测试的内容,软件测试基本技术和策略,模块,覆盖条件,边界条件,出错处理,模块接口,局部数据结构,4.4.4 单元测试的配制,软件测试基本技术和策略,驱动程序,被测模块,桩模块#2,桩模块#1,桩模块#3,测试用例,测试结果,4.4.4 单元测试的配制(续)被测模块并不是一个独立的程序,在考虑测试模块时,同时要考虑它和外界的联系,用一些辅助模块去模拟与被测模块相联系的其它模块。驱动模块(driver)模拟主程序调用 桩模块(stub)模拟被调用模块,此时被测模块并没有真正调用其他模块,而是从桩模块处得到一个所需的值。这种技术叫做打桩(
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件 测试 技术交流 课件
链接地址:https://www.31ppt.com/p-3916747.html