软件测试方法和技术.ppt
《软件测试方法和技术.ppt》由会员分享,可在线阅读,更多相关《软件测试方法和技术.ppt(245页珍藏版)》请在三一办公上搜索。
1、软件测试方法和技术 Software Testing methods and techniques,先锋软件职业技术学院/先锋软件研发中心 任丽丽,软件开发系列软件测试,1 基本概念,2 测试流程和方法,3 测试模型,4 测试文档,5 功能测试,6 易用性测试,7 Testtrack,8 缺陷管理,习题,实训点,习题,实训点,习题,实训点,习题,实训点,习题,实训点,习题,实训点,习题,实训点,习题,实训点,软件测试方法和技术 Software Testing methods and techniques,第一讲 软件测试基本概念 Software Testing methods and te
2、chniques,软件开发系列软件测试,在本章中,我们将学习:什么是测试测试的重要性软件生命周期测试的职责测试工程师应该具备的素质测试的基本原则,软件测试基本概念概览,完成此课程之后,学员将具备以下能力:理解软件测试的含义为什么要测试?测试的重要性何在?测试的现状、前景?测试工程师能从事哪些工作?要满足哪些条件?测试在软件开发过程中扮演什么角色?测试要做哪些事情?测试人员应该具备哪些素质?,软件测试基本概念目标,什么是测试测试的重要性软件生命周期测试的职责测试工程师应该具备的素质测试的基本原则,软件测试基本概念课程目录,软件测试基本概念测试就是“大家来找碴”,对于测试的定义,一般有三种不同的说
3、法:定义1:软件测试是为了发现错误而执行程序的过程。定义2:软件测试是根据软件开发各阶段的规格说明书和程序的内部结构而精心设计的一批测试用例(即输入的数据及其预期的结果),并利用这些测试用例运行程序以及发现错误的过程。定义3:软件测试是软件测试工程师根据规格说明书在实验室通过一些技术手段和专业工具模拟现场环境,以期发现软件中存在的问题。,软件测试基本概念什么是测试,这三种定义其实都说明了以下问题:测试的目的:测试是为了发现软件中存在的问题。从 这个意义上说,测试不是为了证明软件 没有错,而是证明软件存在问题。测试的依据:测试所有的依据都来源于需求规格说明 书。测试的人员:测试必须是由专门的测试
4、工程师来完成 的,而不是开发人员自己测试自己的代 码,或开发人员交叉测试。测试的方法:测试必须设计测试用例,测试用例至少 包括三个要素:输入的典型数据、预期 输出的结构和测试场景描述(即测试的 步骤)。测试往往要借助专业的测试工 具。,软件测试基本概念什么是测试,什么是测试测试的重要性软件生命周期测试的职责测试工程师应该具备的素质测试的基本原则,软件测试基本概念课程目录,软件在开发过程中,虽然经过了开发人员的调试,但还是难免会出现这样那样的问题,比方说:开发人员理解用户的需求有出入 两个开发人员做出来的东西风格不一致 软件的接口部分出了问题 业务逻辑与实际不符 用户的误操作造成非预期的错误,系
5、统不能恢复正常 软件经不起长时间运行或大数据量的考验 当然还有很多情况会造成软件出现错误,这,软件测试基本概念测试的重要性,些都不是开发人员仅仅通过调试就能发现的,这还不包括开发人员自己的疏忽,因此必须要通过我们的测试帮助开发人员找出这些错误,以免这些问题流传到用户那里,所以可以说测试就是软件质量的保证,我们的测试人员就是软件的“把关人”,我们要把好软件质量的最后一关。软件测试与软件开发是互相促进的,软件开发能帮助软件测试提高测试水平,软件测试能帮助软件开发培养严谨的思维和质量意识。,测试的重要性(续),软件测试基本概念测试的重要性,什么是测试测试的重要性软件生命周期测试的职责测试工程师应该具
6、备的素质测试的基本原则,软件测试基本概念课程目录,软件生命周期:,项目任务书,可行性研究,开发计划,需求分析,软件设计,程序编码,软件测试,软件运行,软件维护,软件停用,软件测试基本概念软件生命周期,什么是测试测试的重要性软件生命周期测试的职责测试工程师应该具备的素质测试的基本原则,软件测试基本概念课程目录,软件测试的工作职责:验证在整个软件开发周期中,各个阶段的软件质量是否合格。验证最终交付给用户的系统是否满足用户的需要,是否符合需求。通过样本测试数据,检查系统在运行过程中的情况。软件测试的活动范围:测试计划测试用例测试实施测试报告配置管理,软件测试基本概念测试的职责,什么是测试测试的重要性
7、软件生命周期测试的职责测试工程师应该具备的素质测试的基本原则,软件测试基本概念课程目录,沟通能力 移情能力 技术能力 自信心 外交能力 幽默感,很强的记忆力 耐心 怀疑精神 自我督促 洞察力 责任感,人是测试工作中最有价值也是最重要的资源,没有一个合格的、积极的测试小组,测试就不可能实现。然而,在软件开发产业中有一种非常普遍习惯,那就是让那些经验最少的新手、没有效率的开发者或不适合干其他工作的人去做测试工作。这绝对是一种目光短浅的行为,对一个系统进行有效的测试所需要的技能绝对不比进行软件开发需要的少,事实上,测试者将获得极其广泛的经验,他们将遇到许多开发者不可能遇到的问题。总的说来,一个优秀的
8、软件测试工程师应该具备以下素质:,软件测试基本概念测试工程师应该具备的素质,一名理想的测试者必须能够同测试涉及到的所有人进行沟通,具有与技术(开发者)和非技术人员(客户,管理人员)的交流能力。既要可以和用户谈得来,又能同开发人员说得上话,不幸的是这两类人没有共同语言。和用户谈话的重点必须放在系统可以正确地处理什么和不可以处理什么上。而和开发者谈相同的信息时,就必须将这些活重新组织以另一种方式表达出来,测试小组的成员必须能够同等地同用户和开发者沟通。,软件测试基本概念测试工程师应该具备的素质(沟通能力),和系统开发有关的所有人员都处在一种既关心又担心的状态之中。用户担心将来使用一个不符合自己要求
9、的系统,开发者则担心由于系统要求不正确而使他不得不重新开发整个系统,管理部门则担心这个系统突然崩溃而使它的声誉受损。测试者必须和每一类人打交道,因此需要测试小组的成员对他们每个人都具有足够的理解和同情,具备了这种能力可以将测试人员与相关人员之间的冲突和对抗减少到最低程度。,软件测试基本概念测试工程师应该具备的素质(移情能力),就总体言,开发人员对那些不懂技术的人持一种轻视的态度。一旦测试小组的某个成员作出了一个错误的断定,那么他们的可信度就会立刻被传扬了出去。一个测试者必须既明白被测软件系统的概念又要会使用工程中的那些工具。要做到这一点需要有几年以上的编程经验,前期的开发经验可以帮助对软件开发
10、过程有较深入的理解,从开发人员的角度正确的评价测试者,简化自动测试工具编程的学习曲线。,软件测试基本概念测试工程师应该具备的素质(技术能力),开发者指责测试者出了错是常有的事,测试者必须对自己的观点有足够的自信心。如果容许别人对自己指东指西,就不能完成什么更多的事情了。,软件测试基本概念测试工程师应该具备的素质(自信心),当你告诉某人他出了错时,就必须使用一些外交方法。机智老练和外交手法有助于维护与开发人员的协作关系,测试者在告诉开发者他的软件有错误时,也同样需要一定的外交手腕。如果采取的方法过于强硬,对测试者来说,在以后和开发部门的合作方面就相当于“赢了战争却输了战役”。,软件测试基本概念测
11、试工程师应该具备的素质(外交能力),在遇到狡辩的情况下,一个幽默的批评将是很有帮助的。,软件测试基本概念测试工程师应该具备的素质(幽默感),一个理想的测试者应该有能力将以前曾经遇到过的类似的错误从记忆深处挖掘出来,这一能力在测试过程中的价值是无法衡量的。因为许多新出现的问题和我们已经发现的问题相差无几。,软件测试基本概念测试工程师应该具备的素质(很强的记忆力),一些质量保证工作需要难以置信的耐心。有时你需要花费惊人的时间去分离、识别和分派一个错误。这个工作是那些坐不住的人无法完成的。,软件测试基本概念测试工程师应该具备的素质(耐心),可以预料,开发者会尽他们最大的努力将所有的错误解释过去。测式
12、者必须听每个人的说明,但他必须保持怀疑直到他自己看过以后。,软件测试基本概念测试工程师应该具备的素质(怀疑精神),干测试工作很容易使你变得懒散。只有那些具有自我督促能力的人才能够使自己每天正常地工作。,软件测试基本概念测试工程师应该具备的素质(自我督促),一个好的测试工程师具有“测试是为了破坏”的观点,捕获用户观点的能力,强烈的质量追求,对细节的关注能力。应用的高风险区的判断能力以便将有限的测试针对重点环节。,软件测试基本概念测试工程师应该具备的素质(洞察力),软件测试作为软件开发环节的最后一关,起到质量“把关”的作用,如果测试人员没有很强的责任心,软件的质量不可能得到保证。,软件测试基本概念
13、测试工程师应该具备的素质(责任感),什么是测试测试的重要性软件生命周期测试的职责测试工程师应该具备的素质测试的基本原则,软件测试基本概念课程目录,在测试过程中,要遵循以下原则:尽量不要自己测试自己的代码,或者让其他开发人员测试自己的代码测试是为了证明程序有错,而不是证明程序无错误;一个成功的测试是发现了至今未发现的错误的测试 任何测试都不是完全的,因此测试不可能发现所有的问题,而测试的目的是尽可能找出软件中所有的问题软件测试是基于用户需求,因此任何脱离用户需求的测试都是没有意义的每个软件的需求都不一样,因此每个测试活动都不可能完全一样,不要妄图把一套测试模式应用到每一次测试中,要具体情况具体分
14、析,要把有限的资源用到最关键的地方,软件测试基本概念测试的基本原则,软件测试人员在测试过程中一方面要站在技术人 员的角度分析问题,另一方面又要站在普通用户的角度观察软件,即要学会换位思考软件测试人员并不仅仅是软件的“高级用户”,他们要审视的对象是专业的开发人员,如果没有一定的技术基础,没有对软件更高层次的理解,是不可能扮演好软件“裁判员”的角色软件测试越早发现问题越好不能重现的错误不算错误,软件测试基本概念测试的基本原则,第二讲 软件测试测试流程和方法 Software Testing methods and techniques,软件开发系列软件测试,在本章中,我们将学习:测试流程测试停止的
15、标准测试方法,测试流程和方法概览,完成此课程之后,学员将具备以下能力:了解测试的流程什么情况下才可以停止测试?测试停止的标准是什么?测试的方法有哪些?,测试流程和方法目标,测试流程测试停止的标准测试方法,测试流程和方法课程目录,典型流程测试活动的开始时间,测试流程和方法测试流程,测试流程测试停止的标准测试方法,测试流程和方法课程目录,测试停止的标准 测试停止的标准一般有五类标准,具体测试项目视情况进行选择:第一类标准:测试时间超过了预定期限,测试被强制性停止第二类标准:执行了所有的测试用例,但并没有发现故障第三类标准:使用特定的测试用例设计方案,作为判断测试停止的基础第四类标准:正面指出了停止
16、测试的具体要求,即制定了停止测试的标准第五类标准:根据单位时间内查出故障的数量决定是否停止测试,测试流程和方法测试停止的标准,按照这些标准的定义,我们制定以下各个阶段的测试停止的标准:(1)软件测试停止标准软件系统经过单元、集成、系统测试,分别达到单元、集成、系统测试停止标准。软件系统通过验收测试,并已得出验收测试结论。软件项目需暂停以进行调整时,测试应随之暂停,并备份暂停点数据。软件项目在其开发生命周期内出现重大估算,进度偏差,需暂停或终止时,测试应随之暂停或终止,并备份暂停或终止点数据。,测试流程和方法测试停止的标准,(2)单元测试停止标准单元测试用例设计已经通过评审;按照单元测试计划完成
17、了所有规定单元的测试;达到了测试计划中关于单元测试所规定的覆盖率的要求;被测试的单元每千行代码发现错误数小于4个;软件单元功能与设计一致;在单元测试中发现的错误已经得到修改,各级缺陷修复率达到标准。(3)集成测试停止标准集成测试用例设计已经通过评审;按照集成构件计划及增量集成策略完成了整个系统的集成测试;达到了测试计划中关于集成测试所规定的覆盖率的要求;被测试的集成工作版本每千行代码发现错误数小于2个;集成工作版本满足设计定义的各项功能、性能要求;在集成测试中发现的错误已经得到修改,各级缺陷修复率达到标准。,测试流程和方法测试停止的标准,(4)系统测试停止标准系统测试用例设计已经通过评审;按照
18、系统测试计划完成了系统测试;达到了测试计划中关于系统测试所规定的覆盖率的要求;被测试的系统每千行代码发现错误数小于1个;系统满足需求规格说明书的要求;在系统测试中发现的错误已经得到修改,各级缺陷修复率达到标准。(5)缺陷修复率标准严重缺陷、较大缺陷的修复率应达到100%;较小缺陷、轻微缺陷修复率应达到80%以上;其他缺陷修复率应达到60%以上。(6)测试覆盖率语句覆盖率最低不能小于80%;测试用例执行覆盖率应达到100%;测试需求覆盖率应达到100%。,测试流程和方法测试停止的标准,测试流程测试停止的标准测试方法,测试流程和方法课程目录,静态测试与动态测试黑盒测试与白盒测试单元测试集成测试系统
19、测试性能测试测试中的群体现象怎么做界面测试?怎么做边界测试?怎么做功能性测试?怎么测试系统的数据正确性?怎么使用WAS进行性能测试?软件的易用性应该考虑哪些因素?,测试流程和方法测试方法,1静态测试与动态测试(1)静态测试 静态测试是指在不运行软件系统的情形下,对软件的需求、设计和代码进行的评审和检查,测试的方法一般包括:需求评审设计评审代码走查,测试流程和方法测试方法(静态测试与动态测试),(2)动态测试 动态测试是指部分或全部运行软件系统的情形下,对软件的接口、功能、性能等方面的测试,动态测试一般包含了用户与软件系统之间的交互过程。动态测试一般包括:单元测试集成测试系统测试验收测试,测试流
20、程和方法测试方法(静态测试与动态测试),2黑盒测试与白盒测试(1)黑盒测试 黑盒测试也称功能测试或数据驱动测试,它是在已知产品所应具有的功能,通过测试来检测每个功能是否都能正常使用,在测试时,把程序看作一个不能打开的黑盒子,在完全不考虑程序内部结构和内部特性的情况下,测试者在程序接口进行测试,它只检查程序功能是否按照需求规格说明书的规定正常使用,程序是否能适当地接收输入数锯而产生正确的输出信息,并且保持外部信息(如数据库或文件)的完整性。黑盒测试方法主要有等价类划分、边值分析、因果图、错误推测等,主要用于软件确认测试。“黑盒”法着眼于程序外部结构、不考虑内部逻辑结构、针对软件界面和软件功能进行
21、测试。“黑盒”法是穷举输入测试,只有把所有可能的输入都作为测试情况使用,才能以这种方法查出程序中所有的错误。实际上测试情况有无穷多个,人们不仅要测试所有合法的输入,而且还要对那些不合法但是可能的输入进行测试。,测试流程和方法测试方法(黑盒测试与白盒测试),(2)白盒测试 白盒测试也称结构测试或逻辑驱动测试,它是知道产品内部工作过程,可通过测试来检测产品内部动作是否按照规格说明书的规定正常进行,按照程序内部的结构测试程序,检验程序中的每条通路是否都有能按预定要求正确工作,而不顾它的功能,白盒测试的主要方法有逻辑驱动、基路测试等,主要用于软件验证。“白盒”法全面了解程序内部逻辑结构、对所有逻辑路径
22、进行测试。“白盒”法是穷举路径测试。在使用这一方案时,测试者必须检查程序的内部结构,从检查程序的逻辑着手,得出测试数据。贯穿程序的独立路径数是天文数字。但即使每条路径都测试了仍然可能有错误。第一,穷举路径测试决不能查出程序违反了设计规范,即程序本身是个错误的程序。第二,穷举路径测试不可能查出程序中因遗漏路径而出错。第三,穷举路径测试可能发现不了一些与数据相关的错误。,测试流程和方法测试方法(黑盒测试与白盒测试),3单元测试 单元测试的对象是软件设计的最小单位模块。单元测试的依据是详细设计描述,单元测试应对模块内所有重要的控制路径设计测试用例,以便发现模块内部的错误。单元测试多采用白盒测试技术,
23、系统内多个模块可以并行地进行测试。一般认为单元测试应紧接在编码之后,当源程序编制完成并通过复审和编译检查,便可开始单元测试。测试用例的设计应与复审工作相结合,根据设计信息选取测试数据,将增大发现上述各类错误的可能性。在确定测试用例的同时,应给出期望结果。应为测试模块开发一个驱动模块(driver)和(或)若干个桩模块(stub)。驱动模块在大多数场合称为“主程序”,它接收测试数据并将这些数据传递到被测试模块,被测试模块被调用后,“主程序”打印“进入-退出”消息。驱动模块和桩模块是测试使用的软件,而不是软件产品的组成部分,但它需要一定的开发费用。若驱动和桩模块比较简单,实际开销相对低些。遗憾的是
24、,仅用简单的驱动模块和桩模块不能完成某些模块的测试任务。提高模块的内聚度可简化单元测试,如果每个模块只能完成一个,所需测试用例数目将显著减少,模块中的错误也更容易发现。,测试流程和方法测试方法(单元测试),单元测试一般完成以下任务:模块接口测试 模块接口测试是单元测试的基础。只有在数据能正确流入、流出模块的前提下,其他测试才有意义。测试接口正确与否应该考虑下列因素:1、输入的实际参数与形式参数的个数是否相同;2、输入的实际参数与形式参数的属性是否匹配;3、入的实际参数与形式参数的量纲是否一致;4、调用其他模块时所给实际参数的个数是否与被调模块的形参 个数相同;5、调用其他模块时所给实际参数的属
25、性是否与被调模块的形参 属性匹配;6、用其他模块时所给实际参数的量纲是否与被调模块的形参量 纲一致;7、调用预定义函数时所用参数的个数、属性和次序是否正确;8、是否存在与当前入口点无关的参数引用;9、是否修改了只读型参数;10、对全程变量的定义各模块是否一致;11、是否把某些约束作为参数传递。,测试流程和方法测试方法(单元测试),如果模块内包括外部输入输出,还应该考虑下列因素:1、文件属性是否正确;2、OPEN/CLOSE语句是否正确;3、格式说明与输入输出语句是否匹配;4、缓冲区大小与记录长度是否匹配;5、文件使用前是否已经打开;6、是否处理了文件尾;7、是否处理了输入/输出错误;8、输出信
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件 测试 方法 技术
链接地址:https://www.31ppt.com/p-5846239.html