QA Process and Test Automation

 

Quality Assurance is a Process

Unfortunately, Software Quality Assurance (QA) and Software Testing are used interchangeably. The myopia is stark. We are two decades into the 21st century and folks think that testing is for flunkies. I have seen many shiny new app's market share stagnate. At this point, many shops, especially startups, begin to reach for help to define a QA process. Don't be that shop.

The Process

The following is a high level view of the components of QA:

 


There are many layers in this simple diagram. Without proper experience, implementing a QA process can be unwieldy. But note, Software Quality Assurance is a twin discipline: Process Quality Assurance and Product Quality Assurance. Subsets of Product QA is what is commonly/erroneously called QA. QA and Software Testing are not synonymous:

 



 What is Software Testing
 

 Testing is focused on defect identification: akin to a police detective at a crime scene. It is cheaper to avoid software risks than to correct them. You want your Testing processes to excel at defect prevention. The undermentioned is a snippet of a Software Testing process:

 

Snippet of Testing Process

If improperly implemented, Software Testing processes can be daunting, expensive and many shops try to avoid it or implement the minimum. Testing does not have to be expensive. I specialize in minimizes testing expenses and the complexities related to testing process engineering. Shops will get their products in that sweet spot between customer satisfaction and business need.

Test Automation Enhances QA

Misconception

Yes, Test Automation is also process driven. Several years ago, a global phone, electronics, and appliance manufacturer posted an ad attempting to recruit engineers to automate EVERYTHING. The misconception of test automation is profound but it is not unique.

 I will list some of the misconceptions surrounding Test Automation:

1.     Universal Application of Test Automation: not everything can be automated

2.     Test Automation cannot replace human testers: test  automation enhances manual testing; it extends the reach of human testing. The complexity of the human mind cannot be duplicated by computers. 

3.     100%  test coverage. The number of errors in a software product/project is unknown and hence infinite: I like to call it R-spaced

4.     The system under test must be testable: ex. web, customer-facing applications are typically more testable than developer-centrist tools and lend themselves better to test automation

Benefits of Test Automation

I have shortlisted the benefits of test automation, Consider:

1.     Easier test execution and analysis

2.     Easier reporting and creation of metrics

3.     Improved Smoke and Regression Testing: I build frameworks that execute test cases in response to change in SCM (ex. Git), as in Smoke Testing. Automated test cases can be run off hours. Results can be emailed to stakeholders when the tests are finished

4.     Properly execute mundane tests: the human psyche detests monotony and this is one of the places where errors creep in. The computer doesn't have a psyche and can be delegated to the mundane. QA Analysts can concentrate on more complex and stimulating forms of testing

5.     Improved Performance Testing: there is an optic floating in my head of folk on Wall Street using stop watches and load testing

6.     Automation delivers quality related info with less human error

Show Case

We are able to build automation frameworks that dovetail into Jenkins or exist as standalone Spring MVC applications (the popular choice). 

 
The undermentioned is an example of one of the dashboards of the Sping MVC test automation app.

 

A Dashboard


 The dashboard is generally available to all stakeholders. Sometimes, a dashboard has a running list of the slowest test cases:

 

Slow Running Tests

 

The Stakeholder can get detailed information of an individual test suite:

 


A Successful Test Suite


Test Suite With Failures

The stack trace would not make sense to all stakeholders but the development team will find it very useful.

 


A Mobile Web Dashboard

The app has administrative functionality. We recommend that admin screens be reserved for QA Analysts: they can re-run test individual cases or test suites on demand, define and config JUnit tests, poll Git etc.

 

An Admin Dashboard

Let's talk. We can define the QA process that improves your market share.

Comments

Popular posts from this blog

BUILD THAT WEB TEST AUTOMATION FRAMEWORK PART 1