软件测试实用教程 方法与实践(第2版) 参考答案 第110章.docx
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《软件测试实用教程 方法与实践(第2版) 参考答案 第110章.docx》由会员分享,可在线阅读,更多相关《软件测试实用教程 方法与实践(第2版) 参考答案 第110章.docx(17页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第1章软件测试核心概念一、测试员在测试过程中应尽量追求完美。该描述正确吗?错。不能穷尽测试,成本太高。二 软件测试的目的是发现缺陷。该描述正确吗?正确。软件测试的目的就是为了发现软件中的缺陷,从这个意义上面说上面的这个论断 是正确的。不少人会认为软件测试可以保证软件的质量,其实这个观点是错误,测试只是软 件质量控制中的一个角色,其活动并不能达成软件质量保证的效果。所以不要认为一个公司 里面如果有了软件测试人员,产品的质量就会好起来。三 自动化测试的难点在于如何快速学会使用测试工具?该描述正确吗?该描述正确,因为国内对使用测试工具技术方面还不成熟。随着国内企业软件开发及测试水平的提升,许多企业开
2、始尝试开展自动化测试的应用,以提 高测试效率和测试质量。虽然在国外自动化测试工具应用已经很普遍,但国内许多企业对于 软件自动化测试的理解还停留在表面上,没有深入的理解到企业实施自动化测试所要具备的 条件以及自动化测试本身的局限性,导致自动化并没有给企业带来多少实际的价值,反而还 浪费了资源。四 为什么说软件的需求规格说明书往往是软件缺陷的最大来源?对软件测试工 作有何启发?软件缺陷:存在于软件(文档、数据、程序)之中的那些不希望或不可接受的偏差, Bug是口语化的缺陷。缺陷在没有被激活的状态下,软件可以正常运行,但是一旦在某一触 发条件下,缺陷被激活,软件内部就会出现故障。因为软件缺陷产生的原
3、因有很多,典型的原因如下:软件本身的复杂性,开发人员的问题,需求的变化,进度的压力,对文档不重视,沟通 不畅,偏差的累积。各种来源导致缺陷会广泛分布在软件开发的各个阶段,需求规格说明书、软件设计、代 码中都可以看到缺陷的身影。特别是由于需求的变化和人们对文档的轻视,导致需求规格说 明书中的缺陷通常会占缺陷总数一半还多。五、请仿照NextDate问题,针对PrevDate问题设计测试用例。PrevDate问题 的功能简述如下:当用户输入有效日期时(从1800年1月1日到2050年12月 31日之间的所有日期),系统将自动计算出前一天的日期。否则,系统不执行日 期的计算,并给出消息提示输入无效。略
4、六、请根据测试用例的定义和管理的需要,设计一个测试用例报告的模板。另一个良好的编程习惯是坚持测试和调试。编程人员应该编写测试用例,确保代码能够 正常运行,并尽早发现和解决错误。他们还应该使用调试器和其他的工具来分析代码并找到 错误的根源。这些实践可以帮助他们提高代码的质量和稳定性,并且减少错误的数量。3 .保持文档更新编程人员还应该保持文档的更新。编程代码本身并不足以解释软件的所有细节和设计决 策。因此,他们应该编写和维护文档,记录软件的特性、设计技术和其他重要的信息,从而 方便团队成员和其他人员了解产品和开发过程。这样做可以帮助编程人员更好地协作并促进 知识共享。4 .不断学习和改进最后一个
5、重要的编程习惯是不断学习和改进。编程技术一直在不断发展和改进,因此编 程人员必须保持更新并学习新技术和更好的实践。他们可以通过参加培训、阅读文献、观看 培训视频等方式来学习并掌握新技术。这样做可以帮助他们更好地完成工作,并且为未来的 职业生涯做好准备。良好的编程习惯对职场人士来说非常重要。它们可以提高代码质量和稳定性、减少错误 的数量、促进知识共享、提高工作效率以及为未来的职业生涯做好准备。职场人士应该注重 这些良好的编程习惯,并不断改进和提高自己的技能和实践。这样做可以帮助他们更好地实 现自己的职业目标,并为公司的成功做出贡献。第7章单元测试二十五、良好的单元测试是否能够代替集成测试?不能。
6、单元测试和集成测试有很多共性,例如都是为了确保程序可以正确运行、减少错 误;同时,两者都需要编写相应的测试用例、执行测试、分析测试结果等。但是,两者也有 一些区别。首先,单元测试强调代码功能的独立性,感觉模块与其他部分解耦后,才能使用自动化 测试框架进行测试。而集成测试强调不同模块之间的互联互动及完整性,因此需要将所有模 块一起整合才进行测试。其次,单元测试关注程序内部逻辑是否正确,而集成测试则验证模 块之间的交互是否正确。最后,单元测试和集成测试的测试成本和风险不同,前者成本较低, 缺陷更容易被修复,但不足以覆盖整个系统;后者成本较高,缺陷修复困难,但可以保证系 统整体性和一致性。单元测试和
7、集成测试各有其优点和限制,因此在软件开发过程中,需要设计一个有效的 测试策略来平衡二者之间的关系。下面是一些相关建议:1 ,避免过度依赖单元测试。虽然单元测试能够检测程序的小错误, 但它不足以覆盖所有场景及交互,因此不能完全取代集成测试。2.明确测试目标和范围。在 测试中,需要明确测试目标和测试用例并提出相应的测试计划,以帮助确保测试的准确性和 全面性。3 .合理安排测试时间。测试是个重要的工作,但是不能占用软件开发时间的大部分, 需要也需要权衡人力资源和时间投入等方面的问题。4.使用良好的集成测试工具。采用自动 化测试和持续集成可降低测试成本及风险。二十六、什么是驱动模块?什么是桩模块?如何
8、设计驱动模块和桩模块?桩模块:一个软件组件框架的实现或特殊目的的实现,用于开发和测试另一个调试或依赖 于该组件的组件,它代替了被调用的组件。驱动模块:代替某个软件组件来模拟控制和/或调用其他组件或系统的软件或测试工具。驱动模块一般是应用于自底向上的集成测试环境中桩模块一般是应用于自顶向下的集成测试环境中在自底向上的集成测试环境中:E、F、G、D是被测试模块,此时需要模拟出两个上级模块来为这四个数据传递数据,那 么中间位置的两个模块就是驱动模块,同理当测试中间两个模块的时候,最终的模块也就是 驱动模块(被多个同级模块调用但是被虚拟假设出来的)在自顶向下的集成测试环境中:是先从Ml开始测试的,然后
9、逐层的向下进行分解测试,在测试上层模块的过程中需要调用下层的模块完成输入输出就被称为桩模块(例如M2、M3、M4就称为Ml的桩模块)M1雯M2M3S4M8二十七、单元测试的过程是怎样的?通常单元测试在编码阶段进行。在源程序代码编制完成,经过评审和验证,确认没有语 法错误之后,就开始进行单元测试的测试用例设计。利用设计文档,设计可以验证程序功能、 找出程序错误的多个测试用例。对于每一组输入,应有预期的正确结果。模块并不是一个独立的程序,在考虑测试模块时,同时要考虑它和外界的联系,用一些 辅助模块去模拟与被测模块相联系的其它模块。这些辅助模块分为两种:驱动模块:相当于被测模块的主程序。它接收测试数
10、据,把这些数据传送给被测模块, 最后输出实测结果。桩模块:用以代替被测模块调用的子模块。桩模块可以做少量的数据操作,不需要把子 模块所有功能都带进来,但不允许什么事情也不做。被测模块、与它相关的驱动模块及桩模块共同构成了一个“测试环境”。如果一个模块要完成多种功能,且以程序包或对象类的形式出现,例如Ada中的包, Modula中的模块,C+中的类。这时可以将这个模块看成由几个小程序组成。对其中的每 个小程序先进行单元测试要做的工作,对关键模块还要做性能测试。对支持某些标准规程的 程序,更要着手进行互联测试。有人把这种情况特别称为模块测试,以区别单元测试。二十八、请针对第5章白盒测试中的佣金问题
11、进行单元测试实践。略第9章系统测试二十九、系统测试完成后就可以发布软件了吗?系统测试不能省略。一般地,对于开发人员来说,系统测试是产品交付给用户前的最后 一个测试环节,占有重要的地位。当面临紧迫的交付压力时,单元测试和集成测试很可能被 取消,但系统测试只能被压缩,不可能完全不做系统测试。系统测试主要是针对需求规格说明中所描述的系统功能和非功能需求进行测试,对应的 测试活动包括功能测试、性能测试、安全性测试、兼容性测试等,下面分别展开讨论。三十 功能测试是功能性测试吗?功能测试(FunctionTesting)主要针对系统的功能需求展开测试,以确认被测系统是否满 足用户的功能使用要求。它是系统测
12、试中最基本的测试。总体来说,在功能测试中,主要应 结合黑盒测试的基本思想,从系统输入(包括合法输入和非法输入)、系统内部处理(包括数据 计算和存储)、系统输出(包括正常输出、针对错误输入的提示性输出、各种输出设备等)这三 个方面设计测试用例。由于不同的应用系统具有不同的特点,功能测试的侧重有所不同,在 此不妨将被测系统分为以数据为中心的系统(即各种管理信息系统)和以活动序列为中心的 系统(即大部分基于Web的应用系统),分别讨论测试的设计。三十一 当时间紧迫时,可以不做性能测试吗?不能。性能测试(PerformanceTesting)就是对软件的运行性能指标进行测试,判断系统集 成之后在实际的
13、使用环境下能否稳定、可靠地运行。软件性能主要考虑系统的时间和空间性 能。其中,时间主要指软件的一个具体事务的响应时间。不同公司和项目对不同事务可能具 有不同的响应时间要求,例如,某项目中要求所有涉及新增、修改的操作响应时间在3秒以 内,而针对查询的响应时间仅要求在7秒以内即可。空间性能主要指软件运行时消耗的系统 资源,该指标主要影响系统的最低配置和推荐配置。典型的性能指标包括CPU的使用情况、 I/O的使用情况、主要存储内存的使用情况、每个模块的执行时间百分比、系统反应时间、 系统吞吐量等。三十二、用户界面测试只不过是在界面上东看看西看看,没有什么技术含量,是 这样的吗?不是。用户界面是软件与
14、用户交互的最直接的层,界面质量决定了用户对软件的第二印 象(安装是第一印象)。随着用户对软件的要求越来越高,用户界面设计越来越重要,而随着 用户界面越来越复杂,用户界面测试也变得异常困难。第11章测试应用案例实践三十三 自动化功能测试适合在什么阶段使用?1、测试需求分析阶段。测试需求分析阶段主要工作是获得测试项目的测试需求(测试 规格)。输出产物:可测试性需求说明书和测试规格。2、测试计划阶段。以测试需求为基础,分析产品的总体测试策略。输出产物:产品 总体测试策略。3、测试方案设计阶段。本阶段主要是以测试规格为基础获得特性测试方案,对于有自 动化测试的项目,进行自动化测试的分析,获得测试策略。
15、输出产物:产品或者版本总体 测试方案。4、测试用例实现阶段。本阶段主要是完成各个特性的测试用例的编写和自动化脚本的 编写。输出产物:产品自动化测试用例和手工执行测试用例。5、测试执行阶段。本阶段是根据测试策略开展测试执行和回归测试。输出产品:产 品或版本测试报告和缺陷分析报告。6、评估与关闭阶段。只对前面的各个阶段的执行情况,完成对测试项目的关闭,同时 提供完整的度量数据和项目总结报告。三十四、请从Web应用测试的角度谈谈在网络教学平台的系统测试阶段,还要从 哪些方面考虑测试,并说明可以使用的测试工具。面向Web应用系统的测试与传统的软件测试不同,不仅需要检查和验证是否按照需求 规格说明书的要
16、求运行,而且还要测试Web应用系统在不同浏览器上显示是否符合要求, 与不同的数据库连接是否有效、更重要的是在性能、安全性、可用性等方面功能测试、性能 测试、安全性测试、配置和兼容性测试、可用性测试、链接测试等。使用Cookie技术,当用户使用Web应用系统时,能够在访问者的机器上创立一个叫做 Cookie的文件,把部分信息(访问过的页面、登录用户名、密码等)写进去,来标识用户状态。 如果该用户下次再访问这个Web应用系统,就能够读出这个文件里面的内容,正确标识用 户信息如果Web应用系统使用了 Cookie,必须检查Cookie是否能正常工作,是否按预定的 时间进行保存内容设计语言测试在Web
17、应用系统开发初始,根据软件工程的要求用文档的 形式确定Web应用系统使用哪个版本的HTML标准,允许使用何种脚本语言及版本,允许 使用何种控件,这样可以有效的避免Web应用系统开发过程中出现设计语言问题。方法是实际破坏Web应用系统,测试系统的反应压力测试是测试系统的限制和故障恢 复能力,也就是测试Web应用系统会不会崩溃,在什么情况下会崩溃,崩溃以后会怎么样。 在Web应用系统性能测试过程中,常常将压力测试和负载测试结合起来。在负载测试的基 础上,增大负载量,直到系统崩溃实施性能测试需要注意测试工具灵活使用性能测试计划的 制定由于数据库安全性导致的Web应用系统安全性问题Access数据库文
18、件被下载用户重要 信息没有经过加密而存于数据库中确认操作系统安全性,避免因操作系统漏洞导致Web应 用程序的安全性问题Web应用系统多采用登录的方式,产品发布时提供默认的管理员用户 名和密码确保应用系统实际应用中可修改默认管理员帐号和密码用户名和密码设置要求(长 度、大小写敏感、复杂度)允许错误登录的次数是否可以不登录而直接浏览某个页面保证日 志文件记录了 Web应用系统的主要操作过程,并可根据日志文件追查到系统使用情况;同时 还需要保证日志文件本身的安全性、完整性,防止被入侵者删除、获得当Web应用系统采 用了 SSL等加密技术之后,需要确认加密、解密后信息传递的正确性和完整性需要确认Web
19、 应用系统是否有超时设置,如有,则保证在超时设置时间内,如果未操作Web应用系统, 当再次访问系统,需要重新登录了解安全漏洞信息,避免Web应用系统中出现的漏洞被入 侵者利用;及时升级补丁程序,提高系统安全性Web应用系统多采用分布式体系结构,服务 器端通常包括Web服务器组件、数据库服务器组件等。三十五请针对分布式搜索系统谈谈该系统还需从哪些方面展开性能测试。观察前端应用的返回结果。这里需要分两种情况来考虑:第一,按照前端应用业务功 能点及流程进行操作,观察返回结果是否符合业务方的需求预期;第二,操作后端的服务器 (通常是重启、宕机、断网等操作),观察前端应用的返回结果是否符合系统的设计需求
20、。分析服务器日志。在功能测试过程中,当我们在启动服务器的时候,需要将日志级别定 义为Debug级别(最低级别)。分析操作系统的一些重要信息。我们测试的分布式系统绝大多数是基于Linux操作系统 开发的,在测试的过程中,除了详细分析程序日志以外,还需要对操作系统的一些重要数据 信息进行分析,从而来诊断服务器程序是否存在异常。借助其他分析工具。例如,如何判断服务器程序是否产生了内存泄漏?通常需要借助于 内存检测工具来进行分析。在Linux环境下,我们常用Valgrind来进行内存检测。数据准备。如何准备海量的测试数据并保证模拟数据的真实性?以一个分布式的文件系 统为例,预先存入100GB的数据还是
21、存入100TB的数据、存入的文件是大小基本一致差别 不大还是各不相同甚至差异很大(例如,从几十字节至儿十兆字节不等),这些因素对于分 布式系统的性能影响是有很大差异的。性能或压力测试工具。通常来说,分布式系统的测试需要开发一些测试工具来满足性能 测试的需求。如果可以的话,建议这样的测试工具最好由测试工程师自己来实现,因为测试 工程师更清楚自己的测试需求。涉及平台多且硬件杂,测试流程控制困难。在实施自动化测试的过程中,测试脚本需 要控制的操作系统和应用程序很多,而且存在跨平台的特性,同时还有可能需要控制一些网 络设备。测试结果验证复杂。对于分布式系统的自动化测试来说,我们需要通过测试脚本来收集
22、各种测试结果数据以验证测试结果的正确性。在实施自动化测试的过程中,我们可以将测试 结果数据收集部分模块化,通过各子模块来检测各项数据是否正确。第8章集成测试三十六、什么是集成测试?集成测试,也叫组装测试或联合测试。在单元测试的基础上,将所有模块按照设计要求 (如根据结构图)组装成为子系统或系统,进行集成测试。实践表明,一些模块虽然能够单独地工作,但并不能保证连接起来也能正常的工作。一 些局部反映不出来的问题,在全局上很可能暴露出来。集成测试(也叫组装测试,联合测试)是单元测试的逻辑扩展。它最简单的形式是:把 两个已经测试过的单元组合成一个组件,测试它们之间的接口。从这一层意义上讲,组件是 指多
23、个单元的集成聚合。在现实方案中,许多单元组合成组件,而这些组件又聚合为程序的 更大部分。方法是测试片段的组合,并最终扩展成进程,将模块与其他组的模块一起测试。 最后,将构成进程的所有模块一起测试。此外,如果程序由多个进程组成,应该成对测试它 们,而不是同时测试所有进程。集成测试是单元测试的逻辑扩展。在现实方案中,集成是指多个单元的聚合,许多单元 组合成模块,而这些模块又聚合成程序的更大部分,如分系统或系统。集成测试采用的方法 是测试软件单元的组合能否正常工作,以及与其他组的模块能否集成起来工作。最后,还要 测试构成系统的所有模块组合能否正常工作。集成测试所持的主要标准是软件概要设计规 格说明,
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件测试实用教程 方法与实践第2版 参考答案 第110章 软件 测试 实用教程 方法 实践 110
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内