Subscribe by Email


Showing posts with label Test Design. Show all posts
Showing posts with label Test Design. Show all posts

Friday, July 6, 2012

What skills needed to be a good software test automator?


If you have studied the history of the test automation process you might have observed that there have been so many failures which have now become the lessons for the entire testing community. Because of the lessons learnt it was decided, that the scripts that will have to be developed must be reusable. 
In order make most of any testing methodology, it is required that it must be made manageable as well as reusable. 
There are certain things that a tester should keep in mind to be a good tester:
  1. Test automation is not a sideline but rather a full time effort.
  2. Test frame work and test design should be treated as separate individual entities an not as the same one.
  3. The test frame work should be independent of the software system or application that is under testing.
  4. It should be easy to expand, perpetuate and maintain the test frame work.
  5. The test design as well as the test strategy should be independent of the frame work.
  6. The test strategy should be so effective that is should be capable of removing the complexities related to the test frame work from the testers.

Skills needed to be a good software test automator


In this article we have focussed up on the skills that are needed to be a good software test automator. Some other skills are:
  1. Good logic for programming code of the scripts.
  2. The automator must have good analytical skills.
  3. The automator must have adequate knowledge about the testing tools that are to be used in the automation process.
  4. He/ she should have the habit if thinking out of the box.
  5. Critical in nature
  6. A good automator can think well from the user’s point of view.
  7. A good automator keeps an eye on the details of the test automation process.
  8. The knowledge about domain is a must.
  9. Good judgement skills.
  10. Good code writing skills.

Qualities of a good Test Automator


- A good test automator is the one who implements a test strategy that supports development of the intuitive tests and can be executed both via automated tests and manually.
- The test strategy that a good test automator uses will allow the tests to highlight the steps to be performed.
- A good test automator develops a frame work to harness the benefits form the implementation of the key word drive testing scripts and tradition testing scripts. 
- A good automator implements a test automation frame work in such a way that it is completely independent of the software application that is under question. 
- A good automator fully documents and publishes the test automation frame work.
- One thing that should always be kept in mind is that the testers are only testers and not programmers. 
- Good testers and automators are those who have both the testing as well as programming skills. 
- Most of the testers are domain experts only having zero or very little technical skills that are an immediate requirement for the software testing. 
- Many testers also have a habit of splitting the time between testing and development phases and so they do not require to learn a complex scripting language. 


Thursday, July 5, 2012

Describe test design techniques like: State-transition diagrams, Decision tables, Activity diagrams.


The testing of the software systems or applications apart from the human labor is aided by a variety of testing techniques. In this article we are going to discuss about three of such software testing techniques mentioned below:
  1. State transition diagrams,
  2. Decision tables and
  3. Activity diagrams.
1. Test Design Technique - State transition diagrams 
- These are some kind of diagrams that give a detailed description of the behavior of the software systems and applications. 
- The basic condition for the state transition diagrams is that the description of the software system or application should be composed of a particular number of states and employ a reasonable abstraction.
- There are various forms of state diagrams and all of them differ with each other in respect of their semantics. 
- However, the description provided by the state diagrams is quite concise and represents only an abstract view.
- The behavior of the software system or application is first analyzed and represented in series of events that could take place in one or more possible states. 
- Each diagram provides a visual representation of the objects belonging to a particular class and the different states of the objects spread through out the software system or application can be tracked. 
- Also, the finite state machines can be represented graphically by the state transition diagrams. - The use of state diagrams under the concept of finite machines was introduced by C.E. Shannon and W. Weaver. 

“Directed form” is the most classic form of the state transition diagrams for a finite automation (FA) or finite state machine. It consists of the following elements:
      (i) Vertices: a finite set of states which are represented by circles bearing a unique designator   label.
        (ii) Input symbols: a finite collection of input designators.
        (iii) Output symbols: a finite collection of output designators.
        (iv) Edges: meant to represent the state transitions.
        (v) Start state
        (vi) Accepting state

2. Test Design Technique : Decision Tables
- This test design technique represents a compact way to model complicated logic by associating the conditions with the actions that have to be performed. 
- The decision tables consists of 4 quadrants as stated below:
         (i) Conditions
         (ii) Condition alternatives
         (iii) Actions
         (iv) Action entries
- Each decision in a decision table corresponds to a variable, predicate and relation whose possible values are stated in a list among the condition alternatives. 
- Each action is equivalent to procedures or operations that are to be performed. 
- The actions to be performed are specified by the entries made. 
- The decision tables are known to vary widely according to the way in which the conditions alter and also according to the representation of the action entries.
- Most of the decision tables make use of the simple true or false values that are used to represent the alternatives to the conditions stated in it. 

3. Test Design Technique : Activity Diagrams
- This is another graphical aid that represents the work flows of step wise actions and activities along with aspects like choice, concurrency and iteration. 
- Usually these diagrams make use of the unified modelling language to provide a description of the operational and business step by step work flows of the components of a software system or application. 
It constitutes of some basic shapes like:
(i)  Diamonds: represent decisions.
(ii) Black circles: represent the start of the activity.
(iii)Encircled black circles: represent the end of the activity.
(iv)Rounded rectangles: represent activities.
(v) Bars: represent start (split) or end (join) of the activities that are concurrent. 


What are principles of good testing scripts for automation?


By test automation frame work we mean the overall environment that is constructed for the execution of the tests. These testing frameworks as well as the test cases are handled with the help of test scripts. A lot depend on these tests scripts since it is the efficiency of the test scripts that decide how efficient the testing process will be. 

The point here is that there are several scripting tools around us and we need to select the tools that will work quite well for our software systems and applications. In this article we have discussed some principles of good testing scripts for test automation. 

What are principles of good testing scripts?


- The testing scripts should be application or software system specific and should have been captured or manually coded in to the proprietary language of the automation testing tool. 
- Good testing scripts are those that have been modified in order to accommodate the variable data. 
- These accommodated variables are used in the key input fields of the software system or application as well as program selections.
- By the virtue of these variables the script is able to drive the application with external data that is supplied by calling routines that invoked the test scripts.
- Good scripts often house the very fragile recognition strings as well as hard coded strings very well required for the software components when they operate. 
- The good testing scripts are quite flexible and are not broken whenever a change is made to the software system or application or if the application software is revised. 
- The particular scenario of any valid event occurs 100s of times in the testing scripts that are involved in the testing of some software system or application. 
- It is possible that during the testing of the software system or application the testers involved with the testing may get a false sense of security and satisfaction with the test results when the testing scripts used are not good enough. 
- Another principle of good testing scripts is that the all of the efforts related to test design are virtually developed in that language in which the automation tool has been scripted. 
- It is also possible that the scripts might be duplicated in both automated and manual script versions. 
- A test automation frame work that relies wholly up on the testing scripts represents the quickest as well as the easiest means for the implementation of the automation testing tools. 

Some other principles of good testing scripts are:


There are few other principles of good testing scripts for test automation as stated below:
  1. Proper exception handling techniques.
  2. The scripts should adhere to the coding standards as well as the guiding standards.
  3. Proper frame work should be used to create the testing scripts.
  4. Comments should be provided for each and every step in the scripts.
  5. A standard format for exception handling and definition of the functions should be followed.
  6. Use of appropriate synchronization techniques.

To Conclude:


- The best practices for writing the code should be chosen and used to create testing scripts. 
- In some, the optional explicit can be used. 
- It is necessary to follow the process of commenting since it is one of the good practices and make the code more readable. 
- Whenever you sense some bug or fault, debugging technique is a must to be followed. 
- All the testing scripts must follow a clean up routine after every execution. 
- Whatever the scripts have been developed they must be reusable. 
- Usually the scripts are executed via short programs that have been extensively parameterized. - The reusability of the testing scripts is an added advantage is in case in you later need to perform regression testing. 


Facebook activity