许多年前,我记得在2001年左右,我和Paul Szymkowiak一起改进了Rational Unified Process(RUP)的测试方面。 Paul是RUP团队的一员,当时我是一名外部顾问,因为我在探索性测试实践方面的知名度很高。

在那个项目中,我不得不参加Rational教授的付费RUP课程。在课堂上,我问了一些不舒服的问题,并对RUP的许多方面提出了质疑。最初,教师(不是Paul)宽容,直到他发现我正在为Rational工作。然后他变得对我很客气,威胁要把我拒之门外,并指责我背叛了我的雇主,并让RUP在局外人面前显得很糟糕。他扬言要解雇我,考虑到我被雇佣去做他班上正在做的事情,这很奇怪-批评RUP。这也很奇怪,因为我正在做他对任何忠诚的学生应该做的事情,以及我希望每位接受我培训的学生会做的事情。

课后,我回到了与Paul一起工作的地方,在那里我们就RUP进行了有益的、持续的辩论。保罗没有按照我的所有建议行事。例如,我希望他扔掉荒谬的25页RUP测试策略模板,但他觉得他做不到。但是最终产生了牢固的工作关系和持久的尊重。这是因为Paul是领导者。

他是情境驱动的思想家。他并不专注于“最佳实践”,而是思考技能和启发式方法。他思考问题和解决方案。他不仅遵循方法论,而且还是方法论者。在昨天发表第一篇管道文章后,他发了推文:

很棒的文章-一如既往地感谢您的分享。这份名单引起了我的共鸣,但感到尴尬并且有些不完整。在难忘的清单约束中进行工作具有挑战性,但这是根据您的帖子启发而改编的,对我来说更有用... 1/2

-Paul Szymkowiak(@paulzee)2020年3月1日

随之而来的是一个简短的来回争论,因为保罗是保罗,所以并没有变成火焰战争。我请他在博客上发表他的想法作为评论,但我认为最好在常规职位上推荐他。开始:

感谢James在Bug Pipeline上的Twitter上进行的有益的后续交流。

您的帖子为我提到了一些关键点,我将这些概括为上下文驱动的交流/使交流适应上下文。我的假设是,以令人信服的方式向正确的人传达正确的错误信息是使错误管道能够提供有用结果的关键方面。

意识到您的意图是将错误本身作为中心要素,我发现我的想法转向了支持人员交互,使交互错误或多或少地通过了管道。我认为清单至少(部分)反映了测试人员与其利益相关者之间的错误沟通。

着眼于沟通,您的列表触发了以下经过调整的清单,以使错误在管道中传播。我将这些视为启发式方法:其中某些方法可能仅在某些情况下适用。我在列表中有意地尝试了对称性:为了帮助保留内存:

该错误存在(因为)::

  1. 可生产的
  2. 可观察/可观察
  3. 理解/理解
  4. 可验证/已验证

错误问题(因为):

  1. 可报告/已报告
  2. 是应收/收到
  3. 有相关性/相关性
  4. 被提倡/提倡

如果不了解这些交流因素的背景(视文化背景而定,交流因素可能会有很大不同),则错误可能会卡在管道的各个位置(或从管道中不当掉出)。

这与他最初的推文线程非常接近。但是,由于我们的对话,他添加了解释性注释:

进一步澄清的支持意见:

可理解的提醒我,我需要了解将与错误进行交互的不同利益相关者如何使用我提供的信息,以及他们需要从中获取价值的内容。可以理解的提醒我,我需要理解或至少猜测或推断正在观察/产生的错误,我也需要那些涉众来理解它。

Authenticable提醒我,我需要了解我将使用的预言来验证我的发现,以及如何以及何时找到或访问合适的参考源(包括人员)。在某些情况下,可能需要正式请求和检查Oracle,或者可能对时间敏感或包含机密信息。在某些情况下,他们可能需要花费时间和精力来创建,访问或协调。 (经过身份验证的提醒我,我需要针对那些神谕确认我的发现)。

可报告的提醒我,我需要了解要向其报告的利益相关者的报告系统:他们的流程,格式,文化,仪式等,并且我了解如何在这种情况下有效地报告。可报告的更多是关于接收报告的人员的上下文,而不是直接由测试人员本人提供,尽管错误报告是作为作者的测试人员与其他人之间的沟通。

应收款管理系统提醒我,所有利益相关者可能没有得到平等对待,他们可能无法访问我用来记录错误的默认记录系统,或者知道如何有效地访问错误信息。可能需要协助他们接收错误报告,例如通过其他通讯渠道/机制/系统进行报告,以确保所有相关的利益相关者都可以接收报告。

“具有相关性”使我想起了分类过程:了解对错误的操作采取适当的关注所需要的内容,包括哪些错误与利益相关者的相关性较低,并且可能需要较少的关注。。可以说这可能在报告期间发生,但有时需要对操作进行分类是一个辅助过程。相关提醒我,我已经成功传达了相关/相对重要性。

Advocatable提醒我,我需要意识到管道的宣传部分在这种情况下的工作方式。如果一个bug可以从一个或多个提倡者的支持中受益,我需要知道我需要提倡谁,他们关心什么,以及哪种方法可以迫使他们成为倡导者。在特定的上下文约束条件下,某些错误可能是值得提倡的,而其他错误可能不是。可能会向错误的涉众或以错误的方式向正确的涉众提倡一些错误。提倡者提醒我,该漏洞已转移到通过倡导者关注和支持采取行动的位置。

保罗

我需要再考虑一下保罗的想法,然后与迈克尔讨论一下。我可能会调整管道的版本,也可能不会。我很高兴向您展示保罗的观点,是因为这是我们在上下文驱动测试社区中如何相互合作的完美典范。我们的互动不涉及相互支配或达成共识的尝试。当然,如果可以的话,我们希望简单,和谐和一致,但是我们试图通过长期的温和营销来实现,因为他们相信,长期以来,真正的好主意会被真正的好从业者采纳。跑。

保罗在这里所做的举动可以称为对称扩展或模式完成。他通过询问我的名单上没有提及的内容来“进入meta”。这是方法论分析(或一般而言,批判理论)中的常见举措。

在撰写第一篇文章时,迈克尔和我已经进行了分析。我选择不按照Paul希望的方式填写模式的原因是,我的列表版本更简单,并且我版本的管道中的每个项目都覆盖了更多的领域。我认为Paul处于某种程度的滑坡,因为我们可以继续在该列表上堆放更多元素,直到它难以引用,难以记住并且难以应用为止。对我来说,Paul的项目似乎不是很专注于错误,这与我最初的目标背道而驰,最初的目标是创建一个工具来讨论错误报告的问题。

我的版本旨在将现有的错误概念与重要的错误概念相结合。它从本体论(存在)的世界,到认识论(知识),再到价值论(价值)。我列表上的第一个项目是“存在”,最后一个项目是“问题”,表明了这一点。中间部分就是要意识到。每个阶段都与至少一种在测试和错误报告中出现错误的常见方式有关,所有这些方式都通过“错误”的概念来关注。 Michael和我通过告诉彼此有关bug报告错误的故事,然后将其与管道模式相关联来进行了测试。当发现模型可以处理我们提出的所有故事时,我们便停止对其进行修改。

保罗可以反驳说,他对清单的考虑方式使它更加令人难忘。 (我认为以任何方式重写任何列表都可以使您更容易记住该列表。)他可以辩称,更好的重点应该是测试人员或bug报告过程,而不是bug或bug报告本身。 。好吧,这可能是一个品味问题。除非我们在现场使用了各种版本的测试,否则很难知道真相

由于Paul和我一直在探索启发式方法,因此我们可以轻松容忍我们的概念和词汇上的差异。 对我们来说重要的是能够谈论甚至辩论,同时保持对围绕整个主题的主观性和不确定性的理解。

学会进行艰苦的对话而又不费吹灰之力,这是赢得您所在领域专家的声誉的全部内容。 我认识保罗就是这样。

错误管道反应:Paul Szymkowiak和上下文驱动的思想家如何交谈相关推荐

  1. 独家 | 图解BiDAF中的单词嵌入、字符嵌入和上下文嵌入(附链接)

    作者:Meraldo Antonio 翻译:张玲 校对:吴金笛 本文约5200字,建议阅读15分钟. 本文重点讲解机器问答任务中常见机器学习模型BiDAF是如何利用单词.字符和上下文3种嵌入机制将单词 ...

  2. JavaScript中的作用域,闭包和上下文

    深入理解JavaScript中的作用域和上下文 很多语言当中都会有作用域的概念,它会给我们带来便利,偶尔也会有烦恼,只有清楚地理解和掌握了它,才能更好地为我所用,今天就带来这么一篇文章供大家参考. 介 ...

  3. java上下文_Java,gRPC和上下文传播(Java, gRPC and Context propagation)

    Java,gRPC和上下文传播(Java, gRPC and Context propagation) 有没有人有客户端(存根)和服务器之间使用gRPC在java中的io.grpc.Context传播 ...

  4. Django 学习第十一天——中间键和上下文处理器

    一.中间键的引入: Django中间件(Middleware)是一个轻量级.底层的"插件"系统,可以介入Django的请求和响应处理过程,修改Django的输入或输出. djang ...

  5. 深度学习核心技术精讲100篇(二十九)-基于内容和上下文的音乐推荐

    前言 随着在线音乐商城及流媒体音乐服务的出现,数字音乐分发已经使得音乐触手可及.然而,面对突然出现的海量可收听内容,听众很容易面临信息过载的问题.因此,本次分享的主题音乐推荐系统,将为那些面临海量内容 ...

  6. 几个基本概念辨析:流敏感,路径敏感和上下文敏感

    (从这篇日志开始,恢复博客园的同步更新) 这篇日志没有什么技术含量,只是总结几个基本概念.在软件分析中,我们经常会遇到流敏感(flow-sensitive),路径敏感(path-sensitive)和 ...

  7. Spring测试支持和上下文缓存

    Spring为单元测试和集成测试提供了全面的支持-通过注释来加载Spring应用程序上下文,并与JUnit和TestNG等单元测试框架集成. 由于为每个测试加载大型应用程序上下文需要时间,因此Spri ...

  8. qt 工具栏分隔符_带有分隔线和上下文工具栏的RecyclerView Android

    qt 工具栏分隔符 Today we'll be developing a RecyclerView Android app with contextual toolbar to let us sel ...

  9. 【论文导读】Time-Series Representation Learning via Temporal and Contextual Contrasting(时间和上下文对比的时间序列表示学习)

    Time-Series Representation Learning via Temporal and Contextual Contrasting(通过时间和上下文对比的时间序列表示学习) 论文信 ...

最新文章

  1. MySQL中Order By与Limit不要一起用
  2. 个人易遗忘的代码记录(6) 汉字转拼音
  3. 【牛客网】安置路灯 C++
  4. CSS默认可继承样式
  5. 浏览器的DNS缓存查看和清除
  6. Linux使用 tar命令-g参数进行增量+差异备份、还原文件
  7. C# lock 学习
  8. VUE day_07(7.25)学子商城项目简略版
  9. java 修改分辨率_JAVA程序分辨率修改及自适屏修改
  10. 电脑模拟收银机_模拟超市收银系统
  11. 青花瓷(charles)的基本使用和注意事项
  12. 软考软件设计师证书考试笔记
  13. APM芯片 写flash问题
  14. 图像处理——人脸情绪识别(python卷积神经网络)
  15. 当GUSD遇上STO,全球投资格局与资金流向生变? | 链塔智库
  16. lsdyna进阶教程-弹性球撞击刚性平板
  17. 集牛气 展虎威 | 指令集祝您新春快乐,虎年大吉!
  18. 安徽理工计算机学院朱君,井下带式输送机集中监视与控制系统[1]
  19. mac fish shell的安装和使用教程
  20. 祝福你们,中国80后 (俞明洪)

热门文章

  1. 利用Jquery处理跨域请求
  2. Controls 属性与继承 TShape 类的小练习
  3. CrystalDecisions.CrystalReports.Engine.LoadSaveReportException:載入報表失敗6/25
  4. 大二暑假周进度总结07
  5. JavaWeb学习笔记九 过滤器、注解
  6. 【BZOJ4476】[Jsoi2015]送礼物 分数规划+RMQ
  7. Bootstrap入门(二十九)JS插件6:弹出框
  8. unix:///tmp/supervisor.sock no such file
  9. 中文信息匮乏年代,新媒体粉墨登场
  10. 配置docker静态IP地址