This week I'm talking about how to put the Automation Test Wheel into practice. Let's imagine that I have a simple web app called Contact List. It allows a user to log in, view a list of their contacts, and add new contacts. I want to design a complete automation strategy for this application that will enable my team to deploy all the way up to production confidently. In order to feel confident about the quality of my application, I'll want to be sure to include tests from every segment of the Automation Test Wheel.
Unit Tests: I will make sure that every function of my code has at least one unit test. I'll run these tests using mock objects. For example, I will create a list of mock contacts and a mock new contact, add the new contact, and verify that the new contact has been added to the list of mock contacts. I'll update a contact with new data and verify that the contact has been updated in the list. I'll create a mock contact with invalid data and verify that attempting to add the contact results in an appropriate error. These are just some examples; for each function in my app, I'll want to have several tests which exercise all possible code paths.
Component Tests: My application is very simple and relies on just one database. The database is used for both authentication and for retrieving the contact data. I will include one test for each function; I'll send an authentication request for a valid user and verify that the user is authenticated, and I'll make one request to the database to retrieve a known contact, and verify that the contact is retrieved.
Services Tests: My application has an API which allows me to do CRUD operations (Create, Read, Update, Delete) on my contacts. I have a GET endpoint which allows me to retrieve the list of contacts, and a GET endpoint which allows me retrieve one specific contact. I have a POST endpoint which allows me to add a contact to the contact list. I have a PUT endpoint which allows me to update the data for an existing contact, and I have a DELETE endpoint which allows me to delete an existing contact. For each one of these endpoints, I will have a series of tests. The tests will include both happy paths and error paths. I'll verify that in each request, the response code is correct and the response body is correct. For example, with the GET endpoint where I retrieve one contact, I'll verify that a GET on an existing contact returns a 200 response and the correct data for the contact. I'll also verify that a GET on a contact that doesn't exist returns a 404 Not Found response.
User Interface (UI) Tests: This is where I will be testing in the browser, doing activities that a real user would do. A real user will want to fetch their list of contacts, add a new contact, update an existing contact, and delete a contact. I will have one test for each of these activities, and each test will have a series of assertions. To take one example, when I add a new contact, I will navigate to the new contact page, fill in all the form fields, and click the Save button. Then I will navigate to the list page and verify that my new contact appears on the page.
Visual Tests: This is where I will verify that elements are actually appearing on the page the way I want them to. I will navigate to the list page and verify that all of the columns are appearing on the page. I will navigate to the add contact page and verify that all of the form fields and their labels are appearing appropriately on the page. I will trigger all possible error messages (such as the one I would receive if I entered an invalid zip code), and verify that the error appears correctly on the screen. And I will verify that all of the buttons needed to use the application are rendering correctly.
Security Tests: I will run security tests at both the Services layer and the UI layer. I will test the API operations relating to authenticating a user, verifying that only a user with the correct credentials will be authenticated. I will test every request endpoint to make sure that only those requests with a valid token are executing; requests without a valid token should return a 401. For the UI layer, I will conduct a series of login tests that validate that only a user with correct credentials is logged in, and I will verify that I cannot navigate to the list page or the add contact page without being logged in.
Performance Tests: I will set benchmarks for both the server response time and the web page load time. To measure the server response, I will add assertions to my existing Services tests that will verify that the response was returned within that benchmark. To measure the web page load time, I will run a UI test that will load each page and assert that the page was loaded within the benchmark time.
Accessibility Tests: I want to make sure that my application can be used by those with visual difficulties. So I will run a set of UI and Visual tests on each page where I validate that I can zoom in and out on the text and that scroll bars appear and disappear depending on whether they are needed. For example, if I zoom in on the contact list I will now need a vertical scrollbar, because some of the contacts will now be off the page.
With this series of automated tests, I will feel confident that I'll be able to deploy changes to my application and discover any problems quickly.
I've received a few questions over the last week about what percentage of total tests each of spokes in the Automation Test Wheel should have. The answer will always be "It depends". It will depend on these and many other considerations:
- How many other services does your application depend on? If it depends on many external services, you'll need more Component tests.
- How complicated is your UI? If it has just a page or two, you'll need fewer UI and Visual tests. If it has several pages with many images, you'll need more UI and Visual tests.
- How complicated is your data structure? If you are dealing with large data objects, you'll need more Services tests to validate that CRUD operations are being handled correctly.
- How secure does your application need to be? An application that handles personal banking will need many more Security tests than an application that saves pictures of kittens.
- How performant does your application need to be? A solitaire game doesn't need to be as reliable as a heart monitor.
The beauty of the Automation Test Wheel is that it can be tailored to all types of software applications! By considering each spoke in the wheel, we'll be sure that we are creating great automated test coverage.
Simple example, good test ideas. For me, your explanation is great because it is about how to think during testing. That's the most important.
ReplyDeleteThanks, Ilya! I'm so glad you liked it! Talking about how to think about testing is my goal for this blog. :-)
DeleteI really like blog too. Reading about process automation solutions is interesting.
DeleteGreat Article Artificial Intelligence Projects
DeleteProject Center in Chennai
JavaScript Training in Chennai
JavaScript Training in Chennai
Hello Kristin,
ReplyDeleteI had experience with more types of automation:
- Integration / Data driven (a few units get exercised together to check predefined inputs and outputs)
- "Monkey" automation, generating random inputs ( https://en.wikipedia.org/wiki/Monkey_testing ). Can reveal crashes, hangs or unexpected issues.
I think the "wheel" model may have troubles with including more types of automation.
Hi Podolyan! Data-driven and monkey tests are definitely methods of software testing. I would consider them methods rather than types, though. Integration/Data-driven testing could fit in the Component or Service test type, and Monkey automation could fit in the UI test type. The Automation Wheel focuses more on the "what" than the "how".
DeleteThis comment has been removed by a blog administrator.
ReplyDeleteThank you so much for this nice information. Hope so many people will get aware of this and useful as well. And please keep update like this.
ReplyDeleteVarious Stages of Game Testing Techniques you need to know
7 Essential Tips for Successful QA Implementation
Types of Game Testing Processes that need to be followed
How Game Testing differs from Software Testing
6 Challenges that every Game Tester Faces
9 Critical Bugs to be Identified in Game Testing process
Is the age of AAA gaming dying?
Major Mobile Game Testing Concerns for Testers
Game Testing Trends to watch out for in 2020
Great to know about Automation Test Wheel Everyone must wisely choose the Automation Testing Services for your project to achieve higher customer satisfaction and loyalty.
ReplyDelete
ReplyDeleteVery Good Blog. Highly valuable information have been shared.Great information has been shared. We expect many more blogs from the author. Special thanks for sharing..
software testing services
software testing companies
Regression testing services
Performance testing Services
Test automation services
This comment has been removed by a blog administrator.
ReplyDeleteNice Post.. really helpful to clear my small concepts. thanks :)Keep doing more, waiting to read your next blog.
ReplyDeletequality assurance and testing services
Software testing and Quality Assurance Services
Software testing companies in USA
End to end Performance testing services in USA
Performance testing services company
security testing services company
Test automation service providers
QA Services company
mobile app testing services
Test automation helps in reducing regression testing time and cutting down the time to market with significant cost savings on a long-term basis. However, a clear automation strategy and roadmap are key to ensuring the right return on investment on your automation initiatives.
ReplyDeleteI must thank you for the efforts you have put in penning this site. I am hoping to check out the same high-grade content by you later on as well. Keep up the good work
ReplyDeletesoftware testing companies
software testing tester
software testing and quality assurance services
Automation testing services
Thank you so much for this nice information. Hope so many people will get aware of this and useful as well. And please keep update like this.
ReplyDeleteGame QA Solutions
PC Game Testing Services
Great article on different type of testing. Are you looking for an IT solution Company? Then, contact Helenzys is the best. Here, at a cost-effective price, you will get excellent service that will help you to get happy consumers. The team leverages their complete effort to ensure that your business earns a greater revenue. We provide IT solutions to different industries- Healthcare, Automobile, Agriculture, Telecommunication, E-business & Retail, Education and technology.
ReplyDeleteWell written articles like yours renews my faith in today's writers. The article is very informative. Thanks for sharing such beautiful information.
ReplyDeleteSoftware Testing Services
Software Testing Services in India
Software Testing Companies in India
QA Testing Services in India
QA Testing Companies In India
QA Testing Services
Software Testing Companies
Very useful post and I think it is rather easy to see from the other comments as well that this post is well written and useful. I bookmarked this blog a while ago because of the useful content and I am never being disappointed. Keep up the good work..
ReplyDeletesoftware testing company
QA Outsourcing Sevices
nice post
ReplyDeleteSoftware Testing Training in Chennai | Certification | Online Courses
Software Testing Training in Chennai | Certification | Online Training Course | Software Testing Training in Bangalore | Certification | Online Training Course | Software Testing Training in Hyderabad | Certification | Online Training Course | Software Testing Training in Coimbatore | Certification | Online Training Course | Software Testing Training in Online | Certification | Online Training Course
I like visiting your site since I always come across interesting articles like this one. Keep sharing! Regards. Read more about
ReplyDeleteSelenium Training in Chennai | Certification | Online Courses
selenium training in chennai
selenium training in chennai
selenium online training in chennai
selenium training in bangalore
selenium training in hyderabad
selenium training in coimbatore
selenium online training
Great!! Thank you for sharing this post on software testing. Software testing outsourcing services are in great demand these days. Good to see such nice articulated post.
ReplyDeleteThanks for sharing such informative blog. It really helped me a lot to learn new things about software testing. Keep on sharing informative and useful stuffs. Great blog!
ReplyDeleteSoftware Testing Services
Software Testing Company
Software Testing Companies in USA
QA Testing Companies
Software Testing Services in USA
Thank you for your post. This is useful information.
ReplyDeleteHere we provide our special one's.
best training institue for testing in usa
best testing institutes online
best selenium training online
QA testing online training in new york
manual testing services
Quick Test Professional Courses
selenium webdriver course in usa
Great Article… I love to read your QA outsourcing services articles because your writing style is too good, its is very helpful for all of us and I never get bored while reading your article because, they are becomes a more and more interesting from the starting lines until the end.
ReplyDeleteWow finally I got good article about android development process from beginning. Thanks for sharing
ReplyDeleteAndroid App Development Company Malaysia
Custom Software Development Company Malaysia
Software Development Company Malaysia
Thank you for your post. This is useful information.
ReplyDeleteHere we provide our special one's.
creative website designing services
the best web design services in kukatpally
best web designing company in kukatpally
Thank you so much for this nice information, Nice Information About The Automation Test Wheel in Practice.
ReplyDeleteWe Providing :
Software Automation Testing Training
Thank you for your post. This is useful information.
ReplyDeleteHere we provide our special one's.
business analysis
baonlinetraining
baonlinetraining in Newyork
business analysis training courses usa
business analyst certification course
IT certification training
business analysis training and certification
business analysis training and placement
Thank you for sharing such an informative post
ReplyDeleteI would highly appreciate if you guide me through this.
water tank level indicator in chennai.
simple water level indicator with a buzzer.
water tank level indicator in chennai.
Dry run timer. double motor sequential timer
Advantages of the product | LED indication
best water level controller suppliers in coimbatore..
best water level controller suppliers in madurai..
best water level controller suppliers in trichy and tirunelveli.
We're offering additional discount on early enrollment on full module Automation Training. Get Job Support with Unlimited Placement Opportunities.
ReplyDeleteCall us at +91-9953489987, 9711287737
For more details Visit www.diac.co.in
Nino Nurmadi, S.Kom
ReplyDeleteninonurmadi.com
ninonurmadi.com
Nino Nurmadi, S.Kom
Nino Nurmadi, S.Kom
Nino Nurmadi, S.Kom
Nino Nurmadi, S.Kom
Nino Nurmadi, S.Kom
Nino Nurmadi, S.Kom
Very interesting blog. Many blogs I see these days do not really provide anything that attracts others, but believe me the way you interact is literally awesome.You can also check my articles as well.
ReplyDeleteSecurity Guard License
Ontario Security License
Security License Ontario
Security License
Thank you..
I like your post there is a lot of information about software testing companies , which i would like to learn, thank you for the great guide.
ReplyDeleteThanks for this amazing blog, visit Ogen Infosystem for creative web design and development services at an affordable price.
ReplyDeleteWebsite Designing Company in Delhi
It is really amazing blog, Thanks for sharing.
ReplyDeleteFor any type of certification include BIS Certifications visit our website.
Bis Consultant in delhi
This comment has been removed by the author.
ReplyDeleteReally this post is so helpful for the students.
ReplyDeleteSoftware Testing Training in Noida
Software Testing Course in Noida
BUY IBOGA POWDER ONLINE
ReplyDeleteBUY IBOGA SEEDS ONLINE
BUY PERCOCET ONLINE
BUY ROLLS ROYCE HEROIN ONLINE
BUY WEDDING CAKE ONLINE
BUY MOONROCKS ONLINE
BUY GELATO BRASS KNUCKLES ONLINE
BUY LEMON HAZE KINGPEN ONLINE
BUY LSD ONLINE
BUY ACTAVIS PROMETHAZINE ONLINE
buy Pain Pills online and Research chemicals
ReplyDeletebuy Roxicodone online
buy Roxicodone 30mg online
buy Xanax online
buy maltese and Pomeranian puppies online
buy Medical Marijuana online
buy Weed online
BUY LSD BLOTTERS online
buy OXYCODONE online
buy Norco online
Thanks for sharing this informative article related software testing, really helpful.
ReplyDeleteSoftware Testing Training in Pune
thanks for sharing this blog buy marijuana online and pills, Buy clonazepam powder online
ReplyDeleteBuy clonazepam powder online
Buy 2-nmc online
Buy adderall online
Buy actavis-promethazine-codeine online
Buy marijuana online online
Buy Wiz Khalifa OG online
Buy Green Crack online
Buy Girl Scout Cookies online
Buy AK-47 online
Buy Moon Rocks online
Thanks for sharing this meaningful article, I appreciated your work and your research. I am a trainer offer professional training of quality analyst/software testing and business analysts training with all essential concepts.
ReplyDeleteWater bodies are the main source of transportation for international freight forwarding. Due to this, sea freight company in Delhi,
ReplyDeletevisit
Freight Forwarder in Vietnam
Shipping Company In India
visit here
ReplyDeleteiso certification in delhi
iso certification in noida
iso certification in gurgaon
iso certification in faridabad
Thank you so much for this nice information. Hope so many people will get aware of this and useful as well. And please keep update like this.
ReplyDeletesoftware testing course in chennai
The Best Article I ever read about The Automation Test Wheel in Practice
ReplyDeleteInspired By Your Content Keep Sharing Amazing Testing Content With Us
We Provided Best SEO Services And Web Design Go chicago seo consultant
Wow finally I got good article about android development process from beginning. Thanks for sharing
ReplyDeleteAndroid App Development Company Malaysia
Custom Software Development Company Malaysia
Software Development Company Malaysia