什么是软件测试讲解

上传人:我** 文档编号:116963737 上传时间:2019-11-17 格式:PPT 页数:33 大小:2.08MB
返回 下载 相关 举报
什么是软件测试讲解_第1页
第1页 / 共33页
什么是软件测试讲解_第2页
第2页 / 共33页
什么是软件测试讲解_第3页
第3页 / 共33页
什么是软件测试讲解_第4页
第4页 / 共33页
什么是软件测试讲解_第5页
第5页 / 共33页
点击查看更多>>
资源描述

《什么是软件测试讲解》由会员分享,可在线阅读,更多相关《什么是软件测试讲解(33页珍藏版)》请在金锄头文库上搜索。

1、软件测试相关知 识 大纲 1、什么是软件测试 2、软件测试工作内容和流程 3、测试方法 案例 千年虫问题 l20世纪70 年代,人们所使用的计算机存储空间很小,程序员为 了节省存储空间,将存储日期只存储2位,如1974存储为74。工 资系统经常依赖于日期的处理,因此他们节省了大量的空间,他 们知道在2000年到来时会出现问题,比如银行在计算利息时, 用当前的日期(如“2000年1月1日”)减去客户的存款日期(如 “1974年1月1日”),如果年利息为3%,那么,每一百元银行应 付给客户78的利息。如果与年份存储问题没有得到纠正,其存 款年数就变为-74年,客户反而应该付给银行利息了,这显然是

2、不合理的。但他们认为在20多年内程序肯定会更新或升级,而 且眼前的任务比计划遥不可及的未来更加重要。为此,全世界付 出了数千万美元的代价来更换或升级类似程序以解决千年虫的问 题,特别是金融、保险、军事、科学、商务等领域,花费了大量 的人力,物力对已有的各种各样的程序进行检查,修改和更新。 Intel 奔腾处理器芯片缺陷 l在pc机的“计算器”中输入以下模式:(4195835/3145727)X 3145727 4195835 l如果答案不为0,就说明计算机使用的是带有浮点除法软件缺陷的老式Intel奔腾 处理器。 l1994年,美国佛吉利亚州Lynchburg学院的以为博士在用奔腾PC机解决一

3、个除 法问题时,发现了这个问题。他将发现的问题放在internet上,引发了一场风暴 ,成千上万的人发现了同样的问题,以及其他的出错误结果的情形。万幸的是 ,这种情况很少出现,仅在精度要求很高的数学,科学和工程计算中才会出现 。 l这个事件引起人们关注的原因并不是这个软件缺陷,而是Intel公司解决问题态 度。 lIntel公司的测试工程师在芯片发布之前已经发现了这个问题,但管理层认为还 没有严重到一定要修正,甚至公开的程度。 l当这个软件缺陷被发现时,Intel公司通过新闻发布和公开声明试图弱化问题的 严重性。 l当压力增大时,Intel承诺可以更换有问题的芯片,单要求用户必须证明自己受 到

4、缺陷的影响。 l结果舆论哗然,internetshang 充斥着愤怒的客户要求Intel公司解决问题呼声, 新闻报道将Intel公司描绘成不诚信者。最后,Intel公司为自己处理软件缺陷的 行为道歉并拿出4亿多美元来支付更换芯片的费用。由此可见,一个小小的软件 缺陷造成的损失可能有多大。 软件测试背景 l早期:软件开发过程中,将测试等同于“调试”。目的是纠正软件 中已经知道的故障,通常由开发人员自己完成这部分的工作。常 常是等到形成代码,产品已经基本完成时,才进行测试。 l直到1957年,软件测试区别于调试,成为一种发现软件缺陷的 活动。 l1972年在北卡罗来纳大学举行了首届软件测试正式会议

5、。 l1975年在IEEE上发表了“测试数据选择的原理”的文章,软件测 试才被确定为一种研究方向 。 l1979年Glen ford Myers的软件测试艺术中,定义“测试是为 发现错误而执行的一个程序或者系统的过程”测试过程 发展的里程碑 l软件测试背景,国外软件测试人员与开发人 员的比例 l微软的开发工程师与测试工程师的比例12, 国内一般公司是61; 软件测试概念 l软件测试就是在软件投入运行前,对软件需 求分析、设计规格说明和编码的最终复审, 是软件质量保证的关键步骤。软件测试是为 了发现错误而执行程序的过程。 软件测试阶段 l需求测试 l单元测试 l集成测试 l确认测试 l系统测试

6、l回归测试 l验收测试 l需求测试:需求规格说明说,概要设计文档,详细 设计文档,是否描述不准确,需求定义模糊等问题 ; l单元测试:又叫“模块测试”检测程序模块中有无故 障存在 l集成测试:发生在模块与模块、接口 l确认测试:按需求说明书的功能要求 l系统测试:在软、硬件、网络环境下 l回归测试:重复执行集成和系统测试的测试用例 l验收测试:按照项目任务书或合同、供需双方约定 的验收依据文档进行的对整个系统的测试与评审, 决定是否接收或拒收系统。 “树上有十只鸟,开枪打死一 只,还剩几只?” 需求测试单元测试 回归测试验收测试 集成测试 系统测试 软件测试流程: lV模型和W模型 软件测试模

7、型 lV模型:强调软件开发的协作和速度,反映测试活 动与分析设计关系,清楚描述了测试阶段和研发过 程间各阶段对应关系 l局限性:忽视测试活动对需求分析,系统设计等活 动的验证和确认功能 lW模型:双V模型组成,分别代表测试和开发过程强 调测试伴随整个软件开发周期,测试开发同步进行 ,有利于尽早发现问题,测试不仅是程序,包括需 求和设计 l优点:有利于及时了解项目难度和测试风险,及早 制定应对措施,显著减少总体测试实践,加快项目 进度 V模型软件测试 W模型软件测试 软件测试模型 lV模型:强调软件开发的协作和速度,反映测试活 动与分析设计关系,清楚描述了测试阶段和研发过 程间各阶段对应关系 l

8、局限性:忽视测试活动对需求分析,系统设计等活 动的验证和确认功能 lW模型:双V模型组成,分别代表测试和开发过程强 调测试伴随整个软件开发周期,测试开发同步进行 ,有利于尽早发现问题,测试不仅是程序,包括需 求和设计 l优点:有利于及时了解项目难度和测试风险,及早 制定应对措施,显著减少总体测试实践,加快项目 进度 软件测试范围 l功能测试 l易用性测试 l兼容性测试 l负载压力测试 l安装卸载测试 l安全性测试 l接口测试 l数据库测试 软件测试方法 l静态测试 l动态测试 l黑盒测试 l白盒测试 l静态测试:主要是查看的方法,包括代码检 查、静态结构分析、代码质量度量等 ;如: 单元测试。

9、 l动态测试:主要是当软件系统在模拟的或真 实的环境中执行之前、之中和之后,对软件 系统行为的分析:如:人工进行的系统测试 ,自动化测试 黑盒、白盒测试 l黑盒测试:检查程序功能是否按照规格说明书的规 定正常使用,程序是否能接收输入数据而产生正确 的输出信息,并保持数据库或文件的完整性; l在测试流程中的应用:确认测试、系统测试、验收 测试 ; l白盒测试:基于覆盖全部代码、分支、路径、条件 ,使用程序设计的控制结构导出测试用例 l测试流程中应用:单元测试,集成测试 白盒测试帮助测试人员增大代码覆盖率,提高代码质 量 黑盒测试发现错误类型 l功能不对或遗漏 l界面错误 l数据结构或外部数据库访

10、问错误 l性能问题 l初始化和终止错误 黑盒测试方法 l等价类划分法:(做计算器程序)时,在两数相加 中,1+1,1+2,1+9,1+999 l边界值分析法:如果软件接受用户输入1-1000的数 字,该如何输入? l错误推测法:列举出程序中所有可能的错误和容易 发生错误的特殊情况。 l例子:设计一些非法、错误、不正确和垃圾数据进 行输入测试是很有意义的。 因果图法: 投币机的例子: 有一个处理单价为1元5角钱的盒装饮料的自动售货机软件。若投 入,若投入1元5角钱硬币,按下“可乐”或“雪碧”,相应的饮料酒 送出来。若投入的是2元硬币,在送出饮料的同时退还5角硬币 。 l原因:(1)投入1元5角硬

11、币;(2)投入2元硬币 (3)按“可乐”按钮; (4)按“雪碧”按钮 l中间状态:(1)已投币; (2)已按钮 l结果:(1)退还5角硬币; (2)送出“可乐”饮料 (3)送出“雪碧”饮料。 场景法 进入审计系统,某用户设定策略,有触发策略的记录,产生报警功能的用 例。 l基本流:本用例的开始,GNPSJ软件处于准备就绪状态。 验证用户:输入用户名、密码,验证码 添加策略窗口 在添加策略的必填项,都输入正确且完毕 执行策略生效 触发策略,查询到报警 本用例结束时,GNPSJ软件又回到准备就绪状态。 l备选流1:不存在该用户 l备选流2:用户验证失败 l备选流3:添加策略的必填项没有完全输入,出

12、现输入提示 l备选流4:策略没有生效 l备选流5:策略成功下发,未触发策略,但无报警记录。 问题: l有了黑盒测试为什么还要白盒测试? l系统测试和验收测试内容几乎是相同的,为 什么还要验收测试? 白盒测试发现错误类型 l检查代码和设计的一致性 l代码对标准的遵循和可读性 l代码逻辑表达的正确性 l代码结构合理性 l程序编写与编写标准符合性 l程序中不安全、不明确和模糊部分 l编程风格 白盒测试方法 l代码检查法 l逻辑覆盖法 l基本路径覆盖法 代码检查法 l代码检查法的方式 l桌面检查:程序员对源文件代码进行分析、 检查并补充相关文档,发现程序中错误的过 程 l走查:程序员和测试员组成的审查

13、小组通过 逻辑运行程序发现问题的过程 l代码审查:程序员和测试员组成的审查小组 通过阅读、讨论、分析技术对程序进行静态 分析的过程 逻辑覆盖法 l语句覆盖法:选择足够多的测试数据,使得程序中 的每个执行语句至少执行一次 l判定覆盖法:设计足够多的测试用例,使得程序中 每个判定至少获得一次真和假 l条件覆盖法: 设计足够多的测试用例,使得程序中 每个判定包含的每个条件的可能取值都至少满足一 次 l条件判定组合覆盖法:设计足够多的测试用例,使 程序中每个判定包含的每个条件所有情况至少出现 一次,且每个判定本身的判定结果也至少出现一次 l多重条件覆盖法:条件组合 基本路径覆盖法 l画出程序控制流图 l计算程序环路复杂度 l导出基本路径集 l根据03中的独立路径,设计测试用例输入数 据和输出数据 问题 l提问: 展示测试计划、测试用例

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

当前位置:首页 > 高等教育 > 大学课件

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