




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第一章:基本概念和预备知识
韦庆杰软件工程学科研究生课程–——软件质量保证与测试姓名:韦庆杰部门:计算机科学与技术学院实验室:信科1806E-mail(答疑用):
weiqj@2关于我3什么是工程(Engineering)?狭义而言,工程定义为“以某组设想的目标为依据,应用有关的科学知识和技术手段,通过一群人的有组织活动将某个(或某些)现有实体(自然的或人造的)转化为具有预期使用价值的人造产品过程”。广义而言,工程则定义为由一群人为达到某种目的,在一个较长时间周期内进行协作活动的过程。(引用百度百科)研究、开发、设计、施工、生产、操作、管理以及其他主要职能4什么是软件工程(SoftwareEngineering)?研究和应用如何以系统性的、规范化的、可定量的过程化方法去开发和维护软件,以及如何把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来的学科(维基百科)软件工程-计算机软件发展的三个阶段
阶段特点程序设计程序系统软件工程软件所指程序程序及说明书程序、文档、数据主要程序设计语言汇编及机器语言高级语言软件语言软件工作范围程序编写设计和测试整个软件生命周期需求者程序设计者本人少数用户市场用户开发软件的组织个人开发小组开发小组及大、中型开发机构软件规模小型中、小型大、中、小型软件工程与软件测试软件工程的一个重要分支软件生命周期需求设计开发测试运维软件测试:为了提高软件质量软件质量:是软件产品的特性可以满足用户的功能、非功能需求的能力。软件的质量管理(QualityManagement):是软件组织在软件产品生产中的质量策划、质量控制(QualityControl)、质量保证(QualityAssurance)和质量改进等等与质量有关的相互协调的活动。软件测试与软件质量基本概念和预备知识单元测试系统集成测试系统测试分类功能测试系统测试设计系统测试计划与自动化系统测试的执行验收测试软件可靠性软件质量成熟度模型软件测试前沿技术介绍课程概览掌握软件测试的基本概念理解测试对于软件质量保障的重要性了解软件测试技术理解需求、缺陷、测试用例和测试结果的生命周期模型理解单元测试、集成测试、系统测试和验收测试的过程模型掌握软件测试实践所需的技能了解软件测试自动化了解质量模型、能力成熟度模型、测试成熟度模型及测试过程改进模型培养学生进行测试前沿技术的调研能力课程目标教学形式分以下四个部分:课堂学习部分:由教师进行讲授研究性学习部分(本部分不占课内学时):采取课后自学方式,要求在充分调研的基础上,结合个人研究背景和兴趣选题,写作一篇专题报告课堂讨论部分:要求学生准备一次专题报告实践部分:学生课后独立完成和选题有关的技术实验教学要求KshirasagarNaik,软件测试与质量保证–理论与实践,电子工业出版社RonPatton,软件测试(第2版),机械工业出版社SrinivasanDesikan,软件测试原理与实践,机械工业出版社ScottTilley,云环境下得软件测试:迁移与执行,科学技术文献出版社教材和参考书软件测试基本概念和预备知识单元测试系统集成测试系统测试……课程内容提高质量的新方法包含了一个产品开发过程的各个方面–从需求分析到提交最终产品有效的质量过程必须注意更加专注于客户的需求采取措施持续地提高质量使度量过程与产品设计、开发融为一体将质量概念推广到整个组织的最底层建立一种对方法、过程高度关注的系统级的视图通过持续的质量提高来消除浪费PDCA(Plan-Do-Check-Action)循环TQC(TotalQualityControl)全面质量管理质量革命关于软件质量的5个观点抽象的观点:可以识别但很难定义用户的观点:是对目标的适应性->产品是否满足用户的需求?制造的观点:与规范的一致性产品的观点:依赖产品内在的特性基于价值的观点:依赖于客户愿意支付的货币数额软件质量定义软件质量的最具影响力的两个软件质量模型ISO9126CMM(CapabilityMaturityModel)软件能力成熟度模型软件测试领域的两个著名的过程模型测试过程改进模型(TPI)测试成熟度模型(TMM)软件质量什么是软件测试?“……以寻找错误为目的的执行程序的过程”迈尔斯G.J.软件测试的艺术,Wiley出版社,1979年“软件测试是一个以寻找错误为目的的分析和操作软件的过程”克里斯·布朗,格雷·柯布,罗伯特·卡伯特森,软件测试快速入门,2001年“…….发现错误”“…….及早发现错误”“…….及早发现错误并确保这些错误被修复”巴顿R.软件测试(第二版),2005年软件测试是为了度量和提高软件的质量,对测试软件进行工程设计、实施和维护的整个生命周期过程定义的不断发展软件测试的定义经历了不断的发展:狭义概念识别软件缺陷的过程,即实际结果与预期结果的不一致广义的概念指软件生存周期中所有的检查、评审和确认工作,其中包括了对分析、设计阶段,以及完成开发后维护阶段的各类文档、代码的审查和确认什么是软件测试软件测试与软件开发的关系这种专指测试程序代码,定义在编码之后的“测试”是一种狭义定义的测试“软件测试在程序开发之后”这句话对吗?广义的软件测试贯穿了整个软件开发过程,软件开发生命周期的各个阶段中都少不了相应的测试对软件质量提出了全方位要求功能方便灵活性能安全稳定可靠为什么要做软件测试软件逐渐成为人类社会经济活动和日常生活不可缺少的元素软件质量关乎着人员和公众的生命和安全环境的质量数据和信息的安全设备设施和系统的正常运行社会活动和社会秩序为什么要做软件测试软件测试通常包括确认(verification)和有效性验证(validation):确认指保证软件正确的实现了某一特定功能的一系列活动有效性验证指的是保证软件的实现满足了用户需求的一系列活动Verification&Validation两者很容易混淆,大多数的书籍的翻译都不正确Boehem简洁的给出了两者的区别:有效性验证:我们是否在构建一个正确的产品?
即构建出的产品是否满足客户的需求。确认:我么是否在正确地构建一个产品?
即构建出的产品是否和产品的设计相一致。Verification&Validation美国早期的航天事故原因查明:FORTRAN程序中“;”写成了“,”,编译系统将循环语句误认为赋值语句软件缺陷案例1软件质量问题的严重挑战软件质量问题引发的事故屡见不鲜1990年海湾战争中由于软件的缺陷,致使美国爱国者导弹打入自己的军营软件缺陷案例2加拿大的X射线自动治疗仪控制软件有设计缺陷,使得病人受到高强度射线照射,有多位病人致死、致伤软件缺陷案例3
2008北京奥运会票务系统软件缺陷案例4欧洲宇航局的阿丽亚娜5型(ARIANA501)运载火箭1996年首次发射因火箭导航软件故障发射失败软件缺陷案例5香港1997年回归后新机场航管系统未经试运行软件缺陷案例6
FIFA2012缺陷软件缺陷案例7软件失败的术语
缺点(defect)
故障(fault)
失败(failure)
事件(incident)
偏差(variance)
异常(anomaly)
问题(problem)
错误(error)
缺陷(bug)
软件缺陷是什么严重的情况不是全部失败最常用的术语软件缺陷的定义(RonPatton,软件测试第2版)软件未达到产品说明书中已经标明的功能;软件出现了产品说明书中指明不会出现的错误;软件未达到产品说明书中虽未指出但应当达到的目标;
软件功能超出了产品说明书中指明的范围;软件测试人员认为软件难以理解、不易使用,或者最终用户认为该软件使用效果不良。
*产品说明书:ProductSpecification或简称Spec软件缺陷是什么计算器的产品说明书声称它能准确无误地进行加减乘除运算,永远不会崩溃、锁死或停止反应。按下(+)键没有任何反应(规则1)狂敲键盘计算器停止接受输入(规则2)可以求平方根(规则3)电力不足时计算不正确(规则4)按键太小,“=”键布置的位置使其极不好按,明亮光下屏幕难以看清(规则5)软件缺陷是什么图1-1软件缺陷产生的原因分布软件缺陷产生的原因其他10%软件产品说明书(需求)56%编写代码7%设计27%启动Windows的计算器程序,输入“5,000-5=”(逗号不能少),观察结果。这是软件错误吗?为什么?课堂练习失败(failure):系统的外部行为编写与系统规范不一致时产生错误(error):系统的一个状态故障(fault):一个错误的裁定原因
故障->错误->失败缺陷:业界广泛使用的术语故障:研究者倾向使用失败、错误、故障和缺陷本书根据需求互换使用定义:在指定的环境、指定的时间内,软件系统无故障运行的概率软件可靠性的概念测试的目的就是发现软件中的各种缺陷测试只能证明软件存在缺陷,不能证明软件不存在缺陷测试可以使软件中缺陷降低到一定程度,而不是彻底消灭以较少的用例、时间和人力找出软件中的各种错误和缺陷,以确保软件的质量软件测试的目的基本形式是一个简单的<输入,期望结果>对无状态系统中,结果仅依赖当前的输入,测试用例的结构很简单(例:C语言编译器)面向状态的系统中,程序的结果依赖于系统当前的状态和当前的输入,一个测试用例可能由一组<输入,期望结果>序列组成(例:ATM)什么是测试用例(testcase)包含以下内容程序产生的数值:本地观察的输出远程存储、操作或观察的输出状态变化程序的状态变化数据库的状态变化数值序列或集合断言(Assertion):任何一个实体(程序、过程、人力专家、数据体)告知我们一个特定的测试(或测试集合)的期望结果理想情况下期望结果应在设计测试用例时计算出来,但例外时应通过对实际的测试结果进行检测,识别出期望的结果期望结果完备测试不能实现的原因:可能的输入范围之大以至于一个测试系统中不能完全使用所有的输入设计的问题太复杂以至于不能进行完备测试创建一个系统所有可能的执行环境是不太可能的完备测试的概念必须以一种系统的、谨慎的方式来选择输入域上的子集,以便得出尽可能准确和完备的推论测试的核心问题输入域D程序PD1D2P2P1应用输入观察输出确定测试的目标选择输入计算期望结果设定程序的执行环境执行程序分析测试结果测试活动单元测试集成测试系统测试验收测试业务验收测试(BusinessAcceptanceTest)用户验收测试(UserAcceptanceTest)回归测试:它的执行贯穿系统的生命周期,可以看成各个测试阶段的子阶段测试阶段开发组织用户需求和功能规范:正式和非正式的源代码输入和输出域操作特性:关于一个系统如何使用的定量描述,多用于可靠性评估故障模型基于故障的测试:错误猜测故障植入变异分析–以故障仿真的思想为基础测试用例选择的信息来源白盒测试:已知产品的详细设计过程,可以通过测试证明每种内部操作是否符合设计规格要求,所有内部成分是否已经通过检查
又称结构化测试(StructureBasedTesting或StructuralTesting)黑盒测试:把程序看作是一个不能打开的黑盒子,在不考虑程序内部结构和特性的情况下,在程序接口进行测试,它只检查程序功能是否按照需求规格说明书的规定正常使用,程序是否能适当地接收输入数据而产生正确的输出信息
又称功能测试或数据驱动测试、或基于规格说明的测试(SpecificationBasedTesting)白盒测试和黑盒测试测试计划时间进度和人员安排、风险管理测试范围的确定、测试数据的生成测试工具、方法的选择和工具开发测试完成标准影响资源分配的特殊考虑等测试设计
根据不同信息来源定义不同的测试目标,为每一个测试目标设计一个或多个测试用例测试计划和设计自动化测试的好处:提高测试人员的生成率回归测试有更好的覆盖减少测试阶段的周期减少软件维护的成本增加测试用例的有效性但是测试自动化不能取代手工测试!测试工具和自动化测试用例的生成(包括测试输入,标准输出,测试操作指令等)测试的执行与控制(包括单机与
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 磷肥生产过程中的质量监控与数据分析考核试卷
- 清代‘公务员手册’:汪辉祖官场智慧解析
- 2025型钢租赁合同范本
- 2025屋顶维修工程补充合同详情解析
- 2025大连市房屋租赁合同范本2
- 二零二五版抵押担保借款合同书
- 大学生职业规划大赛《大学数据科学与大数据技术专业》生涯发展展示
- 2025空调购销合同范文
- 2025年床上用品产品质量监督抽查实施细则
- 2025屋顶涂料施工合同模板
- DB31∕T 360-2020 住宅物业管理服务规范
- 2024-2030年中国街舞培训行业发展趋势及竞争格局分析报告
- 2024年度中国鲜食玉米行业发展前景分析简报
- 《电力建设工程施工安全管理导则》(NB∕T 10096-2018)
- 装修拆除安全协议书范本(2篇)
- 国家自然科学基金学科分类目录及代码表
- 射频同轴连接器基础知识及设计要点
- 员工食堂节能降耗措施
- 2024年山东省高考地理试卷真题(含答案逐题解析)
- 中国敏感性皮肤临床诊疗指南(2024版)
- DB41T2689-2024水利工程施工图设计文件编制规范
评论
0/150
提交评论