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:
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 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
Post a Comment