测试模型——软件测试工程师面试秘笈(07)

发表于:2021-12-16 09:50

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:杨定佳 陈辑    来源:51Testing软件测试网原创

  13.2.5  测试模型
  软件测试模型和软件开发模型都遵循软件工程原理和管理学原理。测试工程师前辈们通过实践总结出了很多种值得学习的测试模型。依据这些模型,可以很好地对测试工作进行  管理。
  示例:你都了解哪些测试模型?请简单地解释一下。
  此题主要考察面试者对测试模型的理解,常见的测试模型有V模型、W模型、H模型和X模型,结合实际项目重点说明一种模型,其他模型说出其特点   即可。
  解答:我在上个xx项目中采用的就是V模型。V模型大体上可以划分为几个不同的阶段:需求分析、概要设计、详细设计、软件编码、单元测试、集成测试、系统测试、验收测试。对于测试过程中的不同级别,都可以清楚地描述测试阶段和开发过程期间各阶段的对应关系,但也有其局限性,例如测试活动是在编码之后进行,忽视了测试对需求分析和系统设计的验证,这些前期工作的验证也只能在后期的验收测试阶段进行。V模型结构图如图13-3所示。
图13-3  V模型结构图

  除过V模型外,还有W模型、H模型和X模型。W模型,在产品生产周期中可以明确地标出开发与测试之间的对应关系;X模型,指出整个测试过程是在探索中进行的;H模型,将软件测试作为一个独立的流程,贯穿产品整个生命周期,与其他流程并发进行。

  13.2.6  测试分类
  在软件测试中,可以通过测试的不同阶段、采用的方式、遵循的测试模式等对软件测试的类型进行分类。例如,按照测试阶段可分为单元测试、集成测试、系统测试和验收测试;按照软件代码的可见度可分为白盒测试、灰盒测试和黑盒测试;按照测试执行方式可分为动态测试和静态测试。对测试分类的掌握可了解一个测试工程师对测试工作细致划分的理解,因此这也成为面试官对初级测试人员考察的一项内容。

  示例1:简述单元测试、集成测试、系统测试的侧重点。
  按照测试阶段可以将测试分为单元测试、集成测试、系统测试和验收测试。此题不仅考察面试者对单元测试、集成测试和系统测试的理解,也间接地了解到面试者对测试流程、测试阶段的熟悉程度。
  解答:单元测试、集成测试、系统测试是按照测试阶段进行划分的。单元测试又称模块测试,依据的是详细设计文档,其目的是检验软件基本组成单位的正确性。测试对象是软件设计的最小单元;集成测试也叫作组装测试,将程序模块采用适当的集成策略组装起来,对其进行有序、递增的测试,主要测试模块之间数据传输、模块之间功能冲突、模块组装功能的正确性、全局数据结构、单模块缺陷对系统的影响;系统测试是在真实或模拟系统运行的环境下,对功能、性能以及软件所运行的硬软件环境进行测试,满足用户需求,主要测试系统的功能、界面、可靠性、易用性、性能、兼容性、安全等。

  示例2:什么是软件测试静态分析,什么是软件测试动态分析?
  解答:静态测试是指不运行程序,通过分析来检查软件开发过程中的文档、代码语法、结构、接口等的正确性,主要从功能性、可靠性、可移植性、可用性、有效性和可维护性方面度量开发文档、程序设计、业务逻辑审核、代码风格和规则等。动态测试指的是运行被测程序,输入相应的测试数据,检查运行结果与预期结果的差异,并分析运行效率、正确性和健壮性等。这种方法主要是由三部分组成的:测试用例、执行程序、分析程序运行输出的    结果。

  示例3:Alpha测试与Beta测试有什么区别? 
  解答:
  测试时间不同:Alpha测试可以从软件产品编码结束之时开始,或在模块(子系统)测试完成之后开始,也可以在确认测试过程中产品达到一定的稳定和可靠程度之后再开始;Beta测试是软件产品完成了功能测试和系统测试之后,在产品发布之前所进行的软件测试活动,是技术测试的最后一个阶段。
  测试目的不同:Alpha测试的目的是评价软件产品的FLURPS(功能、局域化、可用性、可靠性、性能和支持),尤其注重产品的界面和特色,为非正式验收测试;Beta测试是一种验收测试,通过了验收测试,产品就会进入发布阶段。
  测试人员及场所不同:Alpha测试是由一个用户在开发环境下进行的测试,也可以是公司内部的用户在模拟实际操作环境下进行的受控测试。Alpha测试发现的错误可以在测试现场立刻反馈给开发人员,由开发人员及时分析和处理;Beta测试由软件的最终用户在一个或多个客户场所进行。开发者通常不在Beta测试的现场,因为Beta测试是软件在开发者不能控制的环境中的“真实”应用。

  示例4:白盒、黑盒和灰盒测试有什么区别? 
  解答:
  黑盒测试:也称不透明盒测试、封闭盒测试、输入输出测试、数据驱动测试、行为测试和功能测试,基于要求和规范,不需要了解被测软件的内部路径、结构或实现。
  白盒测试:也称为玻璃盒测试、透明盒测试。白盒测试基于内部路径、代码结构和正在测试的软件的实现,它需要完整而细致的编程技巧。
  灰盒测试:称为半透明测试,介于黑盒和白盒测试之间。灰盒测试知道内部程序的有限知识,是另一种类型的测试,在其中查看正在测试的盒子,只是为了理解它是如何实现的。之后关闭盒子并使用黑盒测试。

  示例5:如果能够执行完美的黑盒测试,还需要进行白盒测试吗?为什么?
  解答:黑盒测试是已知产品的功能设计规格,测试证明每个实现了的功能是否符合要求。白盒测试是已知产品的内部工作过程,通过测试证明每种内部操作是否符合设计规格要求、所有内部成分是否已经过检查。
  软件的黑盒测试把测试对象看作一个黑盒子,测试人员完全不考虑程序内部的逻辑结构和内部特性,只依据程序的需求规格说明书检查程序的功能是否符合它的功能说明。因此,黑盒测试又叫功能测试或数据驱动测试。软件的白盒测试是对软件的过程性细节做细致的检查。这种方法把测试对象看作一个打开的盒子,允许测试人员利用程序内部的逻辑结构及有关信息设计或选择测试用例,对程序所有逻辑路径进行测试,通过在不同点检查程序状态确定实际状态是否与预期的状态一致。因此,白盒测试又称为结构测试或逻辑驱动测试。
  软件测试有一个致命的缺陷,即测试的不完全、不彻底性。由于任何程序只能进行少量(相对于穷举的巨大数量而言)有限的测试,在未发现错误时不能说明程序中没有错误。就算执行了完美的黑盒测试也无法测试程序内部的特定部位,当规格说明本身有误时也不能发现问题。白盒测试能对程序的内部特定部位进行覆盖测试,所以黑盒测试和白盒测试为互补关系,结合起来进行测试用例的设计更为合理。

  示例6:什么是冒烟测试? 
  解答:冒烟测试是指在进行大规模测试之前,由有经验的软件测试工程师对被测系统的主要功能进行测试。主要功能没有什么大问题时再决定是否展开软件测试工作。

  示例7:什么是回归测试?回归测试的步骤包括哪些?
  解答:回归测试是指修改了旧代码后,重新进行测试,以确认修改没有引入新的错误或导致其他代码产生错误;也指在第一次系统测试完,开发小组已经将所有的缺陷处理后进行第二次系统测试。基本步骤如下:
  (1)识别出软件中被修改的部分和可能会被影响的模块。
  (2)从原基线测试用例库T中排除所有不再适用的测试用例,确定那些对新的软件版本依然有效的测试用例,其结果是建立一个新的基线测试用例库T0。
  (3)依据一定的策略从T0中选择测试用例进行测试。
  (4)如果必要,生成新的测试用例集T1,用于测试T0无法充分测试的软件部分。
  (5)用T1执行修改后的软件。
  (6)如果有自动化测试,还可以进行全功能自动化测试。

  示例8:文档测试主要包括哪些内容?
  根据测试对象不同,可以分为代码测试、软件测试等。文档测试也属于静态测试,包括用户手册、产品说明等。
  解答:文档测试的目的是提高易用性和可靠性,降低支持费用,因为用户通过文档就可以自己解决问题。对软件系统有一个初步的掌握,主要可以从完整性、一致性、易理解性、印刷与包装几个方面入手测试。
  一致性:测试文档与软件实际情况一致,包括软件的所有功能、文字与图形、授权、许可协议、安装与卸载、与宣传一致、设置导向、示例等。
  易理解性:检查文档对关键、重要的操作的图文说明,文字、图表是否易于理解,包括文字准确、术语解释、内容和主题规范、图片清晰等。
  印刷与包装:检查软件文档的商品化程度,用户手册的打印、装订,并要易于保存。
  其他:售后服务联系、Logo的插入等。

查看《软件测试工程师面试秘笈》全部连载章节
版权声明:51Testing软件测试网获得作者授权连载本书部分章节。
任何个人或单位未获得明确的书面许可,不得对本文内容复制、转载或进行镜像,否则将追究法律责任。
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号