Difference between revisions of "Test Automation Patterns"

From Test Automation Patterns
Jump to navigation Jump to search
(A pattern is a general reusable solution to a commonly occurring problem within a given context. They are commonly used in software development.)
 
Line 6: Line 6:
 
</span><span style="display: block; font-family: Arial; font-size: 16px; text-align: justify"><br /> </span><span style="display: block; font-family: Arial; font-size: 16px; text-align: justify"><span style="font-size: 16px">Patterns are ideas that you can adapt and implement in your own context and which will hopefully help solve some of your issues.</span></span><br /> <span style="display: block; font-family: Arial; font-size: 16px; text-align: justify">'''Typical test automation patterns:'''</span><span style="display: block; font-family: Arial; font-size: 16px; text-align: justify">The following are some solutions that are described in the patterns in this wiki.</span><br />  
 
</span><span style="display: block; font-family: Arial; font-size: 16px; text-align: justify"><br /> </span><span style="display: block; font-family: Arial; font-size: 16px; text-align: justify"><span style="font-size: 16px">Patterns are ideas that you can adapt and implement in your own context and which will hopefully help solve some of your issues.</span></span><br /> <span style="display: block; font-family: Arial; font-size: 16px; text-align: justify">'''Typical test automation patterns:'''</span><span style="display: block; font-family: Arial; font-size: 16px; text-align: justify">The following are some solutions that are described in the patterns in this wiki.</span><br />  
  
* <span style="font-size: 16px">a description of how testware should be organised, designed and developed, in order to solve test automation problems </span><span style="font-size: 16px; line-height: 24px">([[ ABSTRACTION LEVELS]], [[ TESTWARE ARCHITECTURE]]</span>, <span style="font-size: 16px; line-height: 24px">[[ KEYWORD-DRIVEN TESTING]])</span>
+
* <span style="font-size: 16px">a description of how testware should be organised, designed and developed, in order to solve test automation problems </span><span style="font-size: 16px; line-height: 24px">([[ABSTRACTION LEVELS]], [[TESTWARE ARCHITECTURE]]</span>, <span style="font-size: 16px; line-height: 24px">[[KEYWORD-DRIVEN TESTING]])</span>
* <span style="font-size: 16px">a rule about how to perform a particular step in a test automation process, for example to improve efficiency</span><br /> <span style="font-size: 16px"> ([[ AUTOMATE WHAT'S NEEDED]], [[S GOOD PROGRAMMING PRACTICES]], [[E MAINTAIN THE TESTWARE]])</span>
+
* <span style="font-size: 16px">a rule about how to perform a particular step in a test automation process, for example to improve efficiency</span><br /> <span style="font-size: 16px"> ([[ AUTOMATE WHAT'S NEEDED]], [[GOOD PROGRAMMING PRACTICES]], [[MAINTAIN THE TESTWARE]])</span>
* <span style="font-size: 16px">a suggestion about how to resolve a management issue ([[ SET CLEAR GOALS]], [[ DO A PILOT]], [[ DEDICATED RESOURCES]])</span>
+
* <span style="font-size: 16px">a suggestion about how to resolve a management issue ([[SET CLEAR GOALS]], [[DO A PILOT]], [[DEDICATED RESOURCES]])</span>
* <span style="font-size: 16px">ways of dealing with test execution problems ([[ FAIL GRACEFULLY]], [[ STEEL THREAD]], [[ KILL THE ZOMBIES]])</span>
+
* <span style="font-size: 16px">ways of dealing with test execution problems ([[FAIL GRACEFULLY]], [[STEEL THREAD]], [[KILL THE ZOMBIES]])</span>
 
* <span style="font-size: 16px">a description of a behaviour that, if not contained, may compromize the entire automation project ([[ Failure Patterns]])</span>
 
* <span style="font-size: 16px">a description of a behaviour that, if not contained, may compromize the entire automation project ([[ Failure Patterns]])</span>
 
<br /> '''<span style="font-size: 16px">Classification of patterns:</span>'''<br /> <span style="font-size: 16px">Patterns have been divided into categories depending on their scope:</span><br />  
 
<br /> '''<span style="font-size: 16px">Classification of patterns:</span>'''<br /> <span style="font-size: 16px">Patterns have been divided into categories depending on their scope:</span><br />  

Revision as of 12:22, 3 April 2018

What is a pattern?A pattern is a general reusable solution to a commonly occurring problem within a given context. They are commonly used in software development.
A test automation pattern is a way of solving an issue or problems in test automation that has worked in practice for many people. In other words, a pattern is expert knowledge proven by repeated experience.
Patterns do not exist in a void: each is a solution to an issue that occurs under some particular conditions. Also patterns are often associated with other patterns, either because they can only be implemented using other patterns or because they can only be applied after other patterns have been put into practice. As an example think about the pattern “car”: can you really believe that we could use this “pattern” so successfully if we hadn’t also implemented the patterns “paved road” and “gas station”?

The relationship to other patterns forms the “grammar” of a pattern language. Just as in English you cannot write the parts of a sentence in a gratuitous sequence, but you must follow rules, so also with test automation patterns you have to follow their natural hierarchy.
In this wiki, we show PATTERNS in CAPS.

What a pattern is not
A pattern is not

  • a finished solution that you can just "plug in" directly to your situation
  • prescriptive (you must do this)
  • a step-by-step procedure (do this first, then that)


Patterns are ideas that you can adapt and implement in your own context and which will hopefully help solve some of your issues.
Typical test automation patterns:The following are some solutions that are described in the patterns in this wiki.


Classification of patterns:
Patterns have been divided into categories depending on their scope:

Process Patterns
Management Patterns
Design Patterns
Execution Patterns
Within each category the patterns are listed alphabetically.

The Test Automation Patterns Mind Map shows an overview of the Test Automation Patterns, and for each of the four categories, there is a mind map showing the Patterns with the next level of patterns (with a "+" symbol to indicate further "called" patterns. These mind maps are static within this wiki (you can't click on them, they are not automatically updated). The mind maps open in a separate tab, so that you can refer back to the "big picture" when you are browsing through the patterns.

Home Home