Back to List

“O Testing Tree, O Testing Tree” - A Comprehensive Look at QA Testing for the Holidays

Tim Morrow Tim Morrow  |  
Dec 21, 2018
 
“O Testing Tree…O Testing Tree…how lovely are your branches!” Yes, for a Quality Analyst (QA) tester, the tree pictured below is a thing of beauty! It represents a comprehensive plan for testing an application and a roadmap for delivering high-quality products free of defects that delight our customers.

The Testing Tree picture below provides answers to three fundamental questions:
 
  1. How often should you test?
  2. What should you test?
  3. Who should perform testing?
 
Let’s take a closer look at each section of the tree together…
 
testing-tree.png
 

Unit Tests

These small, simple and fast coded tests written by developers form the foundation of all testing. These tests should be automated and run daily or hourly as new functionality is being developed. Their small size allows you to specifically identify where functionality may be broken. And when a multitude of these tests are strung together, they form a great barrier against bugs getting through into your application. The concept of Continuous Integration is a fundamental pillar of a DevOps world built primarily on the concept of test automation.
 

Integration Tests

Integration tests are designed to test the boundaries/connections of your application. These tests are more complex and will depend on the structure of your application. For more modern applications, these tests are very useful for API testing. These tests typically take longer in nature to run and are usually done nightly. The testing effort is usually handled by a combination of Devs + QA/Tester resources.
 

Acceptance Tests

Acceptance tests are manual tests conducted by the Business Analyst (BA) / Project Manager (PM) / QA based on the Acceptance Criteria surrounding the functionality being released. Acceptance tests are conditions that a software product must satisfy to be accepted by a user, customer, or stakeholder. Acceptance tests should center around Functional Criteria, Non-Functional Criteria (e.g. design elements) and Performance Criteria (e.g. speed/response time). These tests are very manual and thus costly to create and execute. 
 
A commonly used format of Acceptance tests is the “Given-When-Then” formula:
 
  • (Given) some context
  • (When) some action is carried out
  • (Then) a particular set of observable consequences should obtain
 
For example:
 
  • Given my bank account has a positive balance, and I made no withdrawals recently,
  • When I attempt to withdraw an amount less than my balance and account withdrawal limit,
  • Then the withdrawal should complete without errors or warnings
 

UI Tests

UI Tests are those tests which explore validation or other logic contained in the user interface, as in a web page, for example. These tests can be run manually or automated. Ideally, you would use manual UI tests during the early stages of development on a UI, and shift over to more automated testing as the UI becomes more stable. Automated tests can be difficult to maintain, so it’s important to employ these near the end of an application’s development.
 
During the creation of automated UI tests, a tester records a series of action recordings that can be reused and run at frequent intervals in the future when new functionality is released. The benefits of Automated UI tests are:
 
  1. Speed Time to Feedback
  2. Find Regression Errors
  3. Save Tester Effort and Time
  4. Validate Your Business Logic
  5. Improve Automated Deployments

For higher level testing of the UI, which may change much more often, manual exploratory testing is a better use of resources.
 

Exploratory Tests

Exploratory testing is ad-hoc testing carried out by development teams, including developers, testers, UX teams, product owners, BAs, QAs, and more, by exploring the software systems without using test plans or test suitesThese tests rely on a tester's intelligence and creativity to validate quality, usability, performance, and experience. They assume the tester has a general knowledge of the system and how a user would typically use the system. The goal is to break the software and/or identify anomalies in certain user-patterned scenarios. These tests are always manual and very expensive to run.
 

Recap

The testing tree provides us with a fun way to visualize all the elements needed in a comprehensive QA testing strategy. This strategy is vital to ensure the delivery and maintenance of quality products that delight and excite our customers. This holiday season, let's all make sure that our testing tree does not have any “bare spots”, and remember to water it regularly so that all of the products we create can shine bright this holiday season!
 
From all the team at Skyline Technologies, we wish you and yours a Happy Holiday season filled with laughter and joy.

*Special thanks to Microsoft’s DevOps Testing Class for introducing me to the concept of the Testing Tree and its associated concepts.

 

Love our Blogs?

Sign up to get notified of new Skyline posts.

 


Related Content


Blog Article
Roles and Responsibility Activity (Habits of a Successful Agile Team)
Rachel RieckRachel Rieck  |  
Jul 11, 2019
If you have experience on agile teams and are looking to tweak a few things or try something different, then this blog series is right for you. This is the third blog in the Trifecta of Greatness series. For more background on the strategies and tactics our Solutions Consulting Director learned...
Blog Article
10 Communication Tips for Business Analysis and Project Success
Brian LaehnBrian Laehn  |  
Jul 09, 2019
I am often asked what is the most essential skill that a Business Analyst (BA) should possess. 100% of the time my answer is that a BA must demonstrate the ability to communicate effectively with their project team and all project stakeholders.   Communication, when performing...
Blog Article
How to Use Report Tables to Model and Analyze BI Requirements
Rachael WilterdinkRachael Wilterdink  |  
Jun 27, 2019
If you’re involved in eliciting, modeling, analyzing, or consuming requirements for BI projects, this post is for you. Over the next several months, we will be releasing 10 Techniques for Business Analysts (BAs) to model and analyze Business Intelligence (BI) requirements on our blog...
Blog Article
Seeds of Vulnerability (Habits of a Successful Agile Team)
Rachel RieckRachel Rieck  |  
Jun 20, 2019
My last blog (Introduction to Team Delta) talked about a project team I was on called Delta that was very successful. In this blog, and the ones following, I'm going to talk about the characteristics and the foundation that we found was key to our success, as well as what was different from...
Blog Article
How to Use a Glossary to Model and Analyze BI Requirements
Rachael WilterdinkRachael Wilterdink  |  
Jun 13, 2019
If you’re involved in eliciting, modeling, analyzing, or consuming requirements for BI projects, this post is for you. Over the next several months, we will be releasing 10 Techniques for Business Analysts (BAs) to model and analyze Business Intelligence (BI) requirements on our blog...