Tech Trends and You
By Mukund Wangikar
In the hyper agile era, the role of a Software Tester is ever-changing. Instead of just saying ‘What is going wrong?” NextGen testers should also focus on “Why is it going wrong?”. A trend of that has been identified by Full-stack Tester. Other top trends to be aware of, as identified by the 'World Quality Report for 2019-20', are:
- Intelligent Automation
- AI & ML in Quality Assurance
- Test Data and Environments
Currently, the demand for speed has evolved the role of quality engineering. Trends are changing and having just automation is no longer sufficient,‘Intelligent Automation’ is the need of the hour. 65% of business users have difficulties in automating their tests. It is challenging owing to the frequency of changes and updates in the application with every release. In the coming years, there will be a major shift across business interests in automation techniques.
Intelligent Automation is defined as:
An intuitive and dynamic intelligent automation framework: an intelligent automation framework should have capabilities to sense the most vulnerable modules by analyzing defect patterns.
Dynamic intelligent automation framework: most of the current test automation is focused on linear execution of workflows. Dynamic intelligent automation should choose execution workflows based on the recent inputs from the previous execution.
Self-generating environment: test environment automation for provisioning, configuration, testing, deployment, and optional management.
Intelligent prioritization of regression testing: Identification of impacted areas due to new features and adjust the automation suite to focus on the respective features.
Self-provisioning test data for the test automation: test data automation is a hybrid approach of Test data management (TDM) and Test Data Generation (TDG).
AI & ML in Quality Assurance
During the testing cycle of design, execution, and analysis, AI can play a meaningful role. AI engines consume User persona and usage patterns, a customer empathy map can also be fed to AI engines to design tests. Regression optimization should be prioritized based on defect patterns of previous executions. However, it is time-consuming for any human to perform effectively and accurately.Regression test suite optimization is quite a pain area for many companies, it is often human experience-driven and less analytical than it needs to be. Machine algorithms are helping in finding an apt user journey to minimize the collateral damage through new feature addition. Each code revision introduces new defects through regression testing that exposes collateral damages. AI algorithms require previous execution data to build a model for defect forecasting. Once the model is mature, it gets checked against the verified outputs to calculate the accuracy of the model and can be used for regression optimization. Monolithic, singular documentation about test reports can easily convert into 'ChatBot' based conversational interface.
The industry is still figuring out the extent to which they can explain AI behavior. The success of AI implementation is not about AI skills but its an amalgamation of general business acumen, skills-based on statistics, math combined with skills and knowledge about a specific industry. AI algorithms can effectively be used in pro-active defect finding methods. Effective use of ELK stack (Elasticsearch, Logstash, and Kibana) helps in advance testing through production log analysis. For example, if you would like to identify production defects, which are difficult to find with visuals. You can reverse engineer user journeys based on the errors for an incident, allowing you to raise a defect before the user notices it. ElasticSearch helps you with log searching. Logstash is used for both shipping as well as process and sporting logs and Kibana is a visual representation tool. Combination of three tool help will provide steps to reproduce the defect.
Test Data and Environments
Provisioning and generation of Test data for each iteration of testing is a challenging task. Organizations are taking a holistic approach to truly make it more meaningful.
The world quality report statistics show that ⅓ companies still use traditional methods to maintain their test environments. The increased cost associated with the growing demand for test environments, means more companies are moving towards virtualized and containerized environments. Environments such as Docker can establish multiple environments for automation in the cloud to run in parallel. This requires an automation framework for environmental management in the DevOps lifecycle, including building and deploying automation for Continuous Development, Continuous Integration, Continuous Testing, and Continuous Delivery.
Building a replica of a production environment is time-consuming and costly. Testers must perform wellness tests on Day 1 Deployment, however, you need to be very cautious while running the tests in a production environment. They must be conducted under careful supervision and business users should be informed in advance. There are many ways to do limited but effective wellness tests, which will not cause hurdles to the production environment, for example, run the test and then clean up the data.
As a NextGen Software Tester, What Should I Learn?
The future of software testing is versatility and automation. Exploratory testing will always remain, however, the tester, who can only read and execute the written steps will be gone. All types of testing must be supported by technology fencing. Based on the World Quality Report, other top trends in software testing are DevOps, AI in software testing, test data automation, API & Services testing, Performance Engineering, and Test automation using BDD (Behaviour driven development).
Tools like Maven, Jenkins, Gradle, Kubernetes, PMD, Ansible, Puppet, Docker are the latest trends in DevOps. Selenium is one of the promising test automation tools. Today AI is playing a major role in the domain. There are loads of other tools available that are AI-powered like Applitools, Appvance, TestCraft, Functionize, Testim, etc.
My list of things to learn.
Testers can start their journey with small steps. Create your list of “things to learn”. I have added plenty of topics in my list of “Things to Learn in 2020”. No matter if it’s a small testing technique or an automation tool, you should have at least one item to check off as “Learned” every week. Lots of YouTubers, blogs, and learning online sites like Ministry of Testing, Udemy, Coursera or Pluralsight will help you to acquire knowledge. It is very important that you should find an opportunity to implement what you’re learning.
Impact of COVID-19 to the Latest Trends
The quality engineering field does not remain untouched from the COVID-19 pandemic. There will be a cascading impact on the Quality Engineering space. It’s looking like in some instances, the co-located team structure will be gone. The virtual workforce will form a new era of agile development methodology. We need to evaluate new tools for virtual working. It will become the new normal.
We should start thinking about autonomous automation. Our intelligent automation frameworks should focus on test execution with little or no maintenance and should have a self-healing mechanism.
Mukund is the Global Practice Head at IVL Global and is responsible for the leading IVL Global’s Validation services globally to build world-class practice with a consistent approach, innovative culture, and customer focus.
Mukund is a well-known figure in the software quality assurance industry with 22+ years of experience. He has a proven record of facilitating long term business relationships with both customer and industry luminaries. Within the industry, Mukund has also held Director of Quality Assurance service at various software consulting and product development firms across the US, UK, and India. His strong winning attitude and personality are assets that will complement and enhance IVL Global’s strength to meet the needs of the customer.