Skip to main content

Automation of Software Testing

There are two major phases involved before a software comes to market. 
  1. Development
  2. Testing 
Development is the phase where the software programmers write code as per the given requirements. Software Requirement means the list of tasks the software should perform. Development phase also includes designing of the front-end or the user interface and the back-end data storage. 

Testing is the phase where a set of software testers verify whether or not the software performs the tasks as per the given requirements. It also includes observing the behavior of the software in adverse conditions. This phase assures the quality of a software. 

Both the above phases are equally important for a software development life cycle.

There are mainly two types of testing:
  1. Black box Testing
  2. White box Testing
In Black box testing, the tester does not have the knowledge about the underlying code. In other words he just tests the overall behavior or functionality of a software.
In White box testing the tester has knowledge on the source code and his test approaches mainly focus on checking the behavior of the functions/methods of a program.

The task of a tester is to write the test cases, execute them and capture the output. If we observe closely, we can see that writing the test cases is the key phase of the entire testing phase. And writing the test cases does not need any knowledge outside the requirement document and the source code itself. This makes us think that Can we automate the Testing phase ?

Well, an approach towards automation could be:
  • If we can write the requirement document in a given format, then the test cases can be inferred automatically for the functional testing. This may need the Artificial Intelligence technology.
  • If we can analyze the source code intelligently, we can derive the test cases for the white box testing. (This is already achieved with a good success percentage)
We may need human intervention to setup the test environment. There are many tools and technologies available in market to execute the test cases and to capture the outputs automatically. 

The cost and time associated with software testing represent a significant portion of a project’s overall cost and schedule, and therefore improvements on increasing testing productivity and reducing labor hours can have a measurable impact.

Please share your thoughts and comments below.

Thanks,
S. R. Giri

Comments