软件测试检查技术基础教学教程(第2版)~习题内容答案.doc
-
资源ID:563101
资源大小:307.50KB
全文页数:15页
- 资源格式: DOC
下载积分:8金币
快捷下载
![游客一键下载](/images/hot.gif)
会员登录下载
微信登录下载
三方登录下载:
微信扫一扫登录
友情提示
2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
|
软件测试检查技术基础教学教程(第2版)~习题内容答案.doc
.第一章 软件测试理论 一、选择题 1、C 2、A 3、D 4、B 5、D 6、D 7、B 8、B 二、简答题 1 参考答案: 软件测试是伴随着软件的产生而产生的。在软件行业发展初期,没有系统意义上的软 件测试,更多的是一种类似调试的测试,测试用例的设计和选取也都是根据测试人员的经 验随机进行的,大多数测试的目的是为了证明系统可以正常运行。 到了20世纪70年代以后,很多测试理论和测试方法应运而生,逐渐形成了一套完整 的体系。在产业界,从20世纪70年代后期到20世纪80年代中期,很多软件企业成立了 QA或者SQA部门。后来QA的职能转变为流程监控(包括监控测试流程),而测试(Testing) 则从QA中分离出来成为独立的组织职能。 到了 20 世纪 80 年代初期,一些软件测试的基础理论和实用技术开始形成,软件测试 作为软件质量保证(SQA)的主要职能,包含软件质量评价的内容。软件测试已有了行业 标准(IEEE/ANSI ) 。 在我国,软件测试目前还没有形成一个真正的产业,尚处于起步阶段。 但是,在国内,现在在软件测试行业中各种软件测试的方法、技术和标准都还在探索 阶段。 总之,国内软件测试行业与一些发达国家相比还存在一定的差距。 2. 参考答案: 软件缺陷造成的修复费用随着时间的推移呈指数级地增长,如下图所示。 3 参考答案: 软件测试的复杂性体现在: 不可能对程序实现完全测试。 杀虫剂现象,即为了克服被测试软件的免疫力,软件测试员必须不断编写新的测 试程序,对程序的各个部分进行不断测试,以避免被测试软件对单一的测试程序 具有免疫力而使软件缺陷不被发现。 软件测试的代价不容易掌握,因为随着测试量的增加,测试成本将呈几何数级上 升,而软件缺陷数量降低到某一数值之后将没有明显的变化,寻求最优测试点, 掌握好测试工作量是至关重要的。 在实际操作过程中,测试人员要进行正确的判断,合理的取舍,根据风险分析来.决定哪些故障需要修复,哪些故障可以不修复,即并不是所有的软件缺陷都需要 被修复。 4 参考答案: 软件测试是软件生命期中费用消耗最大的环节。测试费用除了测试的直接消耗外,还 包括其他的相关费用。影响测试费用的主要因素有: (1) 软件的功能,软件产品需要达到的标准决定了测试的数量。对于那些至关重要 的系统必须进行更多的测试。 (2) 目标用户的数量,一个系统的目标用户数量的多少也在很大程度上影响了测试 必要性的程度。 (3) 潜在缺陷造成的影响 在考虑测试的必要性时,还需要将系统中所包含的信息价值考虑在内。因此我们应该 从经济方面考虑,投入与经济价值相对应的时间和金钱去进行测试。 (4) 开发机构的业务能力 一个没有标准和缺少经验的开发机构很可能会开发出充满错误的软件系统。而一个建 立了标准和有很多经验的开发机构开发出来的软件系统中的错误将会少很多。 (5) 测试的时机 测试量会随时间的推移发生改变,在一个竞争很激烈的市场里,争取时间可能是制胜 的关键。测试量应该针对合适的目标进行调整。 5 参考答案: 软件测试是贯穿于整个软件开发的过程。在软件开发的各个阶段,测试人员必须制订 本阶段的测试方案,把软件开发和测试活动集成到一起,如下图所示。 交 交 交 交 交 交 交 交 交 交 交 交 交 交 交 交 交 交 交 交 交 交 交 交 交 交 交 交 交 交 交 交 交 交 交 交 交 交 交 交 交 交 交 交 交 交 交 交 交 交 交 交 交 交 交 交 交 交 交 交 交 交 交 交 交 交 交 交 交 交 交 交 6 参考答案: 软件测试从测试计划编写到测试实施,需要经过一系列的过程。这些测试按软件从编 写到交付的各个阶段的先后顺序可分为:单元测试、集成测试、确认(有效性)测试、系 统测试和验收(用户)测试 5个阶段,如下图所示。.交 交 交 交 交 交 交 交 交 交 交 交 交 交 交 交 交 交 交 交 交 交 交 交 交 交 交 交 交 交 交 交 交 交 交 交 交 交 交 交 交 交 交 交 交 交 交 交 交 交 交 交 交 交 交 交 交 交 交 交 交 交 交 交 交 交 交 交 交 交 交 交 交 交 交 交 交 交 交 交 交 交 交 交 交 交 交 交 7 参考答案: 通常软件人员应具备如下素质: (1) 良好的沟通能力 (2) 掌握比较全面的技术 (3) 充分的自信心 (4) 足够的耐心和责任感 (5) 要具备怀疑精神和学习能力 (6) 超强的记忆力和良好的洞察力 第 2章 白盒测试技术 一、选择题 1、B 2、C 3、A 4、D 5、B 6、B 7、C 8、C 9、A 10、A 三、简答题 1 参考答案: 白盒测试方法可以分为两大类:静态测试方法和动态测试方法,动态测试方法是设计 一系列的测试用例,通过输入预先设定好的数据来动态地运行程序,从而达到发现程序错 误的目的。静态测试方法则不在计算机上实际执行程序,而是以一些人工的模拟技术或使 用测试软件对软件进行分析和测试。动态测试方法主要有逻辑覆盖、独立路径测试等。静 态测试方法主要有静态结构分析、静态质量度量、代码检查方法等。 2 参考答案: 根据不同的测试要求,覆盖测试可以分为语句覆盖、判定覆盖、条件覆盖、判定条.件覆盖、条件组合覆盖和路径覆盖。 语句覆盖就是设计足够多的测试用例,使得被测试程序中的每条可执行语句至少被执 行一次。 判定覆盖又称分支覆盖,就是设计足够多的测试用例,使得被测试程序中的每个判断 的“真” 、 “假”分支至少被执行一次。 条件覆盖是指设计足够多的测试用例,使得被测试程序中的每个判断语句中的每个逻 辑条件的可能值至少被满足一次。或者说设计足够多的测试用例,使得被测试程序中的每 个逻辑条件的可能值至少被满足一次。 判定/条件覆盖是指设计足够多的测试用例,使得被测试程序中的每个判断本身的判定 结果(真假)至少满足一次,同时,每个逻辑条件的可能值也至少被满足一次。即同时满 足100%判定覆盖和100%条件覆盖的标准。在保证完成要求的情况下,测试用例的数目越少 越好。 条件组合覆盖是指设计足够多的测试用例,使得被测试程序中的每个判断的所有可能 条件取值的组合至少被满足一次。 路径覆盖就是设计足够多的测试用例,使得被测试程序中的每条路径至少被覆盖一次。 3 参考答案: 独立路径测试的基本步骤是: 步骤 1:根据源程序导出程序控制流图。 步骤 2:根据程序环形复杂度的计算公式,求出程序环形复杂度。 步骤3:根据上面环形复杂度的计算结果,设计测试用例。 4 参考答案: (1)请画出以上代码的控制流图。 注意:需要将复合条件分开单独画成节点。 例如:month >= 1 测试 计划和用例。 要求:模块集成 功能的正确性、适用性 缺陷报告、代码完成状态报 告、功能验证测试报告 系统测试 System Testing 修改后的软件包、测试环境、系统测试用例和测试 计划。 要求:系统能正常地、有效的运行,包括性能、可 靠性、安全性、兼容性等。 缺陷报告、系统性能分析报 告、缺陷状态报告、阶段性 测试报告 验收测试 Acceptance Testing 产品规格设计说明、预发布的软件包、确认测试用 例 要求:向用户表明系统能够按照预定要求那样工作, 使系统最终可以正式发布或向用户提供服务。用户 要参与验收测试,包括 测试(内部用户测试) 、 测试(外部用户测试) 。 用户验收报告、缺陷报告审 查、版本审查。 最终测试报告 版本发布 软件发布包、软件发布检查表(清单) 当前版本已知问题的清单、.Release 版本发布报告 维护 Maintance 变更的需求、修改的软件包、测试用例和计划。 要求:新的或增强的功能正常、原有的功能正常, 不能出现回归缺陷 缺陷报告、更改跟踪报告、 测试报告 5 参考答案: 测试用例的内容包括测试目标、测试环境、输入数据、测试步骤、预期结果、测试脚 本等,并形成文档。测试用例通常根据其所关联的测试类型或测试需求来分类,而且将随 类型和需求进行相应地改变。最佳方案是为每个测试需求至少编制两个测试用例:一个测 试用例用于证明该需求已经满足,通常称作正面测试用例;另一个测试用例反映某个无法 接受、反常或意外的条件或数据,用于论证只有在所需条件下才能够满足该需求,这个测 试用例称作负面测试用例。 6举例说明测试用例的设计方法。 参考答案:略 7请以某个实际工作为例,详细的描述一次测试用例设计的完整的过程。 参考答案:略 8选择一个小型应用系统,为其做出系统测试的计划书、设计测试用例并写出测试总 结报告。 参考答案:略 第 5章 软件自动化测试 1. 简述软件测试自动化的意义和作用。 软件自动化测试的意义是减轻手工测试的工作量,从而达到提高软件质量的目的。 软件自动化测试的作用包括:它能完成许多手工测试无法实现的或者难以实现的测试, 甚至可以提供要比手工测试更好、更快的测试执行方式,可以省去许多繁杂的工作,节省 大量的测试时间。实施正确、合理的自动化测试,能够快速、完整地对软件进行测试,从 而提高软件的质量,进而提高对整个软件开发工作的质量并节约软件开发经费,缩短软件 产品发布的周期,带来显著的生产效果和经济效益。2.简述自动化测试和手工测试有什么主要区别。 自动化测试并不能完全取代手工测试,二者各有优缺点。通常手工测试的目的着重于 发现新的软件故障,而自动化测试则着重于发现旧的软件故障。 手工测试具有创造性,可以举一反三,从一个测试用例想到另外一些测试用例,特别 是可以考虑到测试用例不能覆盖的一些特殊的或边界的情况。同时,对于那些复杂的逻辑 判断、界面是否友好,手工测试具有明显的优势。 自动化测试可以对程序的新版本运行回归测试,可以运行更多更频繁的测试,可以进 行一些手工测试难以完成或不可能完成的测试,充分地利用资源,测试具有一致性、可重 复性和复用性,能缩短软件发布的时间,并增强软件的可靠性。 3.自动化测试工具大致可以分为几类?举例说明几种与之相对应的测试工具。.根据测试方法的不同,自动化测试工具可以分为白盒测试工具、黑盒测试工具和测试 管理工具。 白盒测试工具又可以分为静态测试工具和动态测试工具。其中静态测试工具的代表有 Telelogic 公司的 Logiscope 软件、PR 公司的 PRQA 软件。动态测试工具的代表有 Compuware 公司的 DevPartner 软件、Rational 公司的 Purify 软件。 黑盒测试工具适用于系统功能测试和性能测试,黑盒测试工具的代表有 Rational 公司 的 Team Test、Compuware 公司的 QACenter。 测试管理工具用于对测试进行管理。测试管理工具的代表有 Rational 公司的 TeamManager、Compuware 公司的 TrackRecord、Mercury Interactive 公司的 TestDirector 等 软件。 4.简述对常用自动化测试工具的认识。 (略) 5.试从网络上免费下载自动化测试工具,并在客户机或服务器上安装和运行。 (略) 6.下载本章所介绍的白盒测试、黑盒测试、负载测试等工具,学习其主要功能及使用 方法,尝试进行实例测试。 (略) 第 6章 面向对象的软件测试 1. 简述面向对象的特点与其测试的概念。 面向对象的特点包括对象唯一性、抽象性、继承性和多态性等。 除了运用传统的面向过程的测试方法,面向对象的测试还综合考虑面向对象软件存在 的诸如继承、关联、动态绑定等关系,针对面向对象软件进行的测试。 2. 面向对象的软件测试与传统的软件测试有什么区别? 与传统的面向过程的程序设计相比,面向对象程序设计产生错误的可能性增大或者使 得传统软件测试中的重点不再那么突出,使原来测试经验和实践证明的次要方面成为了主 要问题。 此外,与传统软件相比,由于存在的诸如继承、关联、动态绑定等关系,面向对象软 件具有更复杂的依赖关系,一个类将不可避免的依赖于其他的类,从而增加了面向对象软 件测试的难度。 3. 通常情况下,类测试驱动程序是由测试人员还是程序员进行开发的? 一般由开发人员来开发。 4. 如何进行面向对象交互测试? 面向对象交互测试的重点是确保对象之间能够正确地进行消息传递。测试的前提是参 与交互的类已经被单独测试过,且具有完整的实现。交互测试有两种方法,一种方法是将 交互对象嵌入到应用程序中进行测试,另一种是在独立的测试工具提供的环境中使对象相 互交互来执行测试。 5. 如何进行面向对象系统测试? 系统测试应该尽量搭建与用户实际使用环境相同的测试平台,应该保证被测试系统的 完整性,对临时没有的系统设备部件,也应有相应的模拟手段。系统测试时,应该参考面.向对象分析的结果,对应描述的对象、属性和各种服务,检测软件是否能够完全“再现” 问题空间。系统测试不仅是检测软件的整体行为表现,从另一个侧面看,也是对软件开发 设计的再确认。 可以使用两种方式选择系统的测试用例。一种是确定用户使用系统的使用概貌,即确 定用户是怎样使用系统的,然后根据这些步骤创建测试用例;另一种是分析产品可能包含 的缺陷类型,然后编写测试用例来检测这些缺陷。为了测试需求的一致性,可以从说明需 求的用例来构建测试用例。 第 7章 Web 网站测试 1简述 Web 网站的测试内容。 Web 网站测试的内容包含:功能测试、性能测试、安全性测试、可用性易用性测试、 配置和兼容性测试、数据库测试、代码合法性测试和完成测试。 2功能测试包括哪些方面? 功能测试主要包括:页面内容测试、链接测试、表单测试、Cookies 测试和设计语言测 试。 3负载压力测试的作用是什么? 负载测试主要是为了测试 C/S 系统在某一负载级别上的性能,以保证系统能在同一时 间响应大量的用户,在需求范围内能够正常工作。 压力测试是测试系统的限制和故障恢复能力,也就是测试 Web 应用系统会不会崩溃, 在什么情况下会崩溃。 4概括安全性测试中的登录测试内容。 登录测试内容主要有: 测试用户名和输入密码是否有大小写区别。 测试有效和无效的用户名和密码。 测试用户登录是否有次数限制,是否限制从某些 IP 地址登录。 假设允许登录失败的次数为 3次,那么在用户第 3次登录的时候输入正确的用户 名和口令,测试是否能通过验证。 测试口令选择是否有规则限制。 测试哪些网页和文件需要登录才能访问和下载。 测试是否可以不登录而直接浏览某个页面。 测试 Web 应用系统是否有超时的限制,也就是说,用户登录后在一定时间内(例 如 15分钟)没有点击任何页面,是否需要重新登录才能正常使用。 5简述兼容性测试。 兼容性测试需要测试各种操作系统平台、浏览器、打印机以及上述的组合测试。 6简述数据库测试。 数据库测试是 Web 网站测试的一个基本组成部分。测试人员要真正了解后台数据库的 内部结构和设计概念,制订详细的数据库测试计划,能在程序的某个流程点上并发地查询.数据库,并保证数据完整性、数据有效性和数据操作和更新。第八章 单元测试工具 JUnit 1简述 JUnit 的特征。 JUnit 是一个开放源代码的 Java 测试框架,用于编写和运行可重复的测试。它包括以 下特性: 使用断言方法判断期望值和实际值差异,返回 Boolean 值。 测试驱动设备使用共同的初始化变量或者实例。 支持图型交互模式和文本交互模式。 提升程序代码的品质时,JUnit 测试允许更快速的编写程序。 JUnit 使用简单。 JUnit 能够检验测试结果并立即提供回馈。 JUnit 测试可以合成一个有层次的测试系列架构。 开发测试成本低。 JUnit 测试框架提供自动执行测试的背景,并使这个背景成为其他测试集合的一部分。 JUnit 测试提升软件的稳定性。 JUnit 测试是用 Java 开发的。 2如何用 JUnit 为被测程序创建测试用例? JUnit 的基本使用步骤如下: (1)创建,从 JUnit.framework.TestCase 派生 unit test 需要的 test case。 (2)书写测试方法,提供类似于如下函数签名的测试方法: public void testXXXXX(); (3)编译,书写完 test case 后,编译所写的 test case 类。 (4)运行,启动 JUnit test runner,来运行这个 test case。 3JUnit提供的断言方法有哪些? JUnit 提供 6大类 31组断言方法,包括基础断言、数字断言、字符断言、布尔断言、 对象断言,如下表所示。 方法 描述 assertTrue 断言条件为真。若不满足,方法抛出带有相应的信息(如果有的话)的 AssertionFailedError异常。 assertFalse 断言条件为假。若不满足,方法抛出带有相应的信息(如果有的话)的 AssertionFailedError异常。 assertEquals 断言两个对象相等。若不满足,方法抛出带有相应的信息(如果有的话) 的AssertionFailedError异常。 assertNotNull 断言对象不为null。若不满足,方法抛出带有相应的信息(如果有的话) 的AssertionFailedError异常。 assertNull 断言对象为null。若不满足,方法抛出带有相应的信息(如果有的话) 的AssertionFailedError异常。 assertSame 断言两个引用指向同一个对象。若不满足,方法抛出带有相应的信息 (如果有的话)的AssertionFailedError异常。.assertNotSame 断言两个引用指向不同的对象。若不满足,方法抛出带有相应的信息 (如果有的话)的AssertionFailedError异常。 fail 让测试失败,并给出指定信息。 4请使用 JUnit 为被一个实际程序创建测试用例。 (略) 第 9章 性能测试工具 LoadRunner 1学习安装 LoadRunner9.5,并启动操作整个软件,对该软件的主要功能进行一一 实践。 (略) 2请使用 LoadRunner9.5 测试在 HP Web Tours 网站中用户订票的响应时间是否符合预 期,具体的测试用例如下表所示。 用例编号: 001 性能描述: 响应时间 用例目的: 测试 Web Tours 中用户进行订票的响应时间是否符合标准 前提条件: 登陆成功 步骤 输入/动作 期望的性能(平均值) 实际性能(平均值) 1. 输入用户名:jojo,密码:bean 2. 点击“Login”登陆 <1s 3. 点击“Fights”进入订票 <1s 4. 选择订票信息 5. 点击“Continue”下一步 <3s 6. 选择航班 7. 点击“Continue”下一步 <3s 8. 填写用户信息 9. 点击“Continue”完成 <4s 10. 点击“Sign Off”退出 11. 关闭浏览器 (略) 3配置运行脚本的负载选项,调整测试配置以便观察不同条件下网站的应用性能。 (略) 第 10章 测试管理工具 Quality Center 1描述在 QC 环境下的测试流程。 (1)首先系统管理员录入域、项目和项目组人员等数据 (2)根据项目需求,进行测试需求分析,在 QC 中录入测试项 (3)根据测试项,设计相应的测试用例 (4)根据测试用例进行测试执行,并生成相应的测试结果 (5)根据测试结果,会生成相应的缺陷,对缺陷进行管理 (6)当测试缺陷修复后,重复执行( 4) (5) (6) ,直到所有缺陷被修复 (7)当需求发生变更时,重复( 2) (3) (4) (5) (6).2利用 QC,对本书中白盒测试和黑盒测试出现的测试用例和测试结果进行管理。 参考 QC 的测试流程进行(略) 3根据教师给定的相关测试需求, 3-5 人组成测试小组,选举一个测试组长,由测 试组长进行任务分配,根据 10.4 章节内容,使用 QC 进行测试需求管理、测试用例管理、 测试执行和缺陷管理等操作。 可采用角色扮演法来进行(略) 4在互联网上下载其他的开源测试管理软件,尝试安装、配置和使用,比较与 QC 的异同点。 可以尝试 Bugfree,TestLink 等管理软件(略)