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

Popular posts from this blog

Java Tutorial

Today Java is the most widely used programming language and is used in most of the devices. You can do almost everything using Java. I find Java a very interesting language. I have seen many students and newly joined software programmers in industries have still not understood some basic concepts of Java. So I decided to start writing blog on Java to help those programmers who lack good guidance in learning Java. I will try to keep the lessons simple and understandable. I will also talk about advanced concepts in simple way. If you want to learn on any specific topic, then write it in the comment. I will try to prepare lessons on those topics as well. I hope it will help you. Please visit:  https://srgiri25java.blogspot.in/  for my Java tutorial blog. Thanks, S. R. Giri

Welcome to my blog

I am a software engineer and researcher by profession. I like to study topics on emerging technologies and new research areas especially on program analysis. I do perform my own experiments on new concepts. I develop utility software tools on my personal interest. I will share my tools, research papers and thoughts here. Keep watching my blog ! Twitter       LinkedIn S. R. Giri, Bachelor of Technology  in Computer Science and Engineering (BPUT, Odisha, India) Master of Technology  in Computer Science and Engineering (IIIT Bhubaneswar, India)