China’sAnswertoYourITNeedsHisoftBeijing软件测试工程师基础HisoftBeijingCONFIDENTIAL-AllRightsReserved2培训列表第一章测试概论第二章测试计划的编写第三章测试用例的编写第四章错误分类和错误跟踪系统的作用第五章错误跟踪文档第六章错误报告的生命周期和缺陷追踪第七章做一名优秀的测试工程师HisoftBeijingCONFIDENTIAL-AllRightsReserved3第一节什么是测试第二节测试的分类第三节黑盒测试概念及方法第四节测试过程的基本文档第五节黑盒测试的两个阶段第一章测试概论HisoftBeijingCONFIDENTIAL-AllRightsReserved4什么测试在测试中应该以什么为目标在测试中要避免受到开发和设计人员的影响,因为彼此的出发点是不同的。第一节什么是测试HisoftBeijingCONFIDENTIAL-AllRightsReserved5树立一个正确的观点错误是怎么产生的?错误是在什么时候产生的?由于错误从一开始就存在,就需要测试将贯穿整个开发过程。HisoftBeijingCONFIDENTIAL-AllRightsReserved6第二节测试的分类按照测试的生存周期可以划分为验证测试和确认测试。按测试的基本策略可以分为,基于内部测试的白盒方法和基于功能的黑盒方法。按确认活动来划分,可以分成底层测试,上层测试底层测试包括:单元测试,集成测试。上层测试包括:可用性测试,功能测试,系统测试,验收测试。HisoftBeijingCONFIDENTIAL-AllRightsReserved7软件测试的策略测试的策略的分类:-黑盒方法与白盒方法。-随机测试与穷举测试。HisoftBeijingCONFIDENTIAL-AllRightsReserved8何时停止测试符合用户的需求,就可中止寻找缺陷了。当一段时间内(通常是一个星期)测试不出新缺陷时,就可中止寻找缺陷了。HisoftBeijingCONFIDENTIAL-AllRightsReserved9停止测试后所做的工作测试报告用户手册培训工作HisoftBeijingCONFIDENTIAL-AllRightsReserved10第二节黑盒测试概念及方法黑盒测试是以用户的观点,从输入数据与输出数据的对应关系出发进行测试的,它不涉及到程序的内部结构。-很明显,如果外部特性本身有问题或规格说明的规定有误,用黑盒测试方法是发现不了的。例如:实现一个网页的功能,功能测试不关心它用什么语言编写的,只关心功能是否实现。程序P=f(I,O)输入I输出O特点:被测程序被当做一个无法打开的黑盒子。测试者无需了解程序的逻辑结构。过早的了解程序内部的情况会给黑盒测试带来负面的结果HisoftBeijingCONFIDENTIAL-AllRightsReserved11黑盒测试有两种基本方法,即通过测试和失败测试:黑盒测试在不同阶段的基本方法。-通过测试在进行通过测试时,实际上是确认软件能做什么,而不会去考验其能力如何。软件测试员只运用最简单,最直观的测试案例。在设计和执行测试案例时,总是先要进行通过测试。在进行破坏性试验之前,看一看软件基本功能是否能够实现。-失败测试在确信了软件正确运行之后,就可以采取各种手段通过搞“垮”软件来找出缺陷。纯粹为了破坏软件而设计和执行的测试案例,被称为失败测试或迫使出错测试。失败测试通常有竞争条件,重复,压迫等测试,例如,多次启动关闭程序,内存不足,磁盘空间不够等。黑盒测试有两种基本方法HisoftBeijingCONFIDENTIAL-AllRightsReserved12具体的黑盒测试方法等价类划分边值分析错误猜测HisoftBeijingCONFIDENTIAL-AllRightsReserved13第三节测试过程和基本文档测试过程包含在需求分析,概要(功能)设计,详细(内部)设计,编码实现-需求分析:制定和确认系统测试计划,得到系统测试计划。-概要设计:编写系统测试方案,得到系统测试方案。-详细设计:编写系统测试用例,规程,编写系统预测试项,得到系统(预)测试用例,系统测试规程。HisoftBeijingCONFIDENTIAL-AllRightsReserved14基本文档每个测试过程的基本文档包括:-《测试计划》:指明测试范围、方法、资源,以及相应测试活动的时间进度安排表的文档。-《测试方案》:指明为完成软件或软件集成特性的测试而进行的设计测试方法的细节文档。-《测试用例》:指明为完成一个测试项的测试输入,预期结果,测试执行条件等因素的文档。-《测试规程》:指明执行测试时测试活动序列的文档。-《测试报告》:指明执行测试结果的文档。HisoftBeijingCONFIDENTIAL-AllRightsReserved15第四节黑盒测试的两个阶段第一个阶段新功能(NewFeature)测试阶段.(TheFirstCyclesofTesting)对新功能和新加代码的测试的原则:对软件要实现的主要功能进行测试,如果符合要求的简单的测试失败,那么将是一个很严重的问题,意味着主要程序的失败。对主要功能展开最大范围的测试,要进行快速的测试但是不是深度测试.如果经过了以上两条基本测试,那么我们要用比较有挑战性的测试用例来进行进一步的测试。-选择边界值进行测试。-进行探索性测试。HisoftBeijingCONFIDENTIAL-AllRightsReserved16第二个阶段回归测试第二个阶段回归测试(Regression)阶段.(TheSecondCyclesofTesting)回归测试的两个目标:-检测已经修复的问题(bug)是否又重现了。-测试修复问题时有没有带来新的问题。回归测试测什么?-新修复的bug(测是否修复)。-以前修复的bug(测是否重现)。-基本功能的回归测试(测是否被破坏)。回归测试的重要性-保证软件的质量,帮助下一个版本制定计划。HisoftBeijingCONFIDENTIAL-AllRightsReserved17第二章测试计划(TestPlan)的编写第一节测试计划的概念第二节测试计划文档的内容HisoftBeijingCONFIDENTIAL-AllRightsReserved18第一节测试计划的概念测试计划是描述软件测试努力的目标、范围、方法和焦点的文档。准备测试计划的过程是完整考虑软件产品可接受评价努力的一个有用的方法。完整的文档将有助于测试组之外的人理解为什么要进行软件正确性检测,并且如何进行检测。测试计划应当足够完整但也不应当太详尽,以致在测试组之外没有人会读它。专业的测试必须以一个好的测试计划作为基础。尽管测试的每一个步骤都是独立的,但是必定要有一个起到框架结构作用的测试计划。测试的计划应该作为测试的起始步骤和重要环节。HisoftBeijingCONFIDENTIAL-AllRightsReserved19测试计划来源于测试需求基于测试需求HisoftBeijingCONFIDENTIAL-AllRightsReserved20第二节测试计划文档内容《测试计划》文档应该包括如下内容:-目标-概述-组织形式-角色及职责-测试对象-测试通过/失败的标准-测试挂起的标准及恢复的必要条件-测试任务安排-应交付的测试工作产品-工作量估计HisoftBeijingCONFIDENTIAL-AllRightsReserved21《测试计划》文档内容(1)目标-表示该测试计划所应该达到的目标。概述-项目背景:如项目的主要功能特征,体系结构,简要历史等。-范围:指明该计划的使用对象,范围。组织形式-表示测试计划执行过程中的组织结构及之间的关系,以及所需要的组织的独立程度。-同时指出测试过程与其他过程(开发,管理,…)之间的关系。-还包括沟通渠道,等。HisoftBeijingCONFIDENTIAL-AllRightsReserved22《测试计划》文档内容(2)角色与职责-定义角色及其职责,在每个角色与测试任务之间建立关联。测试对象-列出所有将被作为测试目标的测试项(功能需求,非功能需求…)测试通过/失败的标准-指明了判断/确认测试何时结束,以及所测试的应用程序的质量。可以直接陈述,也可以引用其他的文档。至少应该说明:-什么将被测试?-度量尺度是如何建立的?-使用了哪些标准对度量进行评价?HisoftBeijingCONFIDENTIAL-AllRightsReserved23《测试计划》文档内容(3)测试挂起的标准以及恢复的必要条件-指明挂起全部或部分测试项的标准,并指明恢复测试的标准及其必须重复的测试活动。测试任务安排明确测试任务。对于每个任务说明:-任务-方法和标准-输入/输出-时间安排-资源-风险和假设-角色和职责HisoftBeijingCONFIDENTIAL-AllRightsReserved24《测试计划》文档内容(4)应交付的测试工作产品-指明应该交付的文档,测试代码及测试工具,一般包括测试计划,测试方案,测试用例,测试规程,测试日志,测试事故报告,测试总结报告,测试输入以及测试输出,测试工具。工作量估计-给出前面定义任务的人力需求及总计。HisoftBeijingCONFIDENTIAL-AllRightsReserved25测试计划文档举例(1)HisoftBeijingCONFIDENTIAL-AllRightsReserved26测试计划文档举例(2)HisoftBeijingCONFIDENTIAL-AllRightsReserved27测试计划文档举例(3)HisoftBeijingCONFIDENTIAL-AllRightsReserved28第三章测试用例(TestCase)的编写第一节什么是测试用例第二节黑盒测试用例的设计方法第三节《测试用例》文档HisoftBeijingCONFIDENTIAL-AllRightsReserved29第一节什么是测试用例一个测试用例就是一个文档,描述输入、动作、或者时间和一个期望的结果,其目的是确定应用程序的某个特性是否正常的工作。-一个测试用例应当有完整的信息,如:测试用例ID号,测试用例名字,测试用例的目的,测试条件、输入数据需求、步骤和期望结果。选择测试用例是软件测试员最重要的一项任务,不正确的选择可能导致测试量过大或过小,甚至测试目标不对。HisoftBeijingCONFIDENTIAL-AllRightsReserved30第二节测试用例的设计方法等价类划分方法边界值分析方法错误推测方法因果图方法判定表驱动分析方法正交实验设计方法功能图分析方法HisoftBeijingCONFIDENTIAL-AllRightsReserved31等价类划分方法–定义是一种典型的黑盒测试方法,用这一方法设计测试用例可以不用考虑程序的内部结构,只以对程序的要求和说明,即需求规格说明书为依据,仔细分析和推敲说明书的各项需求,特别是功能需求,把说明中对输入的要求和输出的要求区别开来并加以分解。注意:由于穷举测试的数量太大,以致于无法实际完成,促使我们在大量的可能数据中选取其中的一部分作为测试用例。HisoftBeijingCONFIDENTIAL-AllRightsReserved32等价类划分方法–方法等价类划分的办法是把程序的输入域划分成若干部分,然后从每个部分中选取少数代表性数据当作测试用例。每一类的代表性数据在测试中的作用等价于这一类中的其他值。也就是说,如果某一类中的一个例子发现了错误,这一等价类中的其他例子也能出现同样的错误。使用这一方法设计测试用例,首先必须在分析需求规格说明的基础上划分等价类,列出等价类表。-在考虑等价类划分时,先从程序的功能说明中找出每个输入条件,然后为每个输入条件划分两个或更多个等价类。HisoftBei