《【教学课件】第一周-软件测试概述.ppt》由会员分享,可在线阅读,更多相关《【教学课件】第一周-软件测试概述.ppt(60页珍藏版)》请在三一办公上搜索。
1、2023/8/6,软件维护与测试Software maintenance and testing,任课老师:黄武,2023/8/6,教师简介,黄武研究方向:医学智能仪器的研究教学:软件工程方面的课程,主要包括c编程语言,UML工具,软件构架,软件测试等,电话:邮箱:其他联系方式:85446498-868,2023/8/6,提纲,引言软件测试与维护在软件工程中的地位课程安排软件测试背景介绍,2023/8/6,1.引言三个问题,你认为这门课程讲述什么样的内容你了解的软件测试与维护是什么,举例说明软件测试是一门职业吗,你怎么看待的,2023/8/6,1.1 软件测试举例-Win7测试,2023/8/
2、6,2023/8/6,软件测试的重要性,2023/8/6,2023/8/6,2023/8/6,1.2 下面哪些行为属于软件测试,哪些行为属于软件维护,对照说明书发现软件的使用与说明书上存在不一致的地方计算机感染病毒,造成IE不能上网,我安装杀毒软件清除病毒这个电子商务软件不能进行汇率计算,造成国际交易困难,要求软件公司改进我胡乱敲击键盘,看我编制的程序是否出错同学让我帮他看一看写的代买有没有什么明显的缺陷,2023/8/6,1.3 软件测试是一门职业,国外正规的软件开发公司非常重视软件的测试工作在微软,软件测试人员和软件开发人员的比例大约为1:1在IBM,软件测试人员和软件开发人员的比例大约为
3、1:3,但是正在向1:1方向发展,2023/8/6,软件测试工程师的价值1,2023/8/6,软件测试工程师的价值2,2023/8/6,软件测试工程师的价值3,2023/8/6,2.软件测试与维护在软件工程中的地位,软件的生命周期可以划分为3个过程9个阶段:,2023/8/6,2.1 集成测试,任务根据概要设计规格说明书,将经过单元测试的模块逐步进行集成和测试技术途径和工具以概要设计规格说明书和集成测试计划为依据,进行集成模块并进行测试IDE、专有工具等阶段性产品生成满足概要设计要求、可运行的系统源程序,以及系统集成测试报告,2023/8/6,2.2 确认测试,任务根据软件需求规格说明书,测试
4、软件系统是否满足用户的需求途径 由用户参与,以软件需求规格说明书为依据进行确认测试专有工具阶段性产品可供用户使用的软件产品(文档、源程序),2023/8/6,2.83 软件维护,任务对使用后的软件进行维护例如:修正使用过程中发现的错误纠错性维护增加新的功能完善性维护从一个环境搬迁到另一个环境适应性维护途径以文档和源程序为基础按用户要求进行阶段性产品版本更新的软件产品,2023/8/6,3.课程安排,学习达到的目的如何学习具体的课程安排参考书目成绩评定,2023/8/6,3.1 学习达到的目的,1.了解软件维护与测试的基本概念2.了解软件测试的完整知识体系,包括测试方法,测试应用,测试工具,测试
5、文档和测试结果统计等3.掌握软件测试的各种方面,静态、动态测试,白盒、黑盒测试等4.学会正确的程序开发流程,把学到的软件测试知识运用到将来的开发中去,2023/8/6,3.2 怎样学习,首先要有积极学习的态度其次,加强理论知识的学习,了解软件测试的原理和方法最后,通过具体的测试实践,达到学以致用的效果,2023/8/6,3.3 课程安排,虽然这门课的名称是软件维护与测试,但实际上基本讲解的是软件测试技术。由于软件维护与具体的应用软件相关,所以这里基本没有讲解软件维护与测试课时为每周5学时,上16周,共80学时。其中,理论课32学时,学生实践48学时。考虑到学生需要了解一些基本理论后方可以开始实
6、践,因此前4周原则上不安排实践,全部用于理论教学,从第5周开始理论教学和实践教学同步进行,2023/8/6,3.3 课程安排,第一周:软件维护与测试概述首先理清学生头脑中关于软件维护与测试的模糊概念,帮助学生建立起软件维护与测试重要性的观念;然后讲解软件测试的背景知识,包括软件缺陷给我们带来的灾难,软件缺陷的定义,软件测试员的目标等,2023/8/6,3.3 课程安排,第二周:软件开发与测试的关系简单介绍软件开发的基本过程,包括软件开发的几种常用模式,对于软件开发的了解使同学更容易掌握软件测试的思想和方法。然后介绍软件测试的分类、原则及软件测试的真正含义,重点是让学生了解软件测试与开发之间的关
7、系,2023/8/6,3.3 课程安排,第三周:黑盒测试方法介绍讲解静态和动态黑盒测试的概念、内容和方法,静态黑盒测试方法,即对软件说明书(specification)的审查是同学们容易忽略的内容,从这里的学习让我们逐渐了解软件测试的全貌,2023/8/6,3.3 课程安排,第四周白盒测试方法介绍 讲解静态和动态白盒测试的概念、内容和方法,静态白盒测试(相互之间的代码审查)是重要的测试方法,但往往容易被编程人员忽略。动态白盒测试需要在了解软件设计结构的基础上完成,需要技巧,2023/8/6,3.3 课程安排,第五周配置测试讲解配置测试的概念、内容以及如何有效地进行配置测试 实践:静态黑盒测试
8、第六周兼容性测试讲解兼容性测试的概念、内容以及如何有效地进行兼容性测试 实践:动态黑盒测试,2023/8/6,3.3 课程安排,第七周外国语言测试讲解外国语(本地化)测试的概念、内容以及如何有效地进行本地化测试 实践:静态白盒测试 第八周易用性测试讲解易用性测试及文档测试的概念、内容以及如何有效地进行易用性测试 实践:动态白盒测试,2023/8/6,3.3 课程安排,第九周网站测试讲解网站测试的概念、内容以及如何有效地进行网站测试 实践:通用网站测试 第十周自动化测试及测试工具介绍让学生了解自动化测试的重要性和原理并在以后的测试中尽量使用自动化测试及应用测试工具 实践:通用测试工具介绍及实践,
9、2023/8/6,3.3 课程安排,第十一周测试计划的制定讲解如何计划自己的测试工作,包括测试目标和策略的制定 实践:版本管理工具cvs等的介绍和练习 第十二周测试案例的编制编写和跟踪测试案例,讲解测试案例的重要性,包括:组织性、重复性、跟踪以及测试证实,测试案例的内容,如何组织和跟踪测试数据 实践:编写一个测试程序,用于后期测试,2023/8/6,3.3 课程安排,第十三周 报告软件缺陷如何报告发现的软件缺陷,包括发现的软件缺陷的有效报告,分离和再现软件缺陷 跟踪软件缺陷等内容,然后介绍软件缺陷的生命周期 实践:编写上次实践得到的应用程序的测试计划和测试案例,2023/8/6,3.3 课程安
10、排,第十四周测试评估使用缺陷跟踪数据库中的数据对测试结果进行评估 实践:根据测试计划和测试案例对软件测试 第十五周软件质量评判讲解软件测试和质量评判的关系,介绍软件质量体系,如能力成熟度模型(CMM)及ISO9000等实践:对测试结果进行分析,编写测试报告,2023/8/6,3.3 课程安排,第十六周 软件测试员职业指导介绍软件测试员的工作、职位、体验等复习和答疑,2023/8/6,3.4 参考书目,Black-Box TestingBoris Beizer John Wiley&Sons Inc,2005.6,Software TestingPaul C.Jorgensen CRC pres
11、s,2002,ISBN:0-8493-0809-7软件测试的有效方法William E.Perry 清华大学出版社,2008.1,集成测试框架用Fit进行敏捷软件测试,(美)Rick Mugridge 著,吴兰涉译,电子工业出版社,2007,2023/8/6,3.5 参考网站,2023/8/6,3.5 参考网站,2023/8/6,3.5 参考网站,http:/,2023/8/6,3.5 参考网站,http:/,2023/8/6,3.6 成绩评定,总成绩=平时(10%)+实践(30%)+期末成绩(60%)平时成绩以考勤为主,原则上每次缺勤扣5分实践:包括平时实践课的表现和最后的完整测试报告,包括
12、测试计划,测试案例,测试过程记录,测试缺陷及评估期末考试为堂上闭卷考试,2023/8/6,第一章软件测试的背景,软件缺陷的历史软件缺陷举例软件缺陷术语软件缺陷的定义软件缺陷的主要原因软件测试员的目标软件测试员具有的素质,2023/8/6,1.1 软件缺陷的历史,1946年,当Grace Hopper在哈佛的Mark II机器上工作时,发现机器停止工作,结果是一只飞蛾掉在了机器的继电器上,清除后机器工作正常,她在工作日志上粘贴这只蛾子,并写下术语bug.,Bug的来源,2023/8/6,1.2 软件缺陷举例1,Bill Gites在湖滨中学的PDP-10计算机上操作时,由于输入了错误的用户名,造
13、成了计算机系统的崩溃,这引起了Gites的极大兴趣,2023/8/6,1.2.1 软件缺陷举例2,2005年12月8日,瑞穗证券公司一名经纪人本应发出“61万日元1股”的出售指令,却在电脑上错误输成“1日元61万股”。发现错误的瑞穗证券欲取消交易,但“由于东证的系统不完备,没有被接受,造成数亿日元的损失额,涨到了约407亿日元”。,瑞穗证券公司总裁福田真(左)在记者招待会上鞠躬道歉,2023/8/6,1.2.2 软件缺陷举例3,2023/8/6,1.2.3 软件缺陷举例4,事件:1994年秋,迪斯尼公司发布了第一个面向儿童的多媒体光盘游戏Lion King Animated Storybook
14、。该产品销售不俗,但在其后的数月中,该产品遭到了购买该游戏孩子和家长的愤怒投诉,造成公司损失巨大原因:该软件没有对市场上流行的PC机进行兼容性测试,造成兼容性问题,2023/8/6,1.2.4 软件缺陷举例5,事件:1994年12月30日,弗吉尼亚Lynchburg大学的Thomas R.Nicely博士在他的奔腾机上做除法实验发现一个意想不到的结果4195835/3145727*3145727-4195835!=0原因:Intel公司在测试是发现了该缺陷,却认为出现的几率很小,所以没有修复结果:Intel公开道歉并支付4亿多美元更换有问题的芯片,2023/8/6,1.2.5 软件缺陷举例6,
15、事件:1996年12月3日,美国航天局的火星基地登陆飞船在试图登陆火星表面时失踪原因:由于简单的采用登陆器腿上的触点开关作为触发关闭减速引擎的因素,造成该触发开关过早置位而关闭减速引擎,2023/8/6,1.3 软件缺陷术语,由于软件公司本身的企业文化以及不同的软件开发过程,造成不同公司对于软件缺陷的描述有所不同,下面是描述软件缺陷的常用术语。我们可以采用自己熟悉的术语缺点(defect)偏差(variance)谬误(fault)失败(failure)问题(problem)矛盾(inconsistency)错误(error)异常(anomaly)毛病(incident)缺陷(bug),2023
16、/8/6,1.4 软件缺陷的定义,符合以下5个规则就叫做软件缺陷软件未达到产品说明书(Product specification)表明的功能软件出现了产品说明书指明不会出现的错误软件功能超出了说明书指明范围软件未达到产品说明书虽未指出但应该达到的目标软件测试员认为难以理解、不宜使用、运行速度缓慢,或者最终用户认为不好,2023/8/6,1.4.1 软件缺陷的定义举例,软件说明书上标明有“安全记录方式”,那么在这种方式下造成数据的毁坏则是一个缺陷,比如突然停电,安全记录方式,2023/8/6,1.4.1 软件缺陷的定义举例,说明书上标明有心功能参数测量功能,但是测量出来的数据有误,未达到说明书的
17、要求,是一个缺陷,测量结果,2023/8/6,1.4.1 软件缺陷的定义举例,软件上新增功能,在说明书上没有标出,是一个却缺陷,新增功能,2023/8/6,1.4.1 软件缺陷的定义举例,由于420是一个记录系统,虽然说明书上没有标明系统可以无限记录下去,但是用户可以认为该系统可以无限记录下去,实际的情况是记录文件的大小不能超过2G,这也是一个缺陷另外,与用户期望的易用性不一致,比如,停止记录后应该保留原记录的数据在屏幕上,实际不是这样,也可以算为缺陷,2023/8/6,1.5 软件出现缺陷的原因,产品说明书是造成软件缺陷的首要原因软件设计方案不完善是造成软件缺陷的第二大原因由于软件的复杂性、
18、说明文档不足以及进度压力等造成的代码错误是软件错误的第三大原因其他原因,2023/8/6,1.5 软件出现缺陷的原因,编制说明书53%,设计27%,编写代码15%,其它5%,造成软件缺陷各种原因的比例图,2023/8/6,1.6 软件缺陷的修复费用,软件的修复费用与修复时间相关,随着时间的推移,修复费用成几何数量增长。,编制指南,设计,编写代码,测试,发布,时间,花费,0.1,1,10,100,2023/8/6,1.7 软件测试人员的目标,软件测试员有三级目标发现软件缺陷尽早地发现软件缺陷尽早地发现软件缺陷,并确保其得以修复,2023/8/6,1.8 软件测试人员应该具备的素质,软件测试员所需
19、要的知识和所作出的努力不亚于程序员探索精神不害怕陌生环境,喜欢使用新软件故障排除能手善于发现问题不懈努力他们对于转瞬即逝或者难于重建的软件缺陷锲而不舍地寻找创造力他们富于想象,使用各种方法和手段找寻软件缺陷,2023/8/6,1.8 软件测试人员应该具备的素质,追求完美力求完美,但在知道无法达到时不去苛求,只是尽力接近目标判断准确判断测试的问题是否为真正的缺陷老练稳重遇到问题不慌张说服力怎样说服软件开发人员改进软件缺陷,2023/8/6,1.8 软件测试人员应该具备的素质,软件测试人员除了具有上述素质外,具有以下两项能力也非常重要基本的编程知识,可以更深入地了解软件缺陷发生机制,可以更好的使用自动测试工具领域知识软件都是为了某个行业的应用,比如教学、航空、医疗等,能够了解软件的应用领域知识对于软件测试是大有裨益的,