Good Good Study, Day Day Up (*^__^*)

Exploratory Testing

上一篇 / 下一篇  2008-03-26 10:49:07

What is Exploratory Testing?

And How it Differs from scrīpted Testing

#D)y*LS|+hdcAv0by James Bach

f8j \4oX*j\0

qVSZ)A"b6t;\#|;W0This first appeared onwww.StickyMinds.comas a column feature51Testing软件测试网MJc p}4Om


Exploratory software testing is a powerful and fun approach to testing. In some situations, it can be orders of magnitude more productive than scrīpted testing. I haven't found a tester yet who didn't, at least unconsciously, perform exploratory testing at one time or another. Yet few of us study this approach, and it doesn't get much respect in our field. It's high time we stop the denial, and publicly recognize the exploratory approach for what it is: scientific thinking in real-time. Friends, that's a good thing.51Testing软件测试网5BE_zPS L[

Concurrent Test Design and Execution

x]5s$a!g`0The plainest definition of exploratory testing is test design and test execution at the same time. This is the opposite of scrīpted testing (predefined test procedures, whether manual or automated). Exploratory tests, unlike scrīpted tests, are not defined in advance and carried out precisely according to plan. This may sound like a straightforward distinction, but in practice it's murky. That's because "defined" is a spectrum. Even an otherwise elaborately defined test procedure will leave many interesting details (such as how quickly to type on the keyboard, or what kinds of behavīor to recognize as a failure) to the discretion of the tester. Likewise, even a free-form exploratory test session will involve tacit constraints or mandates about what parts of the product to test, or what strategies to use. A good exploratory tester will write down test ideas and use them in later test cycles. Such notes sometimes look a lot like test scrīpts, even if they aren't. Exploratory testing is sometimes confused with "ad hoc" testing. Ad hoc testing normally refers to a process of improvised, impromptu bug searching. By definition, anyone can do ad hoc testing. The term "exploratory testing"--coined by Cem Kaner, in Testing Computer Software-- refers to a sophisticated, thoughtful approach to ad hoc testing. In the last decade, James Whittaker (at Florida Tech), Cem Kaner and I have worked to identify the skills and techniques of excellent exploratory testing. For one example of a fully defined and articulated process of exploratory testing, see the General Functionality and Stability Test Procedure for Microsoft's Windows 2000 Compatibility Certification program. This document is publicly available on Microsoft's web site, or on my site at

YU*NhW c.?0

Balancing Exploratory Testing With scrīpted Testing

51Testing软件测试网/SQ0}&] @/|

To the extent that the next test we do is influenced by the result of the last test we did, we are doing exploratory testing. We become more exploratory when we can't tell what tests should be run, in advance of the test cycle, or when we haven't yet had the opportunity to create those tests. If we are running scrīpted tests, and new information comes to light that suggests a better test strategy, we may switch to an exploratory mode (as in the case of discovering a new failure that requires investigation). Conversely, we take a more scrīpted approach when there is little uncertainty about how we want to test, new tests are relatively unimportant, the need for efficiency and reliability in executing those tests is worth the effort of scrīpting, and when we are prepared to pay the cost of documenting and maintaining tests.

d0x+v(P&S9V\ ]*}0

^'}Y,o0Z?9xhg+F{0The results of exploratory testing aren't necessarily radically different than those of scrīpted testing, and the two approaches to testing are fully compatible. Companies such as Nortel and Microsoft commonly use both approaches on the same project. Still there are many important differences between the two approaches.51Testing软件测试网:B%C T/j{ K+_r]h

Why Do Exploratory Testing?

51Testing软件测试网 ~E]/b/q n

Recurring themes in the management of an effective exploratory test cycle are tester, test strategy, test reporting and test mission. The scrīpted approach to testing attempts to mechanize the test process by taking test ideas out of a test designer's head and putting them on paper. There's a lot of value in that way of testing. But exploratory testers take the view that writing down test scrīpts and following them tends to disrupt the intellectual processes that make testers able to find important problems quickly. The more we can make testing intellectually rich and fluid, the more likely we will hit upon the right tests at the right time. That's where the power of exploratory testing comes in: the richness of this process is only limited by the breadth and depth of our imagination and our emerging insights into the nature of the product under test. In the rapid testing classes at Satisfice, Inc., we have equipment that watches testers invent tests in real-time. When the instructor makes a new suggestion for what to test, or provides new information to the testers about the product, we observe and measure how a roomful of exploratory testers reacts to that information. Free from the encumbrance of pre-documentation, they immediately incorporate new ideas into their tests.


S}QDSQ0scrīpting has its place. I can imagine testing situations where efficiency and repeatability are so important that we should scrīpt or automate them. For example, in the case where a test platform is only intermittently available, such as a client-server project where there are only a few configured servers available and they must be shared by testing and development. The logistics of such a situation may dictate that we scrīpt tests carefully in advance to get the most out of every second of limited test execution time. Exploratory testing is especially useful in complex testing situations, when little is known about the product, or as part of preparing a set of scrīpted tests. The basic rule is this: exploratory testing is called for any time the next test you should perform is not obvious, or when you want to go beyond the obvious. In my experience, that's most of the time.51Testing软件测试网 G*Q-H)^E

其实,每个测试员都在不知不觉地在用到探索性测试方法,但是很少有人学习和重视这种方法。现在是时候认识一下探索性测试方法了:科学的实时的思考。51Testing软件测试网 u5vL IO&AA

 51Testing软件测试网VXHdQ*nD C.L

ConcurrentTestDesign and Execution

!j,Q-i%C cl4~^j0


VYBT5dx:[ J0






6V _ v]'T2\#]4i0

 51Testing软件测试网3^Kx b n&a B

       探索性测试有时候会与即兴测试(ad hoc testing)混淆。即兴测试通常是指临时准备的、即席的bug搜索的测试过程。从定义可以看出,谁都可以做即兴测试。由Cem Kaner提出的探索性测试,相比即兴测试是一种精致的、有思想的过程。

e P.@Z5A0

 51Testing软件测试网_#M)A'Fc P

Balancing Exploratory Testing With scrīpted Testing51Testing软件测试网,A)vW1_6|6RI

平衡探索性测试与剧本化测试51Testing软件测试网K rj!|"NdiM0ec


~ O4w ]H]o0

 51Testing软件测试网x{3HhR {#a6M











(t&Y:R G)j)xK*} F'| c0

Why Do Exploratory Testing?



[b)T.Ta"Gw@xo b0


/W-nl N(Fzq_0








)Re)`R XmDl d0


       探索性测试在复杂的测试情况下会特别有用,对产品了解甚少的情况下会特别有用,或者作为准备剧本化测试的一部分测试。基本规则是:应该在你准备进行的下一次测试内容并不明确的情况下进行探索性测试,或者你希望把这些不明确的因素明确了51Testing软件测试网 o R%`XD+M








« 2021-10-14  



  • 访问量: 1572
  • 日志数: 5
  • 建立时间: 2008-03-18
  • 更新时间: 2008-03-26


Open Toolbar