What Could Kill Testing?(什么可以终结测试)

目录

原链接

翻译内容

What Would Kill Testing?(什么会终结测试)


原链接

http://www.satisfice.com/blog/

翻译内容

Posted on February 24, 2019(发表于2019年2月24日)

(I wrote this several years ago with Michael Bolton, but never got around to publishing it.)

(我几年前和Michael Bolton一起写了这篇文章,但从未出版过它。)

Although Rome wasn’t built in a day, it took six days to accidentally burn down in 64AD. It was rebuilt to be a bit more fireproof. And when the burning of the Iroquois Theater in Chicago killed 602 people in 1903, the fire code for theaters improved in 1904. The Triangle Waistcoat Factory fire in New York City (146 dead) led to the founding of the New York City Bureau of Fire Protection, and the National Fire Protection Association now maintains several hundred separate codes– many of them inspired directly by specific tragic fires. People learn from disasters.

虽然罗马不是一天建成的,但是在64AD中意外地耗火了六天。 它被重建为更加防火。 1903年芝加哥易洛魁剧院的烧毁导致602人死亡,1904年剧院的防火法规有所改善。纽约市三角背心工厂(146人死亡)导致纽约市火灾局成立,和国家消防协会现在保留了数百个单独的法规 - 其中许多法规直接受到特定的悲剧性火灾的启发。 人们从灾难中学习。

This is also why we have testers. Software disasters happened and people learned. Those specific people became more careful, dedicated more energy to quality assurance (including testing), and there were fewer disasters. But, unlike fire codes, devotion to QA is generally not a matter of law. If an organization hasn’t had a disaster in a while, their practices get steadily riskier (partly because younger and more innocent people replace the experienced ones). This is a normal Darwinian cycle.

这也是我们要有测试人员的原因。 软件灾难发生,人们学到了东西。 那些特定的人变得更加小心,更加专注于质量保证(包括测试),并且灾害减少了。 但是,与消防法规不同,对质量保证的投入通常不是法律问题。 如果一个组织在一段时间内没有发生过灾难,那么他们的行为就会变得更加危险(部分原因是年轻人和更多无辜的人取代了有经验的人)。 这是正常的达尔文周期。

So it’s not entirely surprising that at the STARWest conference, in 2011, James Whittaker (then at Google) announced that testing is “dead.” What? Testing is dead?! He seemed to be saying that testers are no longer needed in a world with automated checks and automatic updates. But Whittaker was not a professional tester. So, imagine a cabinet factory industrialist, never himself having built a cabinet, announcing the death of skilled carpentry. That’s what it sounded like to me.

因此,在2011年的STARWest大会上,James Whittaker(当时在谷歌)宣布测试“已经死了”并不奇怪。什么? 测试已经死了?! 他似乎在说自动检查和自动更新的世界中不再需要测试人员了。 但Whittaker并不是一名专业的测试人员。 因此,想象一下一个橱柜工厂的工业家,从来没有自己建造一个橱柜,宣布技术熟练的木工的终结。 这听起来像是对我来说。

As if the Fates had overheard him and been offended, a few weeks later a bunch of Google bugs made news: an article appeared on CNN.com with the lamentable title “The week Google really messed up.” A couple months after that, Google Wallet was discovered to have a serious security problem affecting all users. More bad publicity.

似乎命运无意中听到了他说的并且被冒犯了,几周之后,一堆Google漏洞成了新闻:一篇文章出现在美国有线电视新闻网(CNN.com)上,其标题是“谷歌真的搞砸了一周。”几个月之后,谷歌钱包被发现存在影响所有用户的严重安全问题。 这是更糟糕的公共事件。

What does that mean for the testing field? After all, no testing process is guaranteed to save us from all bugs. Meanwhile, other processes can find bugs, too, or prevent them. Amateurs and part-timers can find bugs. Programmers can test their own code. Just because Google gets embarrassed now and then by bad software doesn’t automatically mean they should hire more testers. Maybe instead they should hire better programmers, or train them better.

这对测试领域意味着什么? 毕竟,没有任何测试过程可以保证我们免受所有错误的影响。 同时,其他过程也可以发现错误或阻止错误发生。 业余爱好者和兼职人员可以找到错误。 程序员可以测试自己的代码。 仅仅因为谷歌现在因为肮脏的软件变得尴尬并不会自动意味着他们应该雇用更多的测试人员。 也许他们应该聘请更好的程序员,或者更好地培训他们。

Well, one thing seems obvious: bragging about how you don’t value testing is strangewhen you also expect forgiveness from your customers and (increasingly) world governments when you hurt society with your products.

好吧,有一点似乎是显而易见的:当你用产品伤害社会时,你却希望从你的客户和(越来越多)世界各国政府能够获得宽恕,吹嘘自己如何不重视测试是很奇怪的。

What Would Kill Testing?(什么会终结测试)

Testing is not dead. Testing won’t be dead. And anywhere testing seems to die it will be reborn, phoenix-like, not exactly from it’s own ashes, but rather from the consequences of its death. Still, it can be a good exercise to think about what might cause the death of testing, even in a temporary way. Michael Bolton and I sat down recently to brainstorm on that. Here’s what we came up with:

测试没有死。 测试将来也不会死。 任何地方的测试似乎都会死亡,它将会重生,像凤凰一样,不完全来自它自己的骨灰,而是它的死亡后果。 尽管如此,即使是以临时方式考虑可能导致测试死亡的因素,也是一个很好的活动。 Michael Bolto和我最近坐下来开始了头脑风暴。 以下是我们提出的建议:

1. Testing may die if you start using the word “testing” to mean checking. One of Michael’s contributions to the craft was to suggest a sharp distinction between testing and mere output checking. To test is to question the product so as the evaluate it. Testing is an open-ended investigation that cannot be automated. To check, however, is to gather specific information and analyze it in a manner that could, in principle, be automated. In the parlance of philosophers, checking is a mimeomorphic activity; testing is polimorphic. Some people, mainly programmers who don’t study testing much, are strongly attached to automation. In pursuing their vision of applying tools to testing, they inadvertently dumb testing down. They do with tools what tools can do. They run many checks. Testing for them becomes little more than a command-line switch on the compiler (“-t for test”, or -q for “put the quality in”). And such checks are capable of finding bugs, just not nearly the breadth and depth and variety of bugs that a skilled human can, especially if that human also uses tools in a supporting role.

1.如果您开始使用“测试”一词来表示检查,测试可能会死亡。Michael对该技术的贡献之一就是建议在测试和单纯的输出检查之间进行明确的区分。测试是对产品提出质疑,以便对其进行评估。测试是一项无法自动化的开放式调查。但是,要检查的是收集特定信息并以原则上可以自动化的方式进行分析。在哲学家的说法中,检查是一种模仿活动;测试是多态的。有些人,主要是没有学习过测试的程序员,非常依赖于自动化。在追求将工具应用于测试的愿景时,他们无意中愚蠢地进行了测试。他们使用工具做了工具可以做的工作。他们进行了很多检查。测试对于他们而言,只不过是编译器上的命令行开关(“-t for test”,或-q代表“放入质量”)。而且这样的检查能够发现错误,而不仅仅是技术人员可以发现缺陷的广度,深度,和多样性,特别是如果人类在支持角色中也使用工具来。

Mistaking testing for checking can kill testing, in a sense, by co-opting testing practice. Testing, as Michael and I see it, would still exist, of course. But it would be relegated to rhetorical shadows.

在某种意义上,通过选择测试实践,错误地将测试当做检查可能会导致测试失败。 正如Michael和我所看到的那样,测试将一直存在。 但它会被降级为浅层活动。

What I mean by that is that few people would systematically learn how to test, anymore, until we came up with new words that referred to what the term “testing” once meant. To systematically learn a technical subject, you must be able to talk about it. If all your words about testing refer to shallow and mechanical processes, the deep and skilled stuff is not a part of your world.

我的意思是,很少有人会系统地学习如何测试,直到我们提出新词,提到“测试”一词的含义。 要系统地学习技术主题,你必须能够谈论它。 如果你所有关于测试的话都涉及浅层和机械过程,那么深层次和技能性的东西就不是你世界的一部分。

2. Testing may die if the value of products becomes irrelevant. It dies when we don’t care about the quality of software or the people who need it. By the same token, if we always trusted the water we drank, or the meat we bought at the store, then water testing and food hygiene standards would be irrelevant. If we didn’t mind the occasional deadly fire, we’d happily see a show down at the ol’ Iroquois theater.

如果产品的价值变得无关紧要,测试可能会死亡。 当我们不关心软件的质量或需要软件的人时,它就会消亡。 出于同样的原因,如果我们总是信任我们喝的水,或者我们在商店买的肉,那么水测试和食品卫生标准就无关紧要了。 如果我们不介意偶尔发生的致命的火灾,我们会很高兴地看在'易洛魁剧院'的表演秀。

There really is a problem in our industry with the erosion of the expectation that anythingwill work reliably, ever. I was trapped outside my house, in the cold, recently, and found that my Android phone would not make any calls on the cell network. I rebooted the phone (that takes a few minutes). Still no joy. I connected to WiFi and tried to call that way but got a strange error about not being registered. I had made calls through WiFi before from my house, so I knew it could work. Finally I started Skype and IM’d my son (this was through WiFi , so why didn’t the phone calls work?). This thing is supposed to be a phone. I’m annoyed, but not surprised.

在我们的行业中确实存在一个问题,即任何事物都将永远可靠地运行的期望受到侵蚀。 最近,我被困在我家外面,感冒了,发现我的Android手机不能在手机网络上打电话了。 我重新启动了手机(需要几分钟)。 仍然没有乐观。 我连接到WiFi并试图以这种方式调用,但是有一个关于没有注册的奇怪错误。 我之前从家里通过WiFi拨打过电话,所以我知道它可以工作。 最后我开始使用Skype和IM给我的儿子(这是通过WiFi,所以为什么电话没有工作?)。 这件事应该是手机的问题。 我很生气,但并不感到惊讶。

Google probably thinks I’m not going to give up my phone just because of a few glitches. This creates an opportunity for competitors to come in with a better product that kicks them out of the market— but hey— I worked for Apple, years ago, and when you’re inside a big company like that, you don’t really care. You think success is your birthright.

谷歌可能认为我不会因为一些小故障而放弃我的手机。 这为竞争对手创造了一个机会,好让其推出一个更好的产品,好让他们从市场中脱颖而出 - 但是嘿 - 我多年前为Apple工作过,当你在这样的大公司里面时,你并不真的在乎。 你认为成功是你与生俱来的权利。

(Since I first wrote this I switched to an iPhone, which has been somewhat better.)

(自从我第一次写这篇文章后,我转而使用了iPhone,这种情况有所改善。)

3. Testing may die if the quality of testing work is chronically poor.  Unfortunately, the death of testing can be a self-fulfilling prophecy. People most likely to believe that testing is dead are — like the folks at Google —unlikely to devote themselves to the study of it. They simply don’t know how to test, or perhaps don’t care. It’s only a matter of time before management wonders why they have testers at all.

如果测试工作的质量长期不足,测试可能会死亡。 不幸的是,测试的死亡可能是一个自我实现的预言。 最有可能相信测试已经死亡的人 - 就像谷歌的人 - 不愿意投入研究它。 他们根本不知道如何测试,或者可能不关心测试。 管理层想知道为什么他们有测试人员只是时间问题。

The antidote for that is a high standard of personal excellence. This is what the Context-Driven testing community stands for. We are doing our best to win over the rest of the testing world by being good role models.

“解毒剂”是个人卓越品质的高标准要求。 这就是上下文驱动测试社区所代表的含义。 作为优秀的榜样,我们正在尽最大努力赢得测试世界的其他方面。

4. Testing may die if all the users in the world were early adopter technocrats.  Let’s pretend that all the people in the world who use computers or rely on them in some way are highly technical and tolerant of problems in the products they use. Then the need for testing would dramatically fall. Sure, they want great quality, but if they don’t get it, they understand. For minor glitches, they will have the patience to find a work around.

如果世界上所有用户都是早期使用的技术专家,测试可能会死亡。 让我们假设世界上所有使用的计算机或以某种方式依赖计算机的人都具有很强的技术能力,和能够容忍他们使用的产品中的问题。 那么测试的需求将大幅下降。 当然,他们想要很好的品质,但是如果他们没有得到它,他们就会理解。 对于轻微的故障,他们将有耐心找到一个解决方案。

That may be more true for the perpetual beta products that Google famously offers, but everyone on Earth depends on computers in some way, even if they’ve never seen one. And a tiny minority of those people will experimentally download a tool like Google Earth, as I have, and then spend an hour re-configuring it so that it will actually run.

对于谷歌提供的永久测试产品来说,情况可能更为真实,但地球上的每个人都以某种方式依赖计算机,即使他们从未见过。 这些人中的极少数人会像我一样实验性地下载像Google Earth这样的工具,然后花一个小时重新配置它以便它实际运行。

5. Testing may die by suffocation. If testers are forced to channel all their ideas through a limiting set of artifacts or tools, their productivity may collapse. I’m talking about elaborate test plan templates, test script templates and test management tools, Cucumber “executable specifications” or other automation tools that require the tester to express himself only in stilted and limited ways.

测试可能会因“窒息”而死亡。 如果测试人员被迫通过一组有限的工件或工具引导他们的所有想法,他们的生产力可能会崩溃。 我说的是精心设计的测试计划模板,测试脚本模板和测试管理工具,Cucumber“可执行规范”或其他需要测试人员只能以笨拙和有限的方式表达自己的自动化工具。

That will kill testing because it turns testers into tool jockeys, whose standard of success is the weight of paper or volume of data or lines of code — none of which has much to do with testing.  Tools can be marvelously helpful in moderation, but the excellent tester will resist obsessions with tools, documents, or anything that systematically impedes the variety and profundity of his work.

这会破坏测试,因为它会将测试人员变成工具使用者,他们的成功标准是纸张的重量或数据量或代码行 - 这些都与测试无关。 工具在适度方面可能非常有用,但优秀的测试人员会拒绝使用工具,文档或任何系统地阻碍其工作的多样性和深度的任何东西。

6. Testing may die if technology stops changing. Testing is questioning the product. There isn’t much call to question a product that stays the same, especially if it operates in an environment and for a user base that also doesn’t change. The ambition to innovate is what invigorates the need for testers. Take away that ambition and we all will have to get jobs in comic book stores.

如果技术停止变化,测试可能会死亡。 测试是质疑产品。 对于一直不变的产品没有太多的质疑,特别是如果它在环境中运行并且用户群也不会改变。 创新的雄心是激发测试人员需求的动力。 消除这种野心,我们都必须在漫画书店找到工作。

7. Testing may die by starvation.  When companies reward people who take unknown risks, but not people who discover what those risks actually are, testing is not being nourished. If the craft becomes uninviting to smart, talented, motivated people because you’ve turned it into a boring, uninteresting activity: that also will starve testing. The only people left would be the ones who are too frightened or lazy to leave. The reputation of testing would become steadily worse.

测试可能会因饥饿而死亡。 当公司奖励那些承担未知风险的人,而不是那些发现这些风险实际存在的人时,测试就没有得到滋养。 如果这个技术变得不吸引聪明,有才华,有动力的人,因为你已经把它变成了一个无聊,无趣的活动:这也会使测试变得饥饿。 唯一留下的人就是那些太害怕或懒得离开的人。 测试的声誉会变得越来越差。

Michael and I teach Rapid Software Testing, which is like a martial art of testing. It’s exciting. We are trying to show people that their jobs don’t have to suck. We feed the testers.

Michael和我教授快速软件测试,这就像一门测试的艺术,是令人兴奋的。 我们试图向人们展示他们的工作不必吮吸。 我们为测试人员提供食物。

猜你喜欢

转载自blog.csdn.net/wodeyijia911/article/details/87908693