Combining human skill and machine efficiency for the right result
将人的技能和机器效率相结合以获得正确的结果
Silvia Ochoa Fernandez, Senior QA Engineer, Sage
Sage高级质量检查工程师Silvia Ochoa Fernandez
It was almost ten years ago since I had my first experience leading a test team.
自从我第一次拥有领导测试团队的经验以来,已经差不多十年了。
The way testing was understood in some industries was far from being a creative task: we worked with pre-defined test cases that were run over-and-over again in a manual way. Back in the day, test automation was generally reserved for less structured industries.
在某些行业中,了解测试的方式绝非创意任务:我们使用预定义的测试用例,这些用例以手动方式一遍又一遍地运行。 过去,测试自动化通常只保留给结构化程度较低的行业。
I was lucky to belong to a very diverse team, which ranged from a very experienced tester to a tester who had just started his first role in the industry. They were assigned to the same project with the junior tester learning from the senior one. Beneficial for everyone involved, we mixed experience with creativity which resulted in a bunch of new and exciting ideas.
我很幸运地加入了一个非常多样化的团队,从一支经验丰富的测试人员到刚开始在该行业中担任第一职位的测试人员。 他们被分配到同一个项目,而初级测试人员则从高级测试人员那里学习。 对于参与的每个人都是有益的,我们将经验与创造力相结合,产生了许多新颖而令人兴奋的想法。
One day they came to tell me that they wanted to change the way they were running the project.
有一天,他们来告诉我,他们想改变他们运行项目的方式。
We had predefined test cases that were maintained and run manually every time there was a change in the code. Their proposal was to add one last step to each of the test cases called “exploratory testing”, meaning they wanted to book some time to freely play with the system, discovering unexplored parts and challenging it.
我们有预定义的测试用例,每次代码更改时,它们都会维护并手动运行。 他们的建议是在每个测试用例中增加最后一步,称为“探索性测试”,这意味着他们想预定一些时间来自由使用该系统,发现未开发的零件并对其提出挑战。
I loved the idea, but it was a difficult ‘sell’ into our Director who tended to consider all testing through the lens of automation. The conversation went something like this…
我很喜欢这个主意,但这对我们的主管来说是一个困难的“出售”,他倾向于通过自动化的角度考虑所有测试。 谈话像这样……
“How are you going to automate that?”
“您将如何实现自动化?”
“This isn’t about automation — this is about freely using the system as a user would. Noting down what we doing, reviewing it and adding any useful additions to the formal test plan as we find useful increments in our testing”
“这与自动化无关,而是与用户自由使用系统有关。 记下我们在做什么,进行检查,并在正式测试计划中添加任何有用的补充,因为我们发现测试中有用的增量”
…and after a bit more negotiation we got the green light.
…经过更多的谈判,我们获得了批准。
From that moment on, more than 90% of the new defects found were directly traced to the last steps of the test cases — exploratory testing. There was no magic behind this — it was just that the test cases that were always run, release after release, were limiting our discovery of issues ahead of production.
从那时起,发现的新缺陷中有90%以上直接追溯到测试用例的最后步骤-探索性测试。 这背后没有魔力-只是始终运行的测试用例,一次又一次的发布,限制了我们在生产之前发现问题的能力。
This was my first experience of exploratory testing.
这是我第一次探索性测试的经历。
What is exploratory testing useful for?
探索性测试有什么用?
* For the testers to develop a deep knowledge of the system under test without the need for detailed requirements or general system documentation.
*供测试人员在不需要详细要求或常规系统文档的情况下加深对被测系统的了解。
This means…
这意味着…
* they design much more efficient test cases (with less effort and resources they will discover more errors)
*他们设计了效率更高的测试用例(以更少的精力和资源,他们将发现更多的错误)
* the test plan will evolve continuously, keeping good test coverage, not only by growing the number of test cases (that consumes more resources) but also to delete those that are no longer required
*测试计划将不断发展,并保持良好的测试覆盖率,这不仅会通过增加测试用例(消耗更多资源)的数量,而且还会删除不再需要的测试用例
* they can help to create optimized regression test plans, that include only the test cases needed for each change
*它们可以帮助创建优化的回归测试计划,其中仅包括每次变更所需的测试用例
What is the role of automated testing?
自动化测试的作用是什么?
First of all, let me point out that, as defined by Michael Bolton (not the singer but one of the main referents in testing worldwide -https://www.developsense.com/index.html-), we shouldn’t keep talking about manual testing and automated testing. There is testing and there is checking (1).
首先,让我指出,按照迈克尔·博尔顿(不是歌手,而是全球测试的主要对象之一-https://www.developsense.com/index.html-)的定义,我们不应该保留谈论手动测试和自动测试。 有测试,有检查(1)。
Testing is the process of evaluating a product by learning about it through exploration and experimentation, which includes to some degree: questioning, studying, modeling, observation, inference, etc.
测试是通过探索和实验了解产品来评估产品的过程,在一定程度上包括:提问,研究,建模,观察,推断等。
Checking is the process of making evaluations by applying algorithmic decision rules to specific observations of a product. Checking is a part of testing that can be performed entirely algorithmically.
检查是通过将算法决策规则应用于产品的特定观察结果进行评估的过程。 检查是测试的一部分,可以完全通过算法执行。
So in real terms, or the way I like to think about it — checking would be what we’ve been naming automated testing. And testing is where we need human interaction, to rationalize, consider the external environment, and make a decision based on several factors. And this is the difference between humans and machines — machines are great at sticking to an algorithmic process, but for empathy and rationalization — we still need humans (…well for the time being 😊).
因此,实际上,或者我想考虑的方式,检查就是我们一直在命名自动化测试的东西。 测试是我们需要人类交互,合理化,考虑外部环境并基于几个因素做出决定的地方。 这就是人与机器之间的差异-机器擅长坚持算法过程,但是为了换位思考和合理化-我们仍然需要人(……暂时还是well)。
Back to the beginning of our blog…
回到我们博客的开头...
I am fortunate enough to be able to say, that by chance, we discovered the differences between testing and checking.
我很幸运地说,我们偶然发现了测试和检查之间的差异。
If testers are fed up with running the same test cases, those tests can (and might, as far as possible) be automated. They should be termed checking.
如果测试人员厌倦了运行相同的测试用例,那么这些测试可以(并且可能尽可能)自动化。 它们应称为检查。
If the test plan is no longer, and able to discover new errors and it’s simply ensuring that what it was working it’s still doing, those tests should also be part of checking. And we shouldn’t limit our capacity to this.
如果测试计划不再存在,并且能够发现新的错误,并且只是在确保其仍在运行,那么这些测试也应该作为检查的一部分。 而且我们不应该限制我们的能力。
We need to be careful to put human skill and experience to use — where it is of benefit. If we waste that experience, if we don’t give them the freedom to use their creativity and curiosity (inherent skills of a good tester), we are missing the chance of having a high-quality system, better-motivated testing professionals, and of course the realistic aspiration to an error-free system.
我们需要谨慎地利用人类的技能和经验,在有益的地方使用。 如果我们浪费这些经验,如果我们没有给予他们使用他们的创造力和好奇心的能力(优秀测试人员的内在技能),那么我们将失去拥有高质量系统,更有动力的测试专业人员以及当然,对无错系统的现实追求。
(1)https://www.developsense.com/blog/category/testing-and-checking/
(1)https://www.developsense.com/blog/category/testing-and-checking/
翻译自: https://medium.com/sagefuturemakers/exploratory-testing-895552db8e