【文档说明】软件测试与质量保障教学-概述课件.ppt,共(64)页,3.047 MB,由小橙橙上传
转载请保留链接:https://www.ichengzhen.cn/view-45295.html
以下为本文档部分文字说明:
软件测试与质量保障华中农业大学信息学院赵良公园拆墙透绿,宝玉出门俏人伤4Java+3G+物联网软件工程师3G-iOS软件测试工程师国际软件测试工程师C++国际软件工程师.NET+3G云计算软件工程师PHP/WEB3.0互联网工程师3G-Android
软件工程师嵌入式开发工程师数字艺术UID设计工程师软件测试—IT行业最具前景职位120万:5万3784.99亿元30~40万2:11:8教学安排教学进度安排总学时:40学时课堂教学:24学时实验教学:16学时成绩评定平时成绩:15%期末考试成绩:70%实验成绩:15%答
疑方式:电话:15527838508邮件:zhaoliang103@163.com教学目的掌握软件测试的基本理论和基本方法熟练使用一些常用的测试工具进一步增强软件质量管理的意识,培训测试思维能力设计
测试用例,并能运用测试工具进行测试经典著作推荐BillHetzel,《软件测试完全指南》(CompleteGuideofSoftwareTesting)GlenfordJ.Myers代表论著《TheArtofSoftware
Testing》PaulC.Jorgensen,SoftwareTesting——ACraftsman’sApproach《软件测试》第1讲软件测试基础软件测试定义、目的、原则软件测试过程模型测试人员的素质什么是软件一个“臭虫”引
发的惨案案例1美国迪斯尼公司的狮子王游戏软件bug兼容性问题案例2美国航天局火星登陆事故系统测试衔接问题案例3跨世纪“千年虫”问题案例4爱国者导弹防御系统炸死自家人系统时钟误差积累案例5许霆曾因ATM故障盗取17
万判刑五年案例6温甬动车事故。。。。。。。。。。。“臭虫”的由来人们将软件错误称为“臭虫”,这是因为第一个有记载的电脑故障是由线路上的臭虫造成的。就是我们通常称的“BUG”。软件失败的术语描述缺点(defect)偏差(variance)谬误(fault)失败(failure)问题(probl
em)矛盾(inconsistency)错误(error)特殊(feature)毛病(incident)缺陷(bug)异常(anomaly)1.1软件可靠性软件设计故障与计算机硬件设计故障而引发的系统失效的比例大
约是:10:1运行软件的可驻留故障密度(每千行代码的故障数目):——要求很高的关键财务或财产软件为:每千行代码1~10个故障——关键的生命软件为:每千行代码0.01~1个故障软件失败的几个定义错误:人类会犯错误。缺陷:缺陷是错误的结果。失效
:当缺陷执行时会发生失效。事故:当出现失效时,可能会也可能不会呈现给用户。(1)缺陷的定义缺陷:最终产品同用户的期望不一致。功能错误功能遗漏超出需求的部分性能不符合要求缺陷容易被找出吗?软件的特殊性决定了缺陷不易看到,即“看不到”;
发现了缺陷,但不易找到问题发生的原因所在,即“看到但是抓不到”。软件缺陷产生的原因编制说明书55%设计26%其他4%编写代码15%编制说明书设计编写代码其他软件测试员的目标发现软件缺陷1.2软件测试的定义根据侧重点的不同,主要有三种观点:1)Myers认为
“软件测试是为了发现错误而执行程序的过程”,明确提出了“寻找错误”是测试目的。2)1983年IEEE对软件测试的定义“使用人工或自动手段运行或测定某个系统的过程,其目的在于检验它是否满足规定的需求或是弄清预期结果与实际结果之间的差别”。明确地提出软件测试以检验是
否满足需求为目标。3)从软件质量保证的角度看软件测试是一种重要的软件质量保证活动测试过程中的活动包括“分析”软件和“运行”软件。也有人认为软件测试就是在软件投入运行前,对软件需求分析、设计规格说明和编码的最终
复审,是软件质量保证的关键步骤。Myers软件测试目的(1)测试是程序的执行过程,目的在于发现错误;(2)一个好的测试用例在于能发现至今未发现的错误;(3)一个成功的测试是发现了至今未发现的错误的测试。测试的“
成功”与“失败”就在于:能否发现错误!注意:测试不能表明软件中不存在错误,它只能说明软件中存在错误。测试真正的目的通过对软件错误的原因和分布进行归纳,来发现并排除当前软件产品的缺陷,对在需求和设计过程中存在的问题查缺
补漏,从而确保软件产品的质量。1.3软件测试的原则1.所有的测试都应追溯到用户的需求系统中最严重的错误是那些导致程序无法满足用户需求的错误。2.尽早地和不断地进行软件测试需求和设计时出现的缺陷占很大的比例;缺陷的修改成本
随着阶段的推移将急剧上升;缺陷具有放大的特点;问题发现越早,解决问题的代价就越小。缺陷存在放大趋势3.不可能完全的测试输入量太大执行路径太多软件测试最致命的缺陷就是:不不能进行彻底的测试为什么不可能做穷举测试循环次数012………20独立路径数51+52+53+……+521≈10
14每个测试用例(考虑、执行、验证结果)5分钟共需测试时间10亿年M1D1D2D3D4M2M3M4M5M6M7D5<=20次为什么不可能做穷举测试若X、Y为所有可能的整数,在字长32位机上测试:X1、Y1
Z1...Xn、YnZn测试次数:n=232232=2641.841019程序PXYZ输入输出4.Pareto原则Pareto原则暗示着测试发现的错误中的80%很可能起源于程序模块中的20%。5.软件缺陷的寄生虫性找到的软件缺陷越多,就说明软件缺陷越多原因:•程序员的
疲倦•程序员往往犯同样的错误•某些软件的缺陷其实是大灾难的征兆6.避免测试自己的程序程序员轻易不会承认自己写的程序有错误;程序员的测试思路有局限性,做测试时很容易受到编程思路的影响;程序员测试不具有典型性7.设计周密的测试用例软件测试的本质就是针对要测试的内容
确定一组测试用例。测试用例至少应包括:执行测试用例前,应满足的前提条件输入预期输出设计测试用例时,应当包括合理的输入条件和不合理的输入条件。8.回归测试程序修改后必须进行回归测试,避免引入新
的错误。9.严格执行测试计划,排除测试的随意性。10.确认BUG的有效性对测试错误结果一定要有一个确认的过程。有时候测试人员提交的BUG并不是真正的BUG。11.妥善保存测试计划,测试用例,出错统计和最终分析报告,为维护提供方便。
第2讲测试模型与过程本讲内容测试层次的传统观点软件测试模型软件测试流程2.1测试层次的传统观点瀑布模型需求规格说明概要设计详细设计编码单元测试集成测试系统测试瀑布式生命周期2.2软件测试模型V模型
W模型H模型X模型测试前置模型(测试驱动模型)V模型需求分析概要设计详细设计编码单元测试集成测试系统测试验收测试需求测试需求分析功能测试概要设计设计测试详细设计单元测试编码系统测试验收确认测试确认集成测试集成W模型H模型测试准备测试执行测试流程其他流程测试就绪点X模型测试
模型工具配置执行测试编码完成执行测试执行测试工具配置测试设计测试设计工具配置集成1...n探索性测试执行测试程序片断A程序片断B判断2.3软件测试流程(1)制定测试计划测试计划是对每个产品,或是对各个开发阶段的产品开展测试的策略。一个完整的测试计划应该包含以下
几个方面:对测试范围的界定;风险的确定;资源的规划;时间表的制定;(2)测试设计测试设计阶段要设计测试用例和测试过程,要保证测试用例完全覆盖测试需求。测试设计阶段最重要的是如何将测试需求分解,如何设计测试用例。(3
)测试开发1.准备测试环境(1)测试技术准备(2)配置软件、硬件环境(3)人员2.获得测试数据(1)正常事务的测试(2)使用无效数据的测试3.测试脚本所谓脚本,是完整的一系列相关终端的活动。一般测试脚本有5个级别:单元
脚本并发脚本集成脚本回归脚本强度/性能脚本4.辅助测试工具优秀的办公处理软件错误跟踪系统自动测试工具软件分析工具好的操作系统多样化平台(4)测试执行测试执行的过程由4个部分组成:输入:要完成工作所必须的入口标准或可交付的结果。执行过程:从输入到输出的过程或工作任务。检
查过程:确定输出是否满足标准的处理过程。输出:推出标准或工作流程产生的可交付的结果。(5)评估测试软件测试的主要评测方法包括:覆盖评测质量评测性能评测1)覆盖评测覆盖指标提供了“测试的完全程度如何?”这一问题的答案。最常用的覆盖评测是基于需求的测试覆盖和基于代码的测试覆盖。2)质
量评测在测试过程中,已发现缺陷的评估提供了最佳的软件质量指标。3)性能评测评估测试对象的性能时,侧重于获取与行为相关的数据,如响应时间、事务处理数、内存占用率、操作可靠性等。2.2软件测试人员的素质要求基本素质要求1.责任心包括坚持原则2
.沟通能力用户、项目组3.团队精神4.专注力至少需要耐心和记忆力5.洞察力来源于经验、逻辑思维能力和敏感度:6.坚持不懈7.怀疑精神、探索精神8.创造性测试人必备的素质三心:责任心,细心,耐心二意:服务意识,
团队合作意识专业素质有竞争力的测试人员要具有三方面的技能:计算机专业技能测试专业技能软件编程技能(基础)应该思考的问题测试是开发后期的一个阶段。软件测试要求技术不高,比编程容易多了,随便找一个人就可以了。测试要执行所有可能的输入。有时间就多测试些,没时间就少测试些
。软件测试是测试人员的事,与开发人员无关调试和测试是一样的。测试就是运行一下软件看看结果对不对。