软件测试幻灯片

上传人:F****n 文档编号:88190744 上传时间:2019-04-20 格式:PPTX 页数:52 大小:775.27KB
返回 下载 相关 举报
软件测试幻灯片_第1页
第1页 / 共52页
软件测试幻灯片_第2页
第2页 / 共52页
软件测试幻灯片_第3页
第3页 / 共52页
软件测试幻灯片_第4页
第4页 / 共52页
软件测试幻灯片_第5页
第5页 / 共52页
点击查看更多>>
资源描述

《软件测试幻灯片》由会员分享,可在线阅读,更多相关《软件测试幻灯片(52页珍藏版)》请在金锄头文库上搜索。

1、第一章:基本概念和预备知识 韦庆杰,软件工程学科研究生课程 软件质量保证与测试,姓名:韦庆杰 部门:计算机科学与技术学院 实验室:信科1806 E-mail(答疑用): ,2,关于我,3,什么是工程(Engineering )?,狭义而言,工程定义为“以某组设想的目标为依据,应用有关的科学知识和技术手段,通过一群人的有组织活动将某个(或某些)现有实体(自然的或人造的)转化为具有预期使用价值的人造产品过程”。 广义而言,工程则定义为由一群人为达到某种目的,在一个较长时间周期内进行协作活动的过程。(引用百度百科),研究、开发、设计、施工、生产、操作、管理以及其他,主要职能,4,什么是软件工程(So

2、ftware Engineering )?,研究和应用如何以系统性的、规范化的、可定量的过程化方法去开发和维护软件,以及如何把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来的学科(维基百科),软件工程-计算机软件发展的三个阶段,软件工程与软件测试,软件工程的一个重要分支,软 件 生 命 周 期,软件测试:为了提高软件质量 软件质量:是软件产品的特性可以满足用户的功能、非功能需求的能力 。 软件的质量管理(Quality Management):是软件组织在软件产品生产中的质量策划、质量控制(Quality Control)、质量保证(Quality Assurance)

3、和质量改进等等与质量有关的相互协调的活动。,软件测试与软件质量,基本概念和预备知识 单元测试 系统集成测试 系统测试分类 功能测试 系统测试设计 系统测试计划与自动化 系统测试的执行 验收测试 软件可靠性 软件质量 成熟度模型 软件测试前沿技术介绍,课程概览,掌握软件测试的基本概念 理解测试对于软件质量保障的重要性 了解软件测试技术 理解需求、缺陷、测试用例和测试结果的生命周期模型 理解单元测试、集成测试、系统测试和验收测试的过程模型 掌握软件测试实践所需的技能 了解软件测试自动化 了解质量模型、能力成熟度模型、测试成熟度模型及测试过程改进模型 培养学生进行测试前沿技术的调研能力,课程目标,教

4、学形式分以下四个部分: 课堂学习部分:由教师进行讲授 研究性学习部分(本部分不占课内学时):采取课后自学方式,要求在充分调研的基础上,结合个人研究背景和兴趣选题,写作一篇专题报告 课堂讨论部分:要求学生准备一次专题报告 实践部分:学生课后独立完成和选题有关的技术实验,教学要求,Kshirasagar Naik, 软件测试与质量保证 理论与实践, 电子工业出版社 Ron Patton, 软件测试(第2版),机械工业出版社 Srinivasan Desikan, 软件测试原理与实践,机械工业出版社 Scott Tilley, 云环境下得软件测试:迁移与执行,科学技术文献出版社,教材和参考书,软件测

5、试基本概念和预备知识 单元测试 系统集成测试 系统测试 ,课程内容,提高质量的新方法包含了一个产品开发过程的各个方面 从需求分析到提交最终产品 有效的质量过程必须注意 更加专注于客户的需求 采取措施持续地提高质量 使度量过程与产品设计、开发融为一体 将质量概念推广到整个组织的最底层 建立一种对方法、过程高度关注的系统级的视图 通过持续的质量提高来消除浪费 PDCA(Plan-Do-Check-Action)循环 TQC(Total Quality Control)全面质量管理,质量革命,关于软件质量的5个观点 抽象的观点:可以识别但很难定义 用户的观点:是对目标的适应性 -产品是否满足用户的需

6、求? 制造的观点:与规范的一致性 产品的观点:依赖产品内在的特性 基于价值的观点:依赖于客户愿意支付的货币数额,软件质量,定义软件质量的最具影响力的两个软件质量模型 ISO9126 CMM (Capability Maturity Model)软件能力成熟度模型 软件测试领域的两个著名的过程模型 测试过程改进模型(TPI) 测试成熟度模型(TMM),软件质量,什么是软件测试?,“以寻找错误为目的的执行程序的过程” 迈尔斯 G. J. 软件测试的艺术, Wiley出版社,1979年,“软件测试是一个以寻找错误为目的的分析和操作软件的过程” 克里斯 布朗,格雷柯布,罗伯特卡伯特森, 软件测试快速入

7、门, 2001年,“. 发现错误” “.及早发现错误” “.及早发现错误并确保这些错误被修复” 巴顿 R.软件测试 (第二版), 2005年,软件测试是为了度量和提高软件的质量,对测试软件进行工程 设计、实施和维护的整个生命周期过程,定义的不断发展,软件测试的定义经历了不断的发展: 狭义概念 识别软件缺陷的过程,即实际结果与预期结果的不一致 广义的概念 指软件生存周期中所有的检查、评审和确认工作,其中包括了对分析、设计阶段,以及完成开发后维护阶段的各类文档、代码的审查和确认,什么是软件测试,软件测试与软件开发的关系,这种专指测试程序代码,定义在编码之后的“测试”是一种狭义定义的测试,“软件测试

8、在程序开发之后”这句话对吗?,广义的软件测试贯穿了整个软件开发过程,软件开发生命周期的各个阶段中都少不了相应的测试,对软件质量提出了全方位要求 功能 方便灵活 性能 安全 稳定可靠,为什么要做软件测试,软件逐渐成为人类社会经济活动和日常生活不可缺少的元素,软件质量关乎着 人员和公众的生命和安全 环境的质量 数据和信息的安全 设备设施和系统的正常运行 社会活动和社会秩序,为什么要做软件测试,软件测试通常包括确认(verification)和有效性验证(validation): 确认指保证软件正确的实现了某一特定功能的一系列活动 有效性验证指的是保证软件的实现满足了用户需求的一系列活动,Verif

9、ication & Validation,两者很容易混淆,大多数的书籍的翻译都不正确,Boehem简洁的给出了两者的区别: 有效性验证:我们是否在构建一个正确的产品? 即构建出的产品是否满足客户的需求。 确认:我么是否在正确地构建一个产品? 即构建出的产品是否和产品的设计相一致。,Verification & Validation,美国早期的航天事故原因查明:FORTRAN程序中 “ ;” 写成了“,”, 编译系统将循环语句误认为赋值语句,软件缺陷案例1,软件质量问题的严重挑战,软件质量问题引发的事故屡见不鲜,1990年海湾战争中由于软件的缺陷,致使美国爱国者导弹打入自己的军营,软件缺陷案例2

10、,加拿大的X射线自动治疗仪控制软件有设计缺陷,使得病人受到高强度射线照射,有多位病人致死、致伤,软件缺陷案例3,2008北京奥运会票务系统,软件缺陷案例4,欧洲宇航局的阿丽亚娜型(ARIANA 501)运载火箭1996年首次发射因火箭导航软件故障发射失败,软件缺陷案例5,香港1997年回归后新机场航管系统未经试运行,软件缺陷案例6,FIFA 2012缺陷,软件缺陷案例7,软件失败的术语 缺点(defect) 故障(fault) 失败(failure) 事件(incident) 偏差(variance) 异常(anomaly) 问题(problem) 错误(error) 缺陷(bug),软件缺陷

11、是什么,严重的情况,不是全部失败,最常用的术语,软件缺陷的定义( Ron Patton, 软件测试第2版) 软件未达到产品说明书中已经标明的功能; 软件出现了产品说明书中指明不会出现的错误; 软件未达到产品说明书中虽未指出但应当达到的目标; 软件功能超出了产品说明书中指明的范围; 软件测试人员认为软件难以理解、不易使用,或者最终用户认为该软件使用效果不良。 *产品说明书:Product Specification或简称Spec,软件缺陷是什么,计算器的产品说明书声称它能准确无误地进行加减乘除运算,永远不会崩溃、锁死或停止反应。 按下(+)键没有任何反应(规则1) 狂敲键盘计算器停止接受输入(规

12、则2) 可以求平方根(规则3) 电力不足时计算不正确(规则4) 按键太小,“=”键布置的位置使其极不好按,明亮光下屏幕难以看清(规则5),软件缺陷是什么,图1-1 软件缺陷产生的原因分布,软件缺陷产生的原因,启动Windows的计算器程序,输入“5,000 -5 =”(逗号不能少),观察结果。这是软件错误吗?为什么?,课堂练习,失败(failure):系统的外部行为编写与系统规范不一致时产生 错误(error):系统的一个状态 故障(fault):一个错误的裁定原因 故障-错误-失败 缺陷:业界广泛使用的术语 故障:研究者倾向使用,失败、错误、故障和缺陷,本书根据需求互换使用,定义:在指定的环

13、境、指定的时间内,软件系统无故障运行的概率,软件可靠性的概念,测试的目的就是发现软件中的各种缺陷 测试只能证明软件存在缺陷,不能证明软件不存在缺陷 测试可以使软件中缺陷降低到一定程度,而不是彻底消灭 以较少的用例、时间和人力找出软件中的各种错误和缺陷,以确保软件的质量,软件测试的目的,基本形式是一个简单的对 无状态系统中,结果仅依赖当前的输入,测试用例的结构很简单(例:C语言编译器) 面向状态的系统中,程序的结果依赖于系统当前的状态和当前的输入,一个测试用例可能由一组序列组成 (例:ATM),什么是测试用例(test case),包含以下内容 程序产生的数值: 本地观察的输出 远程存储、操作或

14、观察的输出 状态变化 程序的状态变化 数据库的状态变化 数值序列或集合 断言(Assertion):任何一个实体(程序、过程、人力专家、数据体)告知我们一个特定的测试(或测试集合)的期望结果 理想情况下期望结果应在设计测试用例时计算出来,但例外时应通过对实际的测试结果进行检测,识别出期望的结果,期望结果,完备测试不能实现的原因: 可能的输入范围之大以至于一个测试系统中不能完全使用所有的输入 设计的问题太复杂以至于不能进行完备测试 创建一个系统所有可能的执行环境是不太可能的,完备测试的概念,必须以一种系统的、谨慎的方式来选择输入域上的子集,以便得出尽可能准确和完备的推论,测试的核心问题,输入域D

15、,程序P,D1,D2,P2,P1,应用输入,观察输出,确定测试的目标 选择输入 计算期望结果 设定程序的执行环境 执行程序 分析测试结果,测试活动,单元测试 集成测试 系统测试 验收测试 业务验收测试 (Business Acceptance Test) 用户验收测试(User Acceptance Test) 回归测试:它的执行贯穿系统的生命周期,可以看成各个测试阶段的子阶段,测试阶段,开发组织,用户,需求和功能规范:正式和非正式的 源代码 输入和输出域 操作特性:关于一个系统如何使用的定量描述,多用于可靠性评估 故障模型 基于故障的测试: 错误猜测 故障植入 变异分析 以故障仿真的思想为基

16、础,测试用例选择的信息来源,白盒测试:已知产品的详细设计过程,可以通过测试证明每种内部操作是否符合设计规格要求,所有内部成分是否已经通过检查 又称结构化测试(Structure Based Testing或Structural Testing) 黑盒测试:把程序看作是一个不能打开的黑盒子,在不考虑程序内部结构和特性的情况下,在程序接口进行测试,它只检查程序功能是否按照需求规格说明书的规定正常使用,程序是否能适当地接收输入数据而产生正确的输出信息 又称功能测试或数据驱动测试、或基于规格说明的测试(Specification Based Testing),白盒测试和黑盒测试,测试计划 时间进度和人员安排、风险管理 测试范围的确定、测试数据的生成 测试工具、方法的选择和工具开发 测试完成标准 影响资源分配的特殊考虑等 测试设计 根据不同信息来源定义不同的测试目标,为每一个测试目标设计一个或多个测试用例,测试计划和设计,自动化测试的好处: 提高测试人员的生成率 回归测试有更好的覆盖 减少测

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > PPT模板库 > PPT素材/模板

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号