什么是基于上下文驱动的测试(context-driven-testing)?

上下文驱动测试不是一种具体的测试方法,而是一类测试思维的体现,通常是指测试人员首先查看特定迭代的细节(产品特性、业务需求、相关干系人等)来选择他们的测试目标、技术和可交付成果(包括测试文档)。归根结底,上下文驱动的测试是要尽我们所能做到最好。我们不尝试应用“最佳实践”,而是接受非常不同的实践(甚至常见测试术语的不同定义)将在不同情况下发挥最佳效果

上下文驱动测试七大基本原则

Cem Kaner (《软件测试,经验与教训》) 基于自己的经验,针对上下文驱动的测试理念给出了7个原则:

1. The value of any practice depends on its context.
任何实践活动的价值依赖于它所处的上下文

2. There are good practices in context, but there are no best practices.
在某个上下文中,没有最佳实践,只有好的实践。

3. People, working together, are the most important part of any projects context.
在一起工作的人才是项目的最重要主成部分。

4. Projects unfold over time in ways that are often not predictable.
随着时间的推移,项目呈现出难以预料的结果。        

5. The product is a solution. If the problem isnt solved, the product doesnt work.
产品是问题的解决方案,如果问题没有得到解决,产品是无效的。

6. Good software testing is a challenging intellectual process.
好的软件测试时一个富有挑战性的智力过程。

7. Only through judgment and skill, exercised cooperatively throughout the entire project, are we able to do the right things at the right times to effectively test our products.
只有在项目的整个过程中通过判断和技巧,训练有素的协作,我们才能在正确的时间做正确的事情,以便有效地测试我们的产品。

上下文驱动测试倡导的是结合团队具体的信息与干系人关注的重点,不盲目引入“最佳”实践,而是关注项目的特定因素,给出当下最好的解决方案。不强制要求测试活动一定要遵循固定的流程或者公式。

因此:不能意识到上下文存在的测试不能叫上下文驱动测试;不能基于上下文对测试进行调整的不能叫上下文驱动测试;上下文驱动测试不是漫不经心者的借口。

上下文驱动测试的思想是如何形成的?

“我一直就是这样做测试的!”

持有一定的测试理论和技巧,并且在某些项目上一直遵循和使用这些方法。

“我不确定在这个项目中是否适用!”

在Context Aware阶段,意识到项目的上下文不一样了。

“我要做一些调整”

在Context Based阶段,意识到需要调查和尝试才能确定采用怎样的测试策略。

“哈哈,我想这种方法在这个项目中可能会奏效”

在Context Driven阶段,根据上下文确定测试策略。

上下文驱动测试的实际做法

基于了解到的项目的上下文,用以前的一些测试经验和测试的做法尝试,看是否适合,测试过程中不断反馈,看测试是否有效,同时不断观察,关注上下文是否随着时间改变,上下文的改变将驱动测试方法和实践的加入,不断分析、尝试、应用、反馈。这就是上下文驱动测试。

什么是基于上下文驱动的测试(context-driven-testing)?



我的回答