Where were we and where are we today in automation?
Software provides the core functionality of most electronics products. These “software-intensive systems” have a large penetration into daily life and this penetration is expected to grow even more in the coming years. In addition to the growth in size and complexity, these software systems need to be of ever increasing quality and need to be developed in ever-shorter time frames. To tackle these increasing quality requirements, testing is an important step in the development of a software-intensive system, as it checks if requirements to a system have not been met. To remain competitive in the development of these systems, industry needs to increase productivity by means of better testing practices.
Starting from the initial stage of testing where automation tools were not available rather the dependency was highly on the unit tests performed by Developers and then manual testing by QA engineer. In Automation we have evolved from Core framework to Record and playback to Custom frameworks. And in custom frameworks, one starts to build the frameworks like Modular framework, Data Driven framework, keyword Driven framework, model based framework and eventually end up with to Hybrid framework solution. However the need has grown from these tool bounded scripts to easily understandable one’s, for e.g, like for non-coders like business analysts.
This need gave birth to newer type of framework which has evolved out of the weakness of Test Driven Development (TDD), called Behavior Driven development (BDD). BDD covers the response to the issues encountered in test-driven development:
- Where to start in the process
- What to test and what not to test
- How much to test in one go
- What to call the tests
- How to understand why a test fails
BDD covers the ‘desired behavior’ which has business value for whatever entity commissioned the software unit under construction. There are many tools which are available in the market to support BDD, such as JBehave, Cucumber and Twist etc. Even after this advancement in testing, the question which still remains at large it, what is there in future for automation? To answer this we need to first understand what is in progress in software industry that requires immediate futuristic attention to address this question.
Smart UI Application Progress
Intelligent applications are aggressively occupying the smart applications running hardware which are now a day’s commonly visible on smart phones, PC, TV, games consoles etc. Smart applications such as drawing based, security based, motion sensor based have become new vertical in software development and testing. Due to humongous rise in demands of such devices and software, this has given rise to boom in the software industry. Consequently this has enabled and influenced us to write software for smart mobiles and portable devices.
Software Test automation needs to support smart UI Applications
In order to support such smart UI applications, we definitely need to test them, and in order to test them we definitely need to perform test Automation to eventually support such technology. Consecutively our innovation must also work in this direction of development of such tools which support and drive.
What is expected?
Hence there is need for new level of test automation products that can reduce the cost of implementation and ownership so that you can focus on testing your application instead of developing your tests. These tools should provide a pre-written test framework that can substantially reduce — or even eliminate — the need to learn and use scripting languages.
Such test frameworks, should have the capability to:
- Make automation accessible to testers who aren’t programmers
- Simplify script development
- Reduce the maintenance effort
It could be possible that most of these frameworks can be wrapped around one or more existing commercial/freeware test tools, but not always. The primary difference among the products relates to their underlying execution “engine” or script library and whether it is mapped to action words, windows, objects or classes.
Vision for Future of Automation
On following few good practices, the future of test Automation and test automation management can be in good state:
- Quality of test code should be good for production. Means, Use Private/ Protected member variables /methods. Make them public only when required
- Traceable and Making Debugging Less Painful
Test automation management tools should ease the process of debugging by providing useful information and have all relevant references in one place.
- Import only those classes which are required
- Carefully Use xPath feature, lesser use or avoid Indexes.
- Keep test data separate from test scripts.
- Valuable Reporting
Test automation reporting should be meaningful and flexible to both test engineers and IT managers. An outstanding management tool provides metrics such as trend analysis and key performance indicators for high-level decision making. Meanwhile, it should also have low-level log and statistics that are useful for debugging and internal analysis.
- Instant Recognition of Changes in Testing Results
It is essential now to pick up changes in automated test results almost immediately, which requires the management tool to shift information and improve test efficiency.
- Compliance with Testing Systems
Easy integration with other systems will help manage different tasks on a single platform.