软件测试并不仅仅是按照测试用例(testcase)进行测试
软件测试并不仅仅是按照testcase测试有一种普遍存在的看法是 软件测试 只是一个没有什么技术含量的工作,任何人只要能读懂testcase就能做软件测试。或多或少地,在我工作过的每一个公司都有人这样的观点,特别是规模小的公司更甚。
当然,这是一种完全错误的观点。
如果我们把软件看做是一个圆球,那么软件测试的目标就是尽可能的覆盖最多的球体表面。。
所有的testcase的集合可以看做是一张试图包住整个球体的网,而一个testcase就是网上的一个节点。可见对于这张网来说,最重要的不是它的节点的数量而是节点的布局。testcase应该覆盖整个球体表面,但也不应该有太多的节点堆积在某一个区域。
一个良好设计的testcase集合需要对软件的深刻理解,很高的抽象能力,还要在覆盖率和可执行性之间保持平衡。对这些能力的要求,相比于其他的设计工作,比如软件设计,并无二致。
如果说testcase本身只是一个节点,它并不能覆盖更多的区域,那么一个测试人员实际的测试行为就像一块在围绕在点周围的布,才能填补网格中空白部分。有多大区域能被测试行为所覆盖,这是一个衡量测试人员能力的关键要素。
好的测试人员在测试的时候所做工作远远超过testcase本身。实际上,这也是对测试人员的一个基本要求。测试人员应该通过各种方式扩展testcase,比如改变参数,调整前置条件,从多个角度来观察系统行为,使用不同的方法等等来尽力覆盖更多的内容。
研究显示,在一个项目中,超过3/4的bug并不能仅仅根据testcase的descrīption得来。那也就是说,一个好的测试人员相对于一个仅仅根据testcase来测试的测试人员,其发现的bug数可以是后者的4倍之多。
所以软件测试的工作也许看起来简单和直接,但事实是,实际的工作远远超过testcase本身。
以下是本文的英文版。(following is the English edition)
=========================================================
Some people think that software testing is a low skill job, and that just any one can be a tester. This is definitely not true. Allow me to explain why.
If we represent the software being tested as a ball, then the aim of the software testing is to cover as much of the space of the ball as possible.
Test cases act together as a net, attempting to cover the ball. Test cases act individually as a node in that net. So the most important aspect of a test case is not its amount, but its structure. The test case should cover the entire surface of the ball, but without too many nodes in any one place.
A well designed test case requires a deep understanding to the software, high ability of abstraction, and skills to balance between the coverage and testability. The requirements are not that different from other forms of design work.
To continue the previous analogy, the actual test behavīor is like a piece of cloth wrapped around the node; there to fill spare space left by nodes. How much space your real test behavīor can cover is one key standard to measure the capability of a tester.
Good testers test far more than the test case descrīption. In fact, it’s an essential requirement. They will extend the test case descrīption by changing parameters, adjusting preconditions, and using many different means in order to try to wrap more space around a single test case.
One investigation showed that over 3/4 of all bugs found, are not directly related to test case descrīptions. That is to say, the number of bugs a good tester can find can be 4 times as many as that of a tester who simply follows the test case descrīption.
So the job of software testing may seem simple and straightforward enough, but the truth is, the actual effort expended is much greater than just a simple test case.
(Thanks to Kyle for fixing errors of the original version)
文章来源于领测软件测试网 https://www.ltesting.net/