`
cloudtech
  • 浏览: 4817222 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
文章分类
社区版块
存档分类
最新评论

探索式测试的问与答

 
阅读更多

探索式测试的问与答

本节用对话的形式讨论探索式测试的概念与实践。提问者是本书的一位虚拟读者,回答者是本书的作者们。

问:探索式测试中的“探索”该如何理解?

答:所谓探索是指有目的的漫游,即带着使命在某个空间中漫游,但没有预先确定的路线 [Kaner01]。探索包括对产品与技术的深入研究和基于研究成果的实践应用。

问:如何实施探索式测试?

答:本书第3部分将专门讨论该问题。这里先介绍一种可行的探索式测试实施方法,其灵感来源是基于测程[1]的测试管理(Session-Based Test Management[Bach2000]

探索式测试鼓励测试人员依据当前语境选择合适的测试流程与技术。在测试过程中,SMART原则[2]为测试者提供了很好的指导。

n Specific(具体的):测试需要一个具体的目标。

n Measurable(可度量的):有明确的指标可以评估目标是否达成。

n Achievable(可实现的):目标应该是可实现的。这潜在地要求将一个大目标分解为多个小目标,且每个小目标也是具体的、可度量的、可实现的。而且,追踪小目标的完成情况提供了整体进度的可度量性。

n Relevant(相关的):目标要切合当前语境,符合团队利益,且不忘企业愿景。

n Time-boxed(有时间限制的):为每个目标设定一个合理的最后期限。这可以帮助测试人员在固定的时间窗口(Time Window)中排除不相关干扰,专注地工作。

依据SMART原则,测试人员可按如下描述展开探索式测试。

1)测试人员制订测试计划。分析被测试应用,确立若干个具体的测试使命(Mission),每个使命针对一个可能的产品风险。

2)测试人员将测试使命分解为一系列测试任务(Charter),每个任务都有明确的退出条件和时间限制。

3)在短暂的测试计划之后,测试人员根据优先级选择一个任务,在一个固定的时间窗口中执行探索式测试(窗口的长度是60~120分钟,以90分钟为宜)。这样一个时间窗口被称为一个测程(Session)。在该测程中,测试人员设计测试、执行测试、评估测试结果。他会根据获得的知识和发现的疑问再设计测试用例,以拓展测试的广度和深度。

4)在测程结束后,测试人员适当休息,放松思维。

5)随后,他会反思当前的测试进展,并优化测试计划。也许他会为当前任务追加一个测程;也许他会再增加一个新的任务以弥补先前测试计划的不足;也许他会删除一些任务以反映他对测试对象的最新认知。

6)这时,他会更有自信地开始新一轮探索式测试。

以上只是一种可能的探索式测试实施方法。负责任的测试人员一定会选择他自己的方式展开测试,因为只有作为领域专家的他,才能做出最符合语境的决策。此外,集合整个团队的力量,进行同行评审、头脑风暴、结对测试等活动,有助于产生更好的测试结果。

问:探索式测试与即兴测试(Ad-hoc Testing)有何区别?

答:探索式测试与即兴测试都强调“即兴发挥”,即利用直觉和经验,快速地测试软件,并不停地调整测试策略。软件专家Andrew Hunt指出,直觉是非显性知识的代名词,是大脑富(Rich)模式的杰出能力。如果人类只使用大脑的线性模式(包括语言可表达的显性知识、抽象能力、逻辑能力等),而漠视富模式的能量,我们将浪费自身的巨大潜力[Hunt08]

然而人是不完美的,某些直觉可能是认知偏见或错误。这就引出了探索式测试与即兴测试的关键不同:探索式测试是带着“反思”的测试。在探索式测试中,测试人员不断地提出假设,用测试去检验假设,并分析测试结果来证实或推翻假设。在此过程中,测试人员持续完善头脑中的产品模型和测试模型,然后利用模型、技能、经验去驱动进一步的测试。通过将测试学习、设计、执行和结果分析作为相互支持的活动并行展开,探索式测试总是在不停地优化测试模型、测试设计和测试价值。因为测试设计和测试执行的切换速度很快,许多人误以为探索式测试没有计划和设计。实际上,这些活动被划分到细微的时间片中,被反复执行。

即兴测试往往利用错误猜测、典型风险和常见攻击来快速地试探软件,可以在短时间内发现许多软件错误。但是即兴测试不强调测试的系统性和完整性,测试遗漏的风险很高,也难以发现一些需要深入研究才能发现缺陷。探索性测试通过测试来透彻地理解被测试产品,从而拓展测试的广度与深度,以持续优化测试的价值。

问:如果探索式测试是硬币的正面,那么硬币的反面是什么?

答:探索式测试的对立面是脚本测试(Scripted Testing)。脚本测试要求预先编写好测试脚本(Script),脚本规定了如何配置被测试软件、如何输入、如何判断软件输出了正确的结果。编写详细的脚本往往需要大量的测试资源。

如果运用得当,脚本测试可能有如下收益[Kaner08]

n 测试人员可以仔细地思考被测试软件。

n 测试脚本可以被项目关系人(Stakeholder)评审。

n 测试脚本可以被复用。

n 测试团队可以评估测试脚本集的完备性。

n 测试团队可以度量测试脚本的执行情况,以评估测试进度。

问:本书为什么反对脚本测试?

答:笔者不反对任何测试思想或方法,但是反对不分语境地滥用某一种测试思想或方法。例如,苛刻地要求编写详细的测试脚本可能会导致如下测试风险。

n 在测试执行前,大量的测试资源被用于测试设计。但是,产品的发展往往难以预料,早期的预先设计不能有效地处理动态变化的情况。有可能花费了大量的时间,却获得了一批充满缺点的测试脚本。

n 过于详细的测试脚本压抑了测试执行的灵活性,使得测试执行变成单调的过程。这可能导致测试人员对一些明显的错误视而不见,因为它们不在测试脚本的检查范围之内。此外,运行测试是观察软件行为、获得测试灵感、设计新测试用例的极佳时刻,这要求测试人员在测试执行时全神贯注、头脑灵活、反应敏捷。但是,枯燥的测试执行将使这些目标难以实现。

n 大量的详细测试脚本导致了沉重的维护代价。在进度压力下,测试人员可能没有时间更新测试脚本,这使得测试脚本不能随需求和产品一同演化。随着时间的推移,大量的测试脚本成为过时的、无人问津的“摆设”,原先投入大量资源所获得的测试资产几乎消耗殆尽。

n 要求测试人员编写求全责备的测试脚本,很可能带来不良的心理暗示:测试人员在不知不觉中将编写脚本看做测试的目的,而不是辅助测试的工具。他们会盲目追求脚本的数量,而很少关注产品和项目的风险,用看似“完备”的脚本集提供虚假的安全感。更糟糕的是,醉心于脚本数量的测试领导很可能会鼓励这种以“文案工作”为核心的测试流程,使测试的价值进一步流失。

相比“硬币”的比喻,笔者更喜欢Cem Kaner的观点:“纯粹的探索式测试和纯粹的脚本测试好似区间的两个端点。在实践中,大多数测试者位于这两者之间。然而,大多数好的测试非常接近探索式测试的一端。”[Kaner09]

此外,根据语境驱动测试的基本原则,测试人员需要经常反思:根据当前语境,测试策略是应该偏向探索式测试,还是脚本测试?如何综合它们的优势,以获得更好的测试结果?

本文节选自《探索式测试实践之路》一书

史亮,高翔著

电子工业出版社出版



[1]Session-Based Test Management中,Session是一段专门用于探索式测试的时间,其常用的中文术语“会话”并不适合该语境。经过慎重考虑,笔者将Session翻译为“测程”,以表达它是一段专注于测试的过程。

[2] http://en.wikipedia.org/wiki/SMART_criteria

分享到:
评论

相关推荐

    学习探索式测试的问与答

    学习探索式测试的问与答.本文摘录自《探索式测试实践之路》第1.3节,用对话的形式讨论探索式测试的概念与实践。提问者是本书的一位虚拟读者,回答者是本书的作者们。问:探索式测试中的“探索”该如何理解?  本文...

    新人教PEP版小学英语六年级下册Unit 3测试卷.doc

    学生需要凭借对单词发音、常用短语和简单对话的熟悉程度来完成听力任务,如为图片标号、选择正确单词以及匹配问句与答语。这不仅提高了学生的听力技能,也促进了他们对英语语言细微差别的把握。良好的听力理解能力是...

    iphone开发入门经典源码

    11.4 3 震动iPhone 11.5 小结 11.6 问与答 11.7 作业 11.7 1测验 11.7.2 答素 11.7.3 练习 11.8 进一步探索 第12章 使用工具栏创建简单的多视图应用程序 12.1 探索单视图应用程序和多视图应用程序 12.2 创建多视图...

    涅阳四小六年级英语期中测试题及答案精选.doc

    4. **交通工具**:第5题提到了`spaceship`,让学生了解和使用与太空探索相关的词汇。 5. **一般疑问句与否定回答**:在第三部分的单项选择题中,有题目涉及一般过去时的一般疑问句及其否定回答,如`Did Ken and Ann...

    Python-透過問答了解世界Python的世界

    "Python-透過問答了解世界Python的世界"这个项目正是这样一种实践,作者在技术论坛积累了大量的问题与答案,这些内容涵盖了Python开发的多个方面,包括基础语法、数据结构、函数、模块、面向对象编程、异常处理、...

    designer-interview-questions:面向设计师的面试问题集合。 有用作为参考,在招聘或只是测试自己

    答:这不必与工作有关。 如果这是私人的,那就太好了。 问:请描述您的技能? 答:一个开放式问题。 记住,他们知道您是设计师。 指出关键的设计技巧是一件好事,但要记住要突出您的沟通技巧。 问:您使用什么...

    2020春四年级英语下册Unit5Myclothes自测课件人教PEP版

    正确答案的选择和答语选择练习,让学生练习在不同的情境中使用合适的问句和答句。这些练习覆盖了询问物品所属关系、颜色、指示代词等实用句型,使得学生能够在真实的生活场景中灵活使用英语进行交流。 情景选择题和...

    外研版小学五年级英语上册第一次月考题及答案精选.doc

    第四题要求学生从听到的问句中选择合适的答语,这实际上是一个对话理解的测试。这不仅要求学生掌握基本的问答结构,还要求他们能够根据上下文进行恰当的回答。这对于学生日后的实际交流能力发展尤为重要。 笔试部分...

    调查问卷设计方法.pptx

    问卷设计的主要步骤包括制定操作化方案(将研究假设转化为可测量的问题)、摸底探索(了解调查对象和背景)、设计初稿、试调查(测试问卷的可行性和有效性)以及修改定稿。每个步骤都是确保问卷质量和数据可靠性的...

    pep人教版六年级英语上册课堂练习题及答案18.doc

    这部分练习主要测试学生对句型结构、疑问词用法的理解以及动词不定式的运用。 1. 正确答案:A. I’m going to visit my uncle. 问题询问的是未来打算做什么,答句应用be going to结构来表示计划。 2. 正确答案:C....

    《社会调查研究与方法(专科必修)》期末试题和答案.pdf

    【社会调查研究与方法】是专科必修...例如,将“幸福感”这一概念操作化为三个层次:个人满意度(如生活满意度量表)、积极情绪体验(如快乐时刻记录)和消极情绪减少(如焦虑水平测试),这样可以进行定量测量和分析。

    微信小程序练习demo:点击变色

    微信小程序是一种轻量级的应用开发平台,由腾讯公司推出,主要应用于移动端,提供丰富的API接口和组件,使得开发者可以快速构建交互式的应用。本实践项目“微信小程序练习demo:点击变色”旨在帮助初学者掌握微信小...

    趣味测验

    【JavaScript趣味测验开发详解】 在编程世界里,JavaScript是一种不可或缺的脚本语言,尤其在Web开发..."Fun-Facts-Quiz-master"项目就是一个理想的起点,引导我们探索JavaScript在创建互动式Web内容方面的强大能力。

Global site tag (gtag.js) - Google Analytics