什么是软件测试_第1页
什么是软件测试_第2页
什么是软件测试_第3页
什么是软件测试_第4页
什么是软件测试_第5页
已阅读5页,还剩28页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

什么是软件测试第一页,共三十三页,2022年,8月28日大纲1、什么是软件测试2、软件测试工作内容和流程3、测试方法第二页,共三十三页,2022年,8月28日案例第三页,共三十三页,2022年,8月28日千年虫问题20世纪70年代,人们所使用的计算机存储空间很小,程序员为了节省存储空间,将存储日期只存储2位,如1974存储为74。工资系统经常依赖于日期的处理,因此他们节省了大量的空间,他们知道在2000年到来时会出现问题,比如银行在计算利息时,用当前的日期(如“2000年1月1日”)减去客户的存款日期(如“1974年1月1日”),如果年利息为3%,那么,每一百元银行应付给客户78的利息。如果与年份存储问题没有得到纠正,其存款年数就变为-74年,客户反而应该付给银行利息了,这显然是不合理的。但他们认为在20多年内程序肯定会更新或升级,而且眼前的任务比计划遥不可及的未来更加重要。为此,全世界付出了数千万美元的代价来更换或升级类似程序以解决千年虫的问题,特别是金融、保险、军事、科学、商务等领域,花费了大量的人力,物力对已有的各种各样的程序进行检查,修改和更新。第四页,共三十三页,2022年,8月28日Intel奔腾处理器芯片缺陷在pc机的“计算器”中输入以下模式:(4195835/3145727)X3145727—4195835如果答案不为0,就说明计算机使用的是带有浮点除法软件缺陷的老式Intel奔腾处理器。1994年,美国佛吉利亚州Lynchburg学院的以为博士在用奔腾PC机解决一个除法问题时,发现了这个问题。他将发现的问题放在internet上,引发了一场风暴,成千上万的人发现了同样的问题,以及其他的出错误结果的情形。万幸的是,这种情况很少出现,仅在精度要求很高的数学,科学和工程计算中才会出现。这个事件引起人们关注的原因并不是这个软件缺陷,而是Intel公司解决问题态度。Intel公司的测试工程师在芯片发布之前已经发现了这个问题,但管理层认为还没有严重到一定要修正,甚至公开的程度。当这个软件缺陷被发现时,Intel公司通过新闻发布和公开声明试图弱化问题的严重性。当压力增大时,Intel承诺可以更换有问题的芯片,单要求用户必须证明自己受到缺陷的影响。结果舆论哗然,internetshang充斥着愤怒的客户要求Intel公司解决问题呼声,新闻报道将Intel公司描绘成不诚信者。最后,Intel公司为自己处理软件缺陷的行为道歉并拿出4亿多美元来支付更换芯片的费用。由此可见,一个小小的软件缺陷造成的损失可能有多大。第五页,共三十三页,2022年,8月28日软件测试背景早期:软件开发过程中,将测试等同于“调试”。目的是纠正软件中已经知道的故障,通常由开发人员自己完成这部分的工作。常常是等到形成代码,产品已经基本完成时,才进行测试。直到1957年,软件测试区别于调试,成为一种发现软件缺陷的活动。1972年在北卡罗来纳大学举行了首届软件测试正式会议。1975年在IEEE上发表了“测试数据选择的原理”的文章,软件测试才被确定为一种研究方向。1979年GlenfordMyers的《软件测试艺术》中,定义“测试是为发现错误而执行的一个程序或者系统的过程”————测试过程发展的里程碑第六页,共三十三页,2022年,8月28日软件测试背景,国外软件测试人员与开发人员的比例微软的开发工程师与测试工程师的比例1∶2,国内一般公司是6∶1;第七页,共三十三页,2022年,8月28日软件测试概念软件测试就是在软件投入运行前,对软件需求分析、设计规格说明和编码的最终复审,是软件质量保证的关键步骤。软件测试是为了发现错误而执行程序的过程。第八页,共三十三页,2022年,8月28日软件测试阶段需求测试单元测试集成测试确认测试系统测试回归测试验收测试第九页,共三十三页,2022年,8月28日需求测试:需求规格说明说,概要设计文档,详细设计文档,是否描述不准确,需求定义模糊等问题;单元测试:又叫“模块测试”检测程序模块中有无故障存在集成测试:发生在模块与模块、接口确认测试:按需求说明书的功能要求系统测试:在软、硬件、网络环境下回归测试:重复执行集成和系统测试的测试用例验收测试:按照项目任务书或合同、供需双方约定的验收依据文档进行的对整个系统的测试与评审,决定是否接收或拒收系统。第十页,共三十三页,2022年,8月28日“树上有十只鸟,开枪打死一只,还剩几只?”第十一页,共三十三页,2022年,8月28日需求测试单元测试回归测试验收测试集成测试系统测试第十二页,共三十三页,2022年,8月28日软件测试流程:V模型和W模型第十三页,共三十三页,2022年,8月28日软件测试模型V模型:强调软件开发的协作和速度,反映测试活动与分析设计关系,清楚描述了测试阶段和研发过程间各阶段对应关系局限性:忽视测试活动对需求分析,系统设计等活动的验证和确认功能W模型:双V模型组成,分别代表测试和开发过程强调测试伴随整个软件开发周期,测试开发同步进行,有利于尽早发现问题,测试不仅是程序,包括需求和设计优点:有利于及时了解项目难度和测试风险,及早制定应对措施,显著减少总体测试实践,加快项目进度第十四页,共三十三页,2022年,8月28日V模型软件测试第十五页,共三十三页,2022年,8月28日

W模型软件测试第十六页,共三十三页,2022年,8月28日软件测试模型V模型:强调软件开发的协作和速度,反映测试活动与分析设计关系,清楚描述了测试阶段和研发过程间各阶段对应关系局限性:忽视测试活动对需求分析,系统设计等活动的验证和确认功能W模型:双V模型组成,分别代表测试和开发过程强调测试伴随整个软件开发周期,测试开发同步进行,有利于尽早发现问题,测试不仅是程序,包括需求和设计优点:有利于及时了解项目难度和测试风险,及早制定应对措施,显著减少总体测试实践,加快项目进度第十七页,共三十三页,2022年,8月28日软件测试范围功能测试易用性测试兼容性测试负载压力测试安装卸载测试安全性测试接口测试数据库测试第十八页,共三十三页,2022年,8月28日软件测试方法静态测试动态测试黑盒测试白盒测试第十九页,共三十三页,2022年,8月28日静态测试:主要是查看的方法,包括代码检查、静态结构分析、代码质量度量等;如:单元测试。动态测试:主要是当软件系统在模拟的或真实的环境中执行之前、之中和之后,对软件系统行为的分析:如:人工进行的系统测试,自动化测试第二十页,共三十三页,2022年,8月28日黑盒、白盒测试黑盒测试:检查程序功能是否按照规格说明书的规定正常使用,程序是否能接收输入数据而产生正确的输出信息,并保持数据库或文件的完整性;在测试流程中的应用:确认测试、系统测试、验收测试;白盒测试:基于覆盖全部代码、分支、路径、条件,使用程序设计的控制结构导出测试用例测试流程中应用:单元测试,集成测试白盒测试帮助测试人员增大代码覆盖率,提高代码质量第二十一页,共三十三页,2022年,8月28日黑盒测试发现错误类型功能不对或遗漏界面错误数据结构或外部数据库访问错误性能问题初始化和终止错误第二十二页,共三十三页,2022年,8月28日黑盒测试方法等价类划分法:(做计算器程序)时,在两数相加中,1+1,1+2,1+9,1+999边界值分析法:如果软件接受用户输入1-1000的数字,该如何输入?

错误推测法:列举出程序中所有可能的错误和容易发生错误的特殊情况。例子:设计一些非法、错误、不正确和垃圾数据进行输入测试是很有意义的。第二十三页,共三十三页,2022年,8月28日因果图法:投币机的例子:有一个处理单价为1元5角钱的盒装饮料的自动售货机软件。若投入,若投入1元5角钱硬币,按下“可乐”或“雪碧”,相应的饮料酒送出来。若投入的是2元硬币,在送出饮料的同时退还5角硬币。原因:(1)投入1元5角硬币;(2)投入2元硬币(3)按“可乐”按钮;(4)按“雪碧”按钮中间状态:(1)已投币;(2)已按钮结果:(1)退还5角硬币;(2)送出“可乐”饮料(3)送出“雪碧”饮料。第二十四页,共三十三页,2022年,8月28日场景法进入审计系统,某用户设定策略,有触发策略的记录,产生报警功能的用例。基本流:本用例的开始,GNPSJ软件处于准备就绪状态。验证用户:输入用户名、密码,验证码添加策略窗口在添加策略的必填项,都输入正确且完毕执行策略生效触发策略,查询到报警本用例结束时,,GNPSJ软件又回到准备就绪状态。备选流1:不存在该用户备选流2:用户验证失败备选流3:添加策略的必填项没有完全输入,出现输入提示备选流4:策略没有生效备选流5:策略成功下发,未触发策略,但无报警记录。第二十五页,共三十三页,2022年,8月28日问题:有了黑盒测试为什么还要白盒测试?系统测试和验收测试内容几乎是相同的,为什么还要验收测试?第二十六页,共三十三页,2022年,8月28日白盒测试发现错误类型检查代码和设计的一致性代码对标准的遵循和可读性代码逻辑表达的正确性代码结构合理性程序编写与编写标准符合性程序中不安全、不明确和模糊部分编程风格第二十七页,共三十三页,2022年,8月28日白盒测试方法代码检查法逻辑覆盖法基本路径覆盖法第二十八页,共三十三页,2022年,8月28日代码检查法代码检查法的方式桌面检查:程序员对源文件代码进行分析、检查并补充相关文档,发现程序中错误的过程走查:程序员和测试员组成的审查小组通过逻辑运行程序发现问题的过程代码审查:程序员和测试员组成的审查小组通过阅读、讨论、分析技术对程序进行静态分析的过程第二十九页,共三十三页,2022年,8月28日逻辑覆盖法语句覆盖法:选择足够多的测试数据,使得程序中的每个执行语句至少执行一次判定覆盖法:设计足够多的测试用例,使得程序中每个判定至少获得一次真和假条件覆盖法:设计足够多的测试用例,使得程序中每个判定包含的每个条件的可能取值都至少满足一次条件判定组合覆盖法:设计足够多

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论