AI in Test Automation – Part 1

AI in Software Testing

A couple of years back, the focus of Testing was “Shift Left”. It is still the focus for the companies who are not able to adopt the Shift Left practices.

Now after Shift Left / CI/CD, Automation tool companies are now looking how to bring intelligence in Test automation which can help in better test coverage and delivering quality at speed.

In this post, we will go over some intelligent features of Functionize and how they are using AI in bringing intelligence in automation and efficiency in Quality and Delivery.

Artificial intelligence ( Machine learning, Computer Vision & Natural language processing) can help in speeding up the automation test scripting, analysis and maintenance.

Below are some of the examples of how Functionize is using AI which helps in delivering Quality@Speed:

  1. Faster test creation: Write tests in plain English (no, not Gherkin) and the framework with identify the objects by analyzing the DOM and perform actions. Example below:
    • Open xyz.com
    • Enter Username “abc”
    • Enter password “asdf123”
    • Navigate to Contact module.
    • Click in person record “Braidy”
  2. Self Healing Scripts: Framework identifies the script failure reasons(due to change in object properties) and give your suggestions on fixing the scripts or fix the script by itself?
  3. Autonomous Testing: All you need to do is – place a their tracking widget in your web app. Functionize will automatically create new test cases based on how live users interact with your site.

I am sure this short post will give you some ideas – how AI/ML can make our life easy and can help in delivering fast with quality.

Full Stack QE Competency

  • Systems thinking
  • Software Testing & Test Design
  • End User Thinking
  • Test Management to reporting, analytics, and matrices
  • Performance Engineering
    • Service Level Performance
    • Client Side Profiling
    • BFF Performance
    • DB Performance
  • UI Level Functional Testing & End to End Testing
  • Code Quality and Coverage
  • Exploratory Testing
  • Service Level Functional Testing & End to End Testing
  • CI/CD (DevOps mindset)
  • Continuous Testing Mindset
  • Product Expertise
  • Understanding System Architecture & Design
  • Security Testing
  • Unit Testing & Test-Driven Development
  • Effective Communication & Leadership

The main responsibility, however, lies a bit deeper. A full stack QE engineer should act as the driving force of Quality in a team. Working together with the Software engineers, it will be their responsibility to implement a “Quality is everyone’s responsibility” mindset.

If DevOps is the goal of your company, the person that will play a testing and quality consultant role should be the Full Stack QE.

The road from “Quality Engineer” to “full-stack QE” is a long and challenging one, but a full stack QE will find that there are more career opportunities available, and they will have the opportunity to have a much greater influence on the product, which will reach the end-user at a higher level of quality and speed than ever before.

Source: http://syscolabs.lk/blog/full-stack-quality-engineering/

Why are full stack QEs needed?

With the adoption of Agile development and DevOps culture, a story/feature is not complete without testing, and rather than being reactive by looking for bugs after development, full-stack QEs will focus on proactively looking for defects throughout the planning, design and development stages. When full-stack QEs work within a developer’s technical stack (as in the example, working within the JS stack as the developer), they can be Agile, prevent bugs, and increase engineering productivity. Full-stack QEs treat testing as defect prevention than defect detection.

Reference: http://syscolabs.lk/blog/

Who is a Full Stack Quality Engineer (a.k.a Test Engineer)?

Tech Stack - Full Stack Quality Engineer

A Full Stack Quality Engineers (a.k.a. Testers) is the opposite of a traditional black box tester. In contrary, a Full Stack Tester, creates business value by giving fast feedback loops on all layers of a technical process. Full Stack Testers can provide the information about the software quality faster by automating the testing activities of each layer. They are adaptive, collaborative, responsive and culturally fit in as an agile team member.

Full Stack QEs are professionals, or “nerds”, with knowledge of operating systems, databases, web servers, server side codes, browsers and client side code. These skills and flexibility allow the tester to deliver quickly and efficient.

Full Stack Testers also go deeper and specialize in automated testing with usage of different tools e.g. Tosca, Selenium, more examples. Therefore, a base knowledge in programming languages like Java is very normal within this chapter.

Their focus is on building quality in the software rather. They gave priority to Defect Prevention over Defect detection.

How to become a Full Stack Tester:

  • Continuous Learning – Reading, Conferences, Sharing
  • Continuous Practicing – Practice new techniques
  • Continuous improvement – retrospect your practices, process being followed at set intervals and Seek for better solutions.

REMEMBER: Being technical is not enough. Understanding the need for Continuous Delivery, Continuous Integration, Continuous Testing, Its about using the right skills at right time. Technical skills can be gained easily, but change in mindset and ownership are the difficult things to adopt.

In upcoming posts, we will learn in detail about – Skills required for Full Stack Quality Engineer and How to become a Full Stack Quality Engineer.

References:
https://www.valori.nl
https://www.slideshare.net/kmstechnology/
https://www.slideshare.net/NalinGoonawardana/