关闭

2024年想测出更多bug?这种新的测试方法教给你

发表于:2024-1-02 09:37

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

 作者:刘晓佳Rachel    来源:51Testing软件测试网原创

  一、背景
  随着软件技术的发展,软件开发过程中对软件测试的需求越来越庞大,从原来单纯的寻找软件缺陷,到后来的评估软件可用性、性能等等方面,软件测试都发挥着重要作用。软件测试如此高的重要性,难免会有不少的测试人员试图完成“完全测试”——通俗地说即是想将软件的方方面面、每一行代码都测试覆盖到。但是,“完全测试”是不可能完成的。究其原因,软件测试的投入(时间、人力等)是一个巨大的限制因素。我们不可能围绕一个软件投入无穷的时间和人力进行测试,并且软件是一个不断发展和迭代的产品,已经完成的功能可能在产品迭代时发生变化,相应的测试要点也会发生变化。
  剧本式测试方法作为一个传统测试方法已经深入人心,几乎所有软件公司在发展过程中都会或多或少得使用该测试方法。但剧本式测试方法在面临产品的快速迭代时也暴露出了许多缺点,例如:在工业实践和真实的生产环境中,测试用例往往很难设计,测试人员也很少会严格按照设计的测试用例进行测试;需要耗费大量人力和时间成本维护测试用例或测试脚本;不同的测试人员使用相同的测试策略、按照相同的测试脚本执行测试,测试结果(挖掘出的缺陷数量和缺陷质量)也会存在较大差异,测试结果不具有统一性;剧本式测试的机械性特点导致测试人员的功能性被削弱,测试人员的可替代性被增强,从而引发测试人员的职业危机。经验告诉我们,好的测试设计不仅仅依赖的测试技术,测试人员的经验和智力性创造也发挥着重要作用。为了提高测试工作的效率,充分发挥测试人员在测试工作中的智力性,“探索性测试”在剧本式测试的包围圈中异军突起。
  探索性测试最早是由测试专家 Cem Kaner 博士在 1983 年提出,并发展成为一门学科。它指的不是某种具体的测试技术,而是一种自由的测试风格或者说测试思维技术,强调测试设计和测试执行同时进行,其本质是边学习、边设计、边测试、边思考。经过不少学者的研究和总结,探索性测试相较于剧本测试的优势已经十分明显。例如:探索性测试能够发现更多数量、更多类型、更严重的缺陷;探索性测试能够降低缺陷误报率、提高检测缺陷的效率;探索性测试可以让测试人员不受各种先入为主的条条框框约束,能够更好地利用人的创造性、经验能力和技巧,还可以帮助测试人员提高对测试的兴趣,激发测试人员积极地学习被测试的系统,并积累关于系统行为和失败的知识以作后用。
  虽然探索性测试有着诸多的优势,但其自身的不足也比较明显。例如:探索性测试在测试结果的评估和测试报告等方面的劣势,使得它并不能完全取代剧本式测试,更多需要的是需要与剧本式测试结合;探索性测试高度依赖于测试人员的技能、经验和领域知识。当被测产品很复杂时,测试人员的技能和领域知识往往就会显得缺乏;此外,虽然探索性测试允许测试人员在完成测试工作时自由地使用任何测试方法,并且允许联合多种测试方法(如风险测试、配对测试、需求测试、交叉功能测试等等)完成测试工作,但作为一门学科,对探索性测试的专有测试方法研究还是较少。被提及和使用最多的仍然是James A.Whittaker在2009年提出的全局探索性测试方法和局部探索性测试方法。而今已经10多年过去,时代的发展和技术的进步,对探索性测试方法提出了更多、更高、更新的要求。测试方法的与时俱进是我们不得不考虑的事。
  基于探索性的优势和劣势分析,本文讨论的重点在于如何补充和完善探索性测试的测试方法。因此,本文提出一种新的快的测试法,其目的在于更新和补充James A.Whittaker提出的全局探索式测试方法中的快递测试法。 
  二、介绍
  全局探索性测试作为探索性测试的重要方法,从诞生之日起就被广大学者和研究人员关注。其“漫游型”测试理念更是让人耳目一新,将探索性测试比拟为城市旅游,从旅游者的角度出发探索被测产品。将被测产品划分为“商业区”、“旅馆区”、“历史区”、“破旧区”等类型进行测试。尤其是“商业区”,作为产品的核心功能区域,需要测试人员投入较多的时间和精力进行较深入的测试。在《探索式软件测试》一书中James A.Whittaker为“商业区”测试建议了几种测试方法:卖点测试法、地标测试法、极限测试法和快递测试法等等。为了提高测试覆盖率和更好的测试效果,以及当今快递行业的蓬勃发展带来的启发,本文将目光聚焦到“商业区”测试的快递测试法,拓展出“新快递测试法”。
  2.1 快递测试法
  《探索式软件测试》并没有花很大的篇幅介绍快递测试法如何使用和具体使用方法。只是将数据比拟为需要快递的包裹,告诉我们需要关注包裹在整个快递过程中的变化,也即测试人员使用该测试方法主要需要关注测试数据在整个生命周期的改变,以此判定每个功能节点实现功能的正确性。例如:初始输入数据data_0,经过功能节点1变成data_1,陆续经过节点2、节点3…变成data_2、data_3…最终输出为data_n。针对每个功能节点的功能,判断data_1、data_2、data_3……data_n是否正确(包括数据类型的转换是否正确、计算值的结果是否正确等等)。
  但我们会发现,快递测试法思想来源于很多年前的联邦快递,如今多年过去快递行业和快递模式发生了很大的改变,需要我们以新的目光审视是否需要更新和改进快递测试法。并且,从较短的快递测试法介绍来看,快递测试法只提到了“数据”这一需要重点关注的测试对象,而忽略了在“数据”传输过程中的交互对象和及其活动,以及交互活动发生时引发的一系列状态变化等等。试想,没有仓库人员、没有快递人员,包裹能够正常传递吗?试想,包裹在传递过程中,难道只有转发这一个行为吗?显然不是。由此,引出了我们本文讨论的新快递测试法。
图1 快递测试法类比示意图
  2.2 新快递测试法
  “新快递测试法”主要是受当今快递模式的启发。相比十多年前的快递模式,当今的快递模式,已经有很大的改变,比如:实时追踪,轨迹记录等等。此外,时效性和快递量等方面也发生了巨大的变化。
  “新快递测试法”相较于James A.whittaker的“快递测试法”区别在于,它不仅关注测试数据,还关注测试数据传递过程中的所交互的对象及其活动、交互活动发生后的状态变化,以及交互活动时序等等方面。
  让我们以一个形象的例子来说明:将数据比拟为待快递出去的包裹,包裹(数据)在传递过程中会经由不同的运输人员(交互对象)运送(交互活动),包裹每到达一个站点,快递系统会更新包裹的位置信息(交互活动发生后的状态变化),并交由仓库人员分配、转发或投递(交互活动)……最终经过快递人员派送(交互活动)到达客户(交互对象)手中。
  我们在测试分析和测试过程中使用“聚焦式观察法”,即:每次测试将注意力投注于某一个测试功能点,以此达到高效和深入地测试。我们参考包裹的快递过程,以此拆解“新快递测试法”中需要关注的测试类型或测试要点。
  新快递测试法的测试对象主要有以下几类:
  ·包裹,即数据;
  ·“运输人员”、“快递人员”、“仓库人员”、“驿站包裹收发人员”等,即交互对象;
  ·“快递接收、运输、转发、投放”等,即交互活动;
  ·“位置信息更新”等,即内外部状态;
  ·“快递人员先派送,客户才拿到包裹”等,即活动时序;
  我们把交互活动和交互对象放在一起讨论,因为交互对象是根据交互活动的类型来划分的。因此,新的快递测试方法的测试类型如下图所示。
图2 新快递测试法测试类型示意图
  该文将从数据、交互对象、交互活动、内外状态、活动序列等方面阐述新型快递测试方法的关键点。
本文节选自第七十五期《51测试天地》
全局探索性测试之新快递测试法》一文
想继续阅读全文或查看更多精彩内容,请点击下载:
  版权声明:本文出自《51测试天地》第七十五期。51Testing软件测试网及相关内容提供者拥有51testing.com内容的全部版权,未经明确的书面许可,任何人或单位不得对本网站内容复制、转载或进行镜像,否则将追究法律责任。
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

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

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

沪ICP备05003035号

沪公网安备 31010102002173号