Thursday, May 23, 2013

Future of Software Testing - A Practical Approach for Service Industry

Software Testing of the present day scenario is either manual or automated wherein efforts are invested to get the desired Quality Analysed Validations or Verification based results. The future of software testing is an area not much thought of; in terms of technology based improvements or innovations. Rather people and organizations have largely invested on improving the overlay of various test management/delivery related processes. 

The problem with the current approach is that we are able to sustain and also grow in the respective business but what about threat and sustainability issues if an autonomous test mechanism is developed. Large organizations are focusing on creating capabilities and nurturing software testing talent on the basis of the software that is ready to be tested or has been tested once in its life cycle or is currently under development to be tested. But what about if the technology or principles on which software testing itself is based upon will it never change? Should it never evolve? If we will continue to linger upon service providing based on the eons old manual and software solutions will this area ever advance?

In order to get rid of these age old techniques new approaches has to be considered and developed plus adopted for this technology area to grow. There are 4 approaches out of which I do not foresee any clear winner or rather I should say I cannot predict which one shall be adopted more. 

Starting from the first one is: AI based Object Identifiers with Metadata based Action Definitions. These Object Identifiers will go through  any -> to-be-tested application regardless of the environment via which it is hosted. It will then identify all the user actionable and non actionable fields and make a classical approach based repository. Now the tool will be already be equipped with AI based Metadata Action Definitions which will enable the tool to process and analyse the objects to create test actions. When the Test Analyst will complete the analysis of the same it will execute the same and hence the software testing will be completed with proper capture of Test Actions (Evolved out of Test Design) and Test Results to generate Test Reports in a matter of minutes. This tool can also hold the test analytic from the current test to re-use the same test actions in case similar kind of application comes for any test assignment. 

Second Approach is: In current scenario (Laughable Fact) the business requirements gathering is not based on any technology framework which makes it a stenographers job apart from the understanding of the business imperatives/impacts/functionalities etc. which is a specialist's job. The business requirement gathering too should follow a industry standard and all the business logic collection should be done based on metadata or object identifiers based tech. This is will not only enable the testers to easily verify their findings rather reading the functional specifications documents as boring novels. But also enable the developers to easily follow the business logic as per business definitions logic. In order to validate the test actions itself business will also create a Requirement Documents in the Metadata Identifiable format to verify the test results. 

Third approach can be: AI Based Object Identifiers Embedding in Source Code. This approach will enable a self inclusion of Test Actions identifiable Object Identifiers based Metadata inclusion into the source code itself at the time of development. In this case it would be easy for the developer to code the application as per the business requirement and Unit Test it also with negligible efforts.

The fourth or the final approach is a bit tedious and can be less popular: Usage of AI based Object Identifiable Neural Network derived Test Actions Repository. In this approach a tester can either enter the test flow or test actions using his/her conventional test design and then see the tool identify the test actions and execute them. Or it can be run in a learning mode wherein the tester can record how it tests a particular application and hence can train a neural network to test the same in subsequent test phases. 


In order to get algorithms or technical consulting on the above ideas please comment on my blog or send me mail :) 

No comments:

Bad practices for a Software Test Engineer

People mostly talk about the good and the best practices but it is also important to know the worst or the bad practices which a Software ...