Test strategy[Live]
Terms, Abbreviations, and Definitions
Term | Description |
UI | User Interface |
UAT | User Acceptance Testing |
BUAT | Business User Acceptance Testing |
CI/CD | Continuous Integration/Continuous Delivery |
Objectives
The current document describes the testing methodologies and testing flow which will be applied during all stages of Design system implementation.
The key objectives are as follows:
To establish and involve testing processes in the project
Determine project implementation
Determine testing types that will be applicable to each testing task
Identify needed tools, determine testing phases during the project
Identify testing metrics
Identify what will be tested and what will be out of the testing scope
The document doesn’t describe detailed functional requirements and design for the site. This information will be provided in the separate documentation - product specification (Specification on Confluence) and detailed design (Design in Figma).
This document is the live one and should be adjusted promptly to conform to the current state of the application requirements.
Testing Scope
Features to be tested
Container
Grid
Section
Typography
Image
Icon
Heading Block
Link
Button
CTA Block
Accordion Item
Accordion List
Page Header
Text box
Navigation Link
Navigation
Logo
Basic Header (i.e. excl. Site Search)
Subtle Button variant
Footer
iFrame
Carousel
Product Header
Overview
Product Card
Product Lists
Picto Card
Picto List (aka Ingredients/Benefits section)
Image + Text
Article Header
Article Decoration (e.g. Pull Quotes, etc) (Image Carousel only in Figma)
Embedded Video
Page Card
Page List
Teaser
Sitemap
Product How To + Safety Block (How To block, reference below, seems a bit complicated for markets to use it)
Promo Strip
Testing types in scope
Code review - peer review and acceptance of developed code by the RB side
Unit testing (automated) - developers team responsibility with coverage of at least 80 %
UI compatibility and cross-browser testing in a manual way;
Smoke testing on a preview build of each new version that is deployed;
Accessibility testing (automated and manual)
Visual Regression testing in a semi-auto way[Probably will be changed]
Functional testing
Testing types out of scope
Performance testing
Loading testing of server-side is out of scope
Testing of content - The DA Team will copy and port content provided by the customer/brand team. So the correctness of the provided content is on the customer/brand team
Testing of the functionality of third parties, only the testing of integration is in our scope
Test Approach
Testing flow
All test activities will be divided into four phases:
Analysis & Planning Phase
Test Phase
Stabilization Phase
UAT
*This flow will be implemented for every component
Analysis & Planning Phase
The purpose of this phase is to cover requirements provided by the customer with test documentation such as checklists, which will be used in the test phase and during the Stabilization testing phase.
List of activities are to be performed during this phase:
Requirements clarification for and checklists creation;
Consideration of requirements testability and request for development support if needed;
Test documentation creation / change / support functional and non-functional checklist's
Test Phase
The purpose of this phase is to validate features against requirements using the test documentation created in the elaboration phase.
List of activities to be done during this phase:
Unit testing (automated) - developers team responsibility;
UI compatibility and cross-browser testing in a manual way
Accessibility testing;
Bugs verification
Reporting
Test documentation support
Stabilization Phase
The purpose of the phase is to ensure that all set of components works together as expected according to requirements, any change doesn’t impact existing functionality. This phase includes regression testing and the final smoke testing (before delivering the application to the customer for acceptance).
It is supposed that regression mostly will be done with developed manual UI tests.
UAT + Go-live phase
Test activities will be done during the phase:
Review issues reported during the UAT by the customer
Verification of the fixes and changes that will be made during the UAT
Performing the accessibility assessment of the library
Performing the smoke testing of the components before it will be shipped to the production (on UAT env)
Performing the final smoke testing of the application after the project is delivered to a stakeholder
Each component must get sign-off and approved by the responsible people:
Nathan McKean
Katarzyna Lewczyk
This sign-off should be tracked in JIRA in the specific story for each component.
Test Types and Levels
Unit testing
The tests will be developed by the DataArt dev team. These tests will be included in CI/CD pipeline and will be executed as a part of the build process. Failed unit tests will prevent the creation of build artifacts (application build).
Requirements:
Test coverage for unit tests > 80%.
Tools to be used:
Jest Testing Library
Cross-browser and compatibility testing
The purpose of the testing is to ensure that all components look in accordance with the approved design in all agreed browsers. Such as the application is to be developed in a mobile-first approach, it is highly important to verify the application on different mobile devices that are agreed with the customer.
The verification firstly will be done manually to detect and eliminate all layout issues.
Requirements:
The layouts should be responsive. The following systems, browsers, and resolution the layout should be matched:
Desktop (more than 1440px viewport width)
Windows:
Chrome (the latest version for Apr-20 2022)
MacOS:
Safari (the latest version for Apr-20 2022)
Chrome (the latest version for Apr-20 2022)
Mobile (more than or equal 360px viewport width)
Android (at least ver. 8 – i.e. Samsung Galaxy S9/S10)
Chrome (the latest version for Apr-20 2022)
iOS (at least ver. 10 – i.e. iPhone 8/XR/11 Pro)
Safari (the latest version for Apr-20 2022)
Tools to be used:
Browser DevTools
Percy/Chromatic
*Tools must be approved
Accessibility testing
The purpose of the accessibility testing is to make sure that components conform to WCAG 2.0 standards. The accessibility testing is to be started in the design review step - all colors from the approved design will be checked on conformance with color contrast ratio by WCAG 2.0 standards. This testing type will be performed manually and using accessibility automation tools.
Tools to be used:
StoryBook
AxeCore
UI testing and Visual Regression testing
The purpose of UI testing is to check that created UI Library matches the design
Percy/Chromatic
Smoke testing
The goal of the smoke testing is to execute a limited suite of the checks which verify main functionalities and UI to make sure that a deployed build is not broken at all. This testing will be performed manually.
Functional testing
The purpose of functional testing is to make sure that all modules work correctly according to requirements. Functional testing will be performed manually.
Tools to be used:
StoryBook
Test Environment
It is supposed that during the application implementation and releases the following environments will be used
Storybook development env
Reporting
This section enlists the reports to be created during the testing activities.
UI checklist
The report is provided by the test team for the sprint. UI checklist is expected to contain the following data:
List of modules(atoms/molecules/organism)
Confirmation status according to the design of this module
Browsers and devices on which the module was tested
The person who reviewed the module
The report is planned to be delivered as a document added to the Confluence. The recipients are the Customer’s side, PM, and management personnel.
Accessibility checklist
The report is provided by the test team for the sprint. The accessibility checklist is expected to contain the following data:
List of modules(atoms/molecules/organism)
Confirmation status according to Accessibility testing
Browsers and devices on which the module was tested
The person who reviewed the module
The report is planned to be delivered as a document added to the Confluence. The recipients are the Customer’s side, PM, and management personnel.
Visual Regression report
The report is provided by the test team for the sprint. It’s planned to include the following information in the report:
Comparing screenshots of a created module and its original designs
Auto-generated report
Com
The report is planned to be created in the Visual regression tool.
Functionality checklist
The report is provided by the test team for the sprint. The functionality checklist is expected to contain the following data:
List of modules(atoms/molecules/organism) that belong to the sprint
Confirmation status according to functional testing
Browsers and devices on which the module was tested
The person who reviewed the module
The report is planned to be delivered as a document added to the Confluence. The recipients are the Customer’s side, PM, and management personnel.
Issue and test documentation management
Issues management
It is planned to store and track all issues(Epics, Stories, Bugs, Tasks) in Jira.
All features will be organized into Stories. Subtask for development test cases development, automation tests implementation will be created under each story.
All found bugs during the testing will be linked to a relevant Epic and Story. All detected issues will be marked with the relevant bug type.
The following bug types are going to be used:
Bug Type | Description |
UI | The issue relates to inconsistencies in modules to design |
Accessibility | The issue relates to WCAG accessibility standards |
Functionality | The issue relates to broken functionality |
Issues priority definition:
Priority | Definition | Maximum Allowable |
Urgent | This is a failure that prevents either large or core areas of the Product from functioning. This defect needs to be fixed and deployed as soon as possible.
| 0 |
Highest | This is a failure that prevents either large or core areas of the Product from functioning. A workaround may exist as a short-term satisfactory solution. Some of these defects should be fixed before going live.
| 0 |
High | This is a serious failure that must be fixed before going live. High defects badly affect core areas, causing important or highly visible areas to fail. It is not normally possible to work around High defects. High defects should be fixed before going live. | 10% |
Medium | A failure that is causing an error in the application functionality. It is of lower impact or in a less visible area than a High failure. Medium defects normally have a workaround. They usually impact only a few test cases and will not stop QA testing, and staying on schedule | 10% |
Low | Defects have a low impact in less visible areas of the site, only affect the fringes of a business process, or only happen in unlikely circumstances. Low defects usually only affect a single test case and will not stop QA testing, and staying on schedule. | 10% |
Lowest | Defects have a low impact in less visible areas of the site, only affect the fringes of a business process, or only happen in unlikely circumstances. Low defects usually only affect a single test case and will not stop QA testing, and staying on schedule. | 10% |
Checklist management
For the checklist creating Confluence will be used.
Accessibility checkpoints management
The accessibility checklist will contain only checkpoints that have to be executed manually. These checks will be stored in Jira as Test case issue type and marked with the ‘Accessibility’ label
Suspension and Resumption Criteria
Testing of Test Items will be suspended if:
Suspension criteria:
Non-working environment or blocker
Resumption requirement:
The bug was fixed, environment working properly
Entry criteria:
Requirements and design for the project are ready
Access to tools for testing and development
Exit criteria:
All duties of the DataArt team are done
Test Deliverables
The following test artifacts are planned to be created within the project:
Checklists ( UI, Accessibility, Functionality)
Bug reports
Visual Regression Testing reports
Detailed information about each document type is described below along with approaches and examples.
Check Lists
Set of functional and non-functional tests documented as a simplified list of checks without strict steps to reproduce, pre-requisites, etc.
Requirements coverage by tests is to be traced by mapping all requirements from specification to appropriate checks in the Check List document.
Bug Reports
The report describes the application’s flow, error, failure, or fault that causes it to produce an incorrect or unexpected result or behave in an unintended way.
All bug reports are to be posted to the project bug tracking system (Jira) with appropriate severity for further processing by the Customer, Project Manager, and Development team.
Visual Regression Testing reports
Reports showing d differences or similarities between modules and their original design. The report should be automatically generated after every commit
Risks
№ | Description | Mitigation strategy | Impact | Probability |
1 | Requirements inconsistency | To gather requirements properly, update in constantly after each review, and use only reviewed requirements | High | Medium |
2 | Changing requirements | To create adaptive documentation to prevent time losing | High | Medium |
3 | Changing design | Low | Medium | |
4 | Non-working environment | High | Low |
Approvals
The following people are required to approve the Test Strategy:
Approver role | Approver |
Product Owner | Nathan McKean |
Product Manager | Robert Ruszczyk |
QA Chapter Lead | Maciej Sobociński |
Client Director | Xeniya Akimova |
Delivery manager | Nikita Pyshnyak |
Project Manager | Sergey Kiselyov |
Lead Developer | Anton Merkulov |
Tech Lead | Pawel Ploneczka |