软件测试的任务.ppt

上传人:本田雅阁 文档编号:2923694 上传时间:2019-06-06 格式:PPT 页数:46 大小:288.52KB
返回 下载 相关 举报
软件测试的任务.ppt_第1页
第1页 / 共46页
软件测试的任务.ppt_第2页
第2页 / 共46页
软件测试的任务.ppt_第3页
第3页 / 共46页
软件测试的任务.ppt_第4页
第4页 / 共46页
软件测试的任务.ppt_第5页
第5页 / 共46页
点击查看更多>>
资源描述

《软件测试的任务.ppt》由会员分享,可在线阅读,更多相关《软件测试的任务.ppt(46页珍藏版)》请在三一文库上搜索。

1、第一章 软件测试的任务,由安博测试空间技术中心http:/ 2009年9月-2010年01月 SEI of ECNU 版权所有 1-2,本章要点,讨论软件测试的背景,包括 缺陷是什么 软件测试的定义和目的 软件测试工程师 工作职责 工作流程 工作产品 职业道德 易混淆的专业术语,2007级本科软件测试与质量保证 2009年9月-2010年01月 SEI of ECNU 版权所有 1-3,软件中的错误是客观存在的,原因 在可以预见的未来,人仍将是软件开发中的主角。我国有句古话“人非圣贤孰能无过”,由于在软件开发各个环节中产生的人为错误,使得软件中必然存在着大大小小的问题,而这些问题在一定的触发条

2、件下被激活,便会使软件的运行出现差错,导致或大或小的经济损失,而且更为严重的是这些激活的错误可能会威胁人类生命,会导致令人痛心疾首的人间悲剧。,2007级本科软件测试与质量保证 2009年9月-2010年01月 SEI of ECNU 版权所有 1-4,软件中的问题导致的可怕后果,阅读下面的代码,标出你认为有问题的地方 / If the signal ahead is clear then increase the speed. void increase_speed_if_safe (int speed, int signal) if (signal = CLEAR) ; increase_

3、speed (); ,2007级本科软件测试与质量保证 2009年9月-2010年01月 SEI of ECNU 版权所有 1-5,软件中的问题导致的可怕后果,阅读下面的代码,标出你认为有问题的地方 typedef int Time; typedef int Distance; typedef int Speed; const Speed SAFETY_SPEED = 120; void increase_speed (Speed s); void check_speed (Time t, Distance d) Speed s = d/t; if (s SAFETY_SPEED) incre

4、ase_speed (t); ,void perform_safety_checks () Time t = get_time (); Distance d = get_distance (); check_speed (d, t); ,2007级本科软件测试与质量保证 2009年9月-2010年01月 SEI of ECNU 版权所有 1-6,缺陷是什么,定义 到目前为止,没有标准的定义,不同组织对缺陷的定义不同。有的组织称缺陷为偏差、异常、故障、错误或事故。在实际活动中,不用太在意缺陷的到底该怎么叫,最重要的对缺陷有相同的理解 在软件测试中,有一组专门用于描述软件中的错误的术语,下面的一些

5、定义已经被大多数专业人员所接受 软件错误:在软件生存期内的不希望或者不可接受的人为错误。 软件缺陷: 存在于软件(文档、数据、程序)之中的那些不希望或不可接受的偏差, Bug是口语化的缺陷。缺陷在没有被激活的状态下,软件可以正常运行,但是一旦在某一触发条件下,缺陷被激活,软件内部就会出现故障。,2007级本科软件测试与质量保证 2009年9月-2010年01月 SEI of ECNU 版权所有 1-7,缺陷是什么,定义 下面的一些定义已经被大多数专业人员所接受 软件故障:软件运行过程中出现的一种不希望或不可接受的内部状态。此时,如果没有适当的处理措施的话,软件故障就会导致软件失效。 软件失效:

6、软件运行时产生的一种不希望或不可接受的外部行为结果。比如死机就是一种严重的软件失效。软件失效是软件用户所能直接感受到的。当软件出现失效时,必然说明软件中存在缺陷,2007级本科软件测试与质量保证 2009年9月-2010年01月 SEI of ECNU 版权所有 1-8,缺陷的代价,缺陷的代价是非常高昂的 经济上 一项统计数据表明,大约62%的项目成本用于修复软件缺陷。 据美国NIST在2002年发布的一项研究估计,美国经济每年因软件Bug会损失600亿美金,约合0.6%的国民生产总值 对人类生命的威胁,2007级本科软件测试与质量保证 2009年9月-2010年01月 SEI of ECNU

7、 版权所有 1-9,结论,结论 软件已经越来越多的被使用在日常生活中,我们需要更多的高质量、高可靠性、高安全性的软件产品,但是缺陷,软件世界中的“恐怖分子”,影响着软件的质量,威胁着软件的正常运行。 我们无法避免人类犯错,但是可以通过努力将隐藏在软件中的缺陷,尤其是那些致命的,严重的缺陷,尽可能多地寻找出来,尽早定位,尽早解决,避免人间悲剧一次又一次地上演。 寻找软件中的缺陷就是软件测试的主要目的,承担这个使命的就是软件测试工程师。,2007级本科软件测试与质量保证 2009年9月-2010年01月 SEI of ECNU 版权所有 1-10,软件测试是什么,定义 到目前为止,没有标准的定义

8、不同组织有不同的定义 下面的一些定义被大多数专业人员所接受 Myers程序测试是为了发现错误而执行程序的过程 Bill Hetzel 测试是以评价一个程序或者系统属性为目标的任何一种活动,测试是对软件质量的度量 请记住 软件测试的目的就是发现软件中的缺陷 测试对象不只包括程序代码,也包括与软件相关的交付件,2007级本科软件测试与质量保证 2009年9月-2010年01月 SEI of ECNU 版权所有 1-11,软件测试的目标,目标 软件测试的目的就是寻找软件中的缺陷 为了获得更高质量的软件,软件测试的目标是尽量多的寻找软件中的缺陷 另外,考虑到测试成本,软件测试的目的是在可允许的时间跨度

9、内可管理的工作量的条件下尽可能多地寻找软件中的缺陷,2007级本科软件测试与质量保证 2009年9月-2010年01月 SEI of ECNU 版权所有 1-12,软件测试方法的分类,通常有如下几种分类: 站在对被测对象内部实现情况了解程度的角度:白盒测试、灰盒测试和黑盒测试; 站在是否执行被测系统的角度:静态测试和动态测试; 站在测试工具支持的程度:手工测试和自动测试; 站在被测内容的角度:功能测试、结构测试和非功能性测试; 站在以显示被测对象是否工作的角度:正向测试和反向测试; 站在测试过程推进的角度:单元测试、集成测试、系统测试。,2007级本科软件测试与质量保证 2009年9月-201

10、0年01月 SEI of ECNU 版权所有 1-13,白盒测试、灰盒测试和黑盒测试,白盒测试(White-box Testing) 是指基于被测对象的内部实现结构进行测试的方法。 黑盒测试(Black-box Testing) 是指把被测对象看成一个不透明的黑盒,在完全不考虑被测对象内部实现的情况下进行测试的方法。 灰盒测试(Grey-box Testing) 是白盒测试和黑盒测试的混合体,是指在部分了解被测对象实现的情况下进行测试的方法。,2007级本科软件测试与质量保证 2009年9月-2010年01月 SEI of ECNU 版权所有 1-14,静态测试和动态测试,静态测试(Stati

11、c Testing) 是指不运行软件系统,而是通过采用检查或者评审的方式寻找被测对象中的缺陷。 动态测试(Dynamic Testing) 是指运行系统进行测试的过程。动态测试可能是大多数人认为的测试,即通过运行软件进行的测试,2007级本科软件测试与质量保证 2009年9月-2010年01月 SEI of ECNU 版权所有 1-15,手工测试和自动测试,手工测试(Manual Testing) 是指在不借助测试工具的情况下,完全由人类完成对软件产品的测试。 自动测试(Automated Testing) 是指通过测试工具或者其它手段,按照测试工程师的预定计划对软件产品进行自动的测试。,20

12、07级本科软件测试与质量保证 2009年9月-2010年01月 SEI of ECNU 版权所有 1-16,正向测试和反向测试,正向测试(Positive Testing) 是指以验证被测对象的正常行为为测试目标,根据其行为表现判断被测对象中是否存在缺陷的一种测试方法。 反向测试(Negative Testing) 是指以破坏被测对象的正常行为为测试目标,根据其行为表现判断被测对象中是否存在缺陷。,2007级本科软件测试与质量保证 2009年9月-2010年01月 SEI of ECNU 版权所有 1-17,单元测试、集成测试和系统测试,单元测试(Unit Testing) 是指以构成软件的基

13、本单位-单元为测试对象,验证其功能是否正常,是否符合设计要求。 集成测试(Integration Testing) 是指将经过单元测试的构件按照设计要求组装成子系统或系统,以验证按设计要求组合在一起的各单元能够按照既定的意图协作。 系统测试(System Testing) 是指将已经集成好的软件系统,作为整个基于计算机系统的一个元素,与计算机硬件、外设、某些支持软件、数据和人员等其他系统元素结合在一起, 在实际运行环境下,对应用系统进行的一系列组装和确认测试,以验证系统是否符合用户需求。,2007级本科软件测试与质量保证 2009年9月-2010年01月 SEI of ECNU 版权所有 1-

14、18,功能测试、结构测试和非功能测试,功能测试(Functional Testing) 是指依据功能需求规格说明书评估被测对象的功能是否符合需求。 结构测试(Structured Testing) 是指基于被测对象的内部结构或者逻辑寻找缺陷的测试活动。 非功能性测试(Nonfunctional Testing) 是指依据非功能需求规格说明书评估被测系统的某些整体属性,例如性能测试、安全性、易用性等是否符合需求。,2007级本科软件测试与质量保证 2009年9月-2010年01月 SEI of ECNU 版权所有 1-19,功能测试vs黑盒测试,功能测试 针对系统或者组件的功能进行的测试 黑盒测

15、试 不考虑系统或者组件的内部结构,仅关注系统或组件在特定输入和一定条件所产生的输出 区别和联系 许多专业人士认为功能测试和黑盒测试是等同的两个事物,我个人并不同意此观点,黑盒测试是一种设计测试用例的方法而功能测试是测试的内容,黑盒测试同样可以用于性能、安全、易用性等非功能测试,2007级本科软件测试与质量保证 2009年9月-2010年01月 SEI of ECNU 版权所有 1-20,结构测试vs白盒测试,结构测试 基于内部结构或者逻辑寻找缺陷的测试过程 白盒测试 也叫玻璃盒测试、透明盒测试 基于系统或者组件内部实现方法寻找缺陷的测试方法 区别和联系 白盒测试的方法一般可用于进行结构测试,2

16、007级本科软件测试与质量保证 2009年9月-2010年01月 SEI of ECNU 版权所有 1-21,软件测试工程师的目标,目标 基于软件测试的目标,软件测试工程师的目标就是发现软件中的缺陷 考虑到缺陷修正成本,软件测试工程师的目标是尽早发现程序中的缺陷 缺陷被修正后,测试人员必须确认缺陷被修改正确,同时修改没有引入新的缺陷,也就是说软件测试工程师的目标是尽早的发现软件中的缺陷并确保缺陷被正确的修改,2007级本科软件测试与质量保证 2009年9月-2010年01月 SEI of ECNU 版权所有 1-22,软件测试工程师如何进行测试,方法 根据软件需求规格说明书,设计说明书,代码等

17、软件产物选取恰当的输入组合(测试用例 test case) 运行被测对象 输入数据 执行操作 查看输出结果是否和预期的结果一致,如果一致则认为被测对象没有问题,否则,则认为被测对象中可能存在缺陷 缺陷修改完毕,验证缺陷修改,确认缺陷是否修改正确是否引入新问题,2007级本科软件测试与质量保证 2009年9月-2010年01月 SEI of ECNU 版权所有 1-23,软件测试工程师的工作流程,核心工作产品 测试用例 缺陷报告单 其他重要的工作产品 测试计划 测试策略 测试报告 。,2007级本科软件测试与质量保证 2009年9月-2010年01月 SEI of ECNU 版权所有 1-24,

18、测试用例是什么,定义 针对被测试项的测试输入,执行条件和预期结果的集合(是挑选出来的具有代表性的输入组合) 挑选输入组合的方法就是测试用例设计方法 测试用例是软件测试的灵魂,体现着软件测试工程师的职业价值 测试用例可以用结构化自然语言描述,也可以用编程语言实现,2007级本科软件测试与质量保证 2009年9月-2010年01月 SEI of ECNU 版权所有 1-25,为什么需要测试用例,不可能进行完全的测试根本原因: 输入的组合数目太庞大 输出的可能结果数目太庞大 可执行的路径数目太庞大 结论 为了进行聪明的测试,软件测试工程师必须在众多的数据中选取恰当的做代表,2007级本科软件测试与质

19、量保证 2009年9月-2010年01月 SEI of ECNU 版权所有 1-26,如果你打算测试一个计算器程序的功能,你认为需要进行多少次输入?,不可能进行完全的测试,结论是不计其数 整型: 从 1+1 到 999999999999999999999999999999+ 999999999999999999999999999999 小数:1.0+0.1,1.0+0.2等等 键盘上的任何一种组合 为乘法和除法运算重复上面的操作,2007级本科软件测试与质量保证 2009年9月-2010年01月 SEI of ECNU 版权所有 1-27,结论是:51+52+53+510= 6.1*107,需

20、要1分钟左右的时间 如果循环次数为20次,100次时,结果又如何? 结论是:循环20次,需要约16000小时,循环100次则大约需要2.4*1048年,不可能进行完全的测试,1,2,3,5,6,4,7,8,9,左图是具有某程序的流程图,假设循环10次,请计算一下有多少条程序执行通路?假设由图中得到的所有路径都是可执行路径,执行一次循环大约需要10微秒(奔腾4 1.7G),且一年365天每天24小时不停机,请回答:如果循环次数为10的话,遍历图中所有路径需要多长时间?,2007级本科软件测试与质量保证 2009年9月-2010年01月 SEI of ECNU 版权所有 1-28,三角形问题,三角

21、形问题输入三个整数,这三个数分别代表三角形三条边的长度,请判断这三个数构成的三角形是等边三角形,等腰三角形还是不等边三角形并输出相应的结果。,2007级本科软件测试与质量保证 2009年9月-2010年01月 SEI of ECNU 版权所有 1-29,测试用例实现(1),一个用自然语音实现的测试用例实例,不同的组织可能使用不同的测试用例模版,2007级本科软件测试与质量保证 2009年9月-2010年01月 SEI of ECNU 版权所有 1-30,测试用例实现,基于JUnit框架(www.junit.org)用Java语言实现的一个测试用例,2007级本科软件测试与质量保证 2009年9

22、月-2010年01月 SEI of ECNU 版权所有 1-31,高质量测试用例的属性,高质量测试用例的四个属性 有效性 是否能够发现缺陷或者至少可能发现缺陷 仿效性 衡量测试用例的代表程度 ,减少测试用例的数量 经济性 测试用例所花费的成本,包括设计、实现、调试和运行测试用例的成本 可维护性 修改和维护测试用例的难易程度,2007级本科软件测试与质量保证 2009年9月-2010年01月 SEI of ECNU 版权所有 1-32,缺陷报告单,定义 缺陷问题报告单是描述缺陷细节的文档,包括缺陷的编号、被测软件及其版本、优先级、严重程度、谁来修复缺陷等等 优良的缺陷报告应该具备准确、清晰、简洁

23、、完整,统一的特点,还需要注意 给每个缺陷问题报告单分配一个唯一的标识以有利于缺陷的后续处理、查询和管理维护等活动。 站在为他人服务的立场上编写缺陷问题报告单 注意语句措词,不要涉及对他人的评价和自己情绪的宣泄 只报告问题不要试图解决问题 一个缺陷问题报告单里只报告一个缺陷漏,2007级本科软件测试与质量保证 2009年9月-2010年01月 SEI of ECNU 版权所有 1-33,缺陷问题报告单示例,缺陷问题报告单,张三,2007级本科软件测试与质量保证 2009年9月-2010年01月 SEI of ECNU 版权所有 1-34,软件测试工程师职业道德规范,建议 恪守职业道德,始终维护

24、所在组织的利益,不能因为个人利益,损害甚至出卖组织 具备团队合作精神,在工作中树立为他人服务的意识,始终铭记软件项目不是个人作品,而是整个团队密切合作的产物,当同事们寻求帮助时,应尽最大可能伸出援助之手。 具备诚实的品德,实事求是。不能为了个人绩效进行具有欺骗性的活动,如伪造测试数据,对发现的缺陷夸大其辞等。,2007级本科软件测试与质量保证 2009年9月-2010年01月 SEI of ECNU 版权所有 1-35,软件测试工程师职业道德规范,建议 良好的沟通能力。软件测试工程师的工作是挑别人的毛病,这注定测试人员不会太受团队中其他成员的欢迎,尤其是开发人员。两者经常会因为发现的缺陷究竟是

25、不是真的缺陷而发生冲突。软件开发工程师,出于本能,会为自己的作品辩解不承认测试工程师找到的缺陷是自己的问题或者认为这就是一个功能,而软件测试工程师,出于职业责任感,会坚持自己的意见,此时,如果不适当运用一些沟通技巧,很可能将形成一个互不相让的僵局。在这种情况下,软件测试工程师不防站在开发人员的角度思考一下并选择恰当的方式进行表达。适当的幽默可能会非常有帮助。,2007级本科软件测试与质量保证 2009年9月-2010年01月 SEI of ECNU 版权所有 1-36,软件测试工程师职业道德规范,建议 始终秉持任何软件都存在缺陷的工作态度。软件测试工程师不能因为自己的想当然或崇拜心理主观地认为

26、被测系统中问题很少或者不会有问题。如果是这样的话,根据心理学研究的结果,那么很可能遗漏本应被发现的缺陷。 认真负责仔细耐心。缺陷经常会把自己隐藏在角落里,为了发现缺陷,测试工程师很可能重复相同的操作很多次,如果没有耐心半途而废或者思想有松懈的话,缺陷也许就从会悄悄地溜走。,2007级本科软件测试与质量保证 2009年9月-2010年01月 SEI of ECNU 版权所有 1-37,软件测试工程师职业道德规范,建议 只要是缺陷不论大小一定要报告。客户和用户会因为系统中竟然会存在类似于页面中的错别字、文本框没有左对齐或是语句不太通顺等很明显的小错误而大动肝火,会认为连这种小问题都没有办法杜绝,系

27、统有何可信而言。另外,一旦测试工程师报告了所发现的缺陷,如果没有确切的理由,那么就要坚持到底所提的缺陷是一个缺陷,不能因为开发人员的态度或者自己自信心的缺乏而退缩。 报告不可重现的缺陷。不可重现问题的背后很可能隐藏着系统致命的缺陷,一旦被激活会导致系统运行的不稳定甚至宕机。对于这类缺陷,软件测试工程师有责任提出并且协助开发人员重现定位。,2007级本科软件测试与质量保证 2009年9月-2010年01月 SEI of ECNU 版权所有 1-38,软件测试工程师职业道德规范,建议 不断充实专业知识,总结工作经验。在目前的IT界里,不跟进先进的专业知识是一种落后,不重复优良的工程经验是一种浪费,

28、这条规则对软件测试工程师也不会例外。,2007级本科软件测试与质量保证 2009年9月-2010年01月 SEI of ECNU 版权所有 1-39,术语,软件测试中几组易混淆的术语 测试和调试(Testing and debugging) 验证和确认(Verification and Validation) 动态测试和静态测试(Dynamic testing and Static testing) 功能测试和黑盒测试(Functional Testing and black-box Testing) 结构测试和白盒测试(Structural Testing and White-Box Tes

29、ting) 测试和质量保证(Testing and Quality Assurance ),2007级本科软件测试与质量保证 2009年9月-2010年01月 SEI of ECNU 版权所有 1-40,测试和调试,测试 测试的目的是为了寻找缺陷 调试 调试是为了发现、定位和修改程序代码中的错误 调试的目的是为了排错 区别和联系 测试为了寻找缺陷,调试为了排除缺陷 可能存在这样的工作流程: 测试发现缺陷 调试定位缺陷和修改缺陷 测试验证缺陷是否修改正确,2007级本科软件测试与质量保证 2009年9月-2010年01月 SEI of ECNU 版权所有 1-41,验证和确认,验证 评估系统或组

30、件的过程以确定在给定的开发阶段是否满足在该阶段开始时定义的标准,用以验证产品的正确性 确认 开发过程中或结束时评估系统或组件的过程以确定系统或组件是否满足定义的需求 区别和联系 验证(Verification)用于回答“我们开发的产品正确吗?” 确认(Validation)用于回答“我们开发的正确的产品吗?”,2007级本科软件测试与质量保证 2009年9月-2010年01月 SEI of ECNU 版权所有 1-42,验证和确认,在现实中,我们不仅需要验证也需要确认,因为 在开发过程中存在这样一种状况,尽管每个阶段的产物符合这个阶段开始定义的标准,但是由于理解的差别,很可能开发出一个正确却不

31、符合用户需求的产品。因此在软件开发过程中既需要验证也需要确认,2007级本科软件测试与质量保证 2009年9月-2010年01月 SEI of ECNU 版权所有 1-43,测试和质量保证,软件测试 软件测试的目的是为了发现缺陷 软件质量保证(Software Quality Assurance SQA) 软件质量保证是为软件产品的开发过程或者维护过程达到既定功能目标和管理层要求提供充分证明的一系列系统的有计划的活动 软件质量保护的目的是评估和改进过程 区别和联系 软件测试的工作对象是软件产品 软件质量保证的工作对象是软件过程,2007级本科软件测试与质量保证 2009年9月-2010年01月

32、 SEI of ECNU 版权所有 1-44,小结,缺陷为人类带来巨大的损失,软件测试的目的就是为了寻找缺陷 软件测试只能说明软件中存在缺陷 软件测试工程师利用测试用例发现缺陷 测试用例是软件测试工程师的核心工作产品,体现着软件测试工程师的职业价值 软件测试不是软件质量的守护神,2007级本科软件测试与质量保证 2009年9月-2010年01月 SEI of ECNU 版权所有 1-45,问题,Q&A,2007级本科软件测试与质量保证 2009年9月-2010年01月 SEI of ECNU 版权所有 1-46,课后作业,复习课堂内容 以“软件测试”,“软件测试前景”,“软件测试现状”,“软件测试方法”,“软件测试工具”,“自动化测试”,“软件测试研究内容”等为关键字,在Internet网上搜索与软件测试相关的资料,并阅读其中感兴趣的部分 获取课件 E-mail:; pwd: sei2007,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1