Skip to main content

Cypress UI Automation - part 6

 

Appendix

Test Plan

Introduction

Document Purpose

To set out the plan for the migration of our existing java test automation into JavaScript using cypress.

Test Scenarios

Giftshop Tests

Search spec (Test file)

Old Feature/ Shop

 

Old Scenario

 

Old Total steps/ Lines of Code

 

New it tests

 

New lines of Code

 

Comments

Search Product - Giftshop

Search Results should display product

6

Search Results

5

The old code had 3 verifications and all these needed to be One ‘it’ test with one assertion.

 

 

 

Should Validate the product name

4

 

 

 

 

Should find and select another product colour

7

 

 

 

 

Product name should show up in search

15

Looping through a list of different products.

 

 

 

 

 

 

 

Wedding Favour spec tests

Old Feature/ Shop

 

Old Scenario

 

Old Total steps/ Lines of Code

 

New it tests

 

New lines of Code

 

Comments

Wedding Favour

Verify <Payment_type> payment is working for the selected products

17

Should Verify paymentType is working for selected products

12

 

 

 

 

Should verify details in Thank You page and Order details in Admin are matching

13

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Publications Tests

checkout spec test file

Old Feature/ Shop

 

Old Scenario

 

Old Total steps/ Lines of Code

 

New it tests

 

New lines of Code

 

Comments

Verify Opt in changes

Verify Opt in changes

 

User should be able to select option(s) for receiving latest CRUK Ecommerce Shop Updates'

8

 

 

 

 

'Verifying user selections of Updates in admin',

17

 

 

steps on progress bar

 

steps on progress bar

 

'Should verify Details of steps on progress bar is highlighted',

4

 

 

steps on progress bar

 

'Should verify Confirm Order of steps on progress bar is highlighted'

3

 

Remove spaces from email addresses

Remove spaces from email addresses

 

'Should validate email address with spaces are accepted',

6

 

 

 

 

 

 

 

 

Regression_Publications feature

Old Feature/ Shop

 

Old Scenario

 

Old Total steps/ Lines of Code

 

New it tests

 

New lines of Code

 

Comments

 

Verify Add to Basket isn't displayed on Home and productListing page

 

'Verify Add to basket but is not displayed on homepage',

3

 

 

 

 

'Should not be displayed on homepage'

 

 

 

 

 

Should verify Add to Basket button is not displayed on product listing page

4

 

 

 

Verify Add to Basket count incresing on adding products from different departments

 

'Should verify Add To Basket count increasing on adding Product from different Departments'

9

 

 

Verify Thank you page displays correct information

 

Should verify Thank you page displays correct order information'

18

 

 

Order product on selecting value DropDown

 

Should verify organisation order',

13

 

 

Verify GDPR details are not shown for Publication Site

 

'Should Verify GDPR details are not shown for Publication Site'

10

 

 

Verify GDPR details are not shown for Publication Site via search

 

'Should Verify GDPR details are not shown for Publication Site via search'

12

 

 

Scope of Automation

Migrating our existing java test automation into JavaScript using cypress.

Test Type

Description

Static testing

Static tests should be carried out on the user stories.

Review the stories and make sure the acceptance criteria are correct as requested by the user, and it’s testable.

The behaviour-driven development (BDD) tasks written in the java automation will be copied onto the acceptance criteria of the Jira ticket.

System testing

Blackbox manually test may be carried to help automation the user journeys.

 

Regression testing

Automation regression (test automation would be carried out for the four eCommerce shops.

 

 

Test Automation

 

Automation script will be coded with JavaScript using Cypress.

 

 

Cross-browser testing

Cypress BrowserStack automation will be covered in this project.

 

Accessibility Test

 

 

Accessibility automation tests on eCommerce will be covered in this project.

Using – wave and axe accessibility browser extension for manual accessibility testing.

In this project, we will be integrating cypress-axe within the cypress automation to automate accessibility testing.

 

 

 

 

Out of Scope

Test Type

Description

Usability Testing

 

Usability Testing is outside the scope of this test plan and maybe covered in another project.

 

Unit Test

 

This is when individual components or modules are tested. Unit testing is usually the responsibility of the developers to create a unit test for their modules. Although it is our long-term plan to convert the black-box automation into white soon, it is out of scope for testers in this plan.

Component integration-test

It is usually the responsibility of the developers to carry out the integration test for their modules.

Operational Acceptance and Recovery Testing

 

Currently, this is out of scope for this project.

End to end testing

End to end data testing is out of scope for this project.

System integration-test

Out of scope for this project.

Security regression Test

Out of scope for this project.

Manual Test

There’s no need to design manual tests cases, as the Behaviour Driven Development details of the java framework can be provided on the Jira tickets. These can be used as test steps for writing the JavaScript test code.

Compatibility Testing

Out of scope here.

 

Performance and load testing

This is out of scope for this project.


Approach for New tests

Each Jira ticket would have details of Behaviour-driven development (BDD) of scenarios from the java automation. Each Jira ticket can contain details of one or more scenarios from the java automation. Testers should pull the current automation test code from the main branch in Github, then create a new branch, referencing the title to the corresponding Jira ticket. Testers can then start coding following the steps of the BDD details on the corresponding Jira ticket.

Furthermore existing and future stories on Jira that require automation can be added to the migration project.

 

Schedule Plan


Jira Ticket Ref

Shop

Old feature text

Old Scenario Text

Plan days/weeks to complete

Date Started

Date completed

On Schedule

Comment

 

Gift Shop

 

 

 

 

 

No

I had exams to prepare for. Also, the Jira tickets created by the stakeholders would take priority over my automation work. I also needed to devote time to writing other projects for my apprenticeship programme.

 

Publications

 

 

 

 

 

No

 

 

Cypress-axe for Accessibility Testing

 

 

4

06/07/2020

15/07/2020

No

Working multiple projects and project writeup.

Test/ECOM-1870_cypress_Browerstack

 

Browserstack cypress integration

 

 

7 working days

11/08/2020

12/10/2020

yes

Waiting for a go-ahead for numbers and licence npm package and browserstack.json settings.

 

Artillery – For performance testing.

 

 

 

 

 

 

No

I need to understand the report which means going through the doc and executing the file at the same time to understand what they all mean.

 

Lighthouse security

 

 

 

 

25/08/2020

no

I was experiencing some errors.

Ecom-1881

Visual Testing -

Percy

 



 

5

25/08/2020

 







 

Annual leave and bank holiday held me back on fixing errors.



Integration with GitHub Actions

GitHub Actions will be used as the continuous Integration system for this project. GitHub Actions lets you build, test, and deploy code from GitHub.

This story was planned to be completed by the Quality Assurance team under each product team, using the agile scrum process.

Who would do it?

Tester (me).

Configuration management system

GitHub – Our version control system to manage and hold our software codes.

Test Levels

In this project, I will be carrying out tests under the System, and User Acceptance test levels.

Test types

I will be carrying out the test under the functional test type for this project.

Please, refer to Test scope table above, for more information.

Test techniques

I will be creating the scripts using the black-box techniques, where I will be writing scripts for the Graphical User interface. I will be making use of experience-based test technique, where I may consult other experienced Quality Assurance testers or the Automation Test Lead for help when required.  I will also put into good use my own programming experience as well as my researching and problem-solving skills.

Product team

Roles and Responsibilities

This project would be carried out on the Ecommerce Product team by the QA Testers, which includes me.

Test Environments

Test environment for this project will be under the UAT(User Acceptance Test) or the stage environment.

Test Tools

Test Automation Tools

In this project, I will be migrating the test scripts of our java, Selenium and Cucumber automation framework into JavaScript using the Cypress testing tool.

Cypress

I will be coding the automation tests using Cypress with the JavaScript language. According to the cypress website, it’s the next generation front end testing tool built for the modern web. Cypress enables fast, easier and reliable tests. Cypress is easy to set-up and gets running in a matter of under an hour, as compared to Selenium. Cypress helps test automation developers concentrate on their coding rather than spending time other unnecessary errors, for examples errors experiencing from corrupted jar files.

Wave and Axe browser extensions

For manual accessibility testing.

Cypress-Axe

For automating Accessibility Testing within the Cypress automation script.

Mochawesome

A custom reporter for use with JavaScript testing framework.

Cypress Browserstack

An integration tool for cypress to add browsers, devices and other operating systems (cross-browser testing) to the Cypress automation test.

Percy

A Visual Testing Tool from BrowserStack to add Visual tests into the Cypress automation script.

Relating software

JavaScript – the software language for writing the automation script.

Test Management Software (Tools)

Jira and Zephyr

We use Jira to manage our tests.  Testers must update the team of anything concerning the request, for example, blockers, by adding comments on the relevant Jira tickets.  Also, testers can update the team on the Slack channel. Add links to relevant test documents documented on Zephyr.       

Defect Management Tool

Use Jira to log and manage defects experienced during test development.  If bugs/defects were encountered, testers must use this tool to report to the team. A bug report must be assigned to a Developer. It should contain all the relevant sessions including Expected and Actual Results, steps to reproduce, screenshots extra.

Integrated Development Environment (IDE)

Visual Studio

It is a software application that provides comprehensive facilities to computer programmers and software developers. Use this IDE to develop and execute the cypress automation scripts.   


Test Process

  • Planning – including scope, exploratory testing, functional and non-functional elements.
  • Scripting – manual tests should be written with the preferred tool (excel or Zephyr) so that results can be easily tracked, and the tests made available for future regression tests. Automated tests should also be prepared here to cover the functionality being delivered so that the overall regression test pack is kept up to date and in line with new functionality being delivered.
  • Execution – execution of tests and recording of results. The results of automated tests should be combined with manual tests executions to gain a complete picture of the quality of each release before deployment. Defects should be logged during execution via JIRA, using the workflow defined in this document.
  • Reporting – reports on tests run, passed/failed and defects identified by severity, to identify any remedial action that needs to be carried out urgently or as a part of the next sprint. 

Test Objective:

  • ·         To prevent defects in user stories and acceptance criteria (work products).
  • ·         To migrate the existing java automation into JavaScript using Cypress.
  • ·         To add any existing and new user stories that can be automated into the migration.

Test Data Requirements

  • ·         Testers should create test data based on test cases and Scenarios.
  • ·         Use Valid and Invalid test data.
  • ·         Make use of boundary value analysis test techniques where necessary.
  • ·         Perform blank data on any of the text fields.

Risks

  • Difficult to estimate time effort required for completing the automation migration. This can be due to the following reasons:
  • ·         Training for testers to learn the new tool.
  • ·         External factors that may place time constraints on testing. For example, a requirement to shut down the office for any reasons.
  • ·         Not being able to run tests remotely due to tests environments not working remotely may slow down the progress of the migration.
  • ·         Version control and maintainability of test scripts and test results.
  • ·         Adding new tests stories from Jira or existing test stories that have not been already migrated.

Test Entry Criteria

·         Jira ticket (User stories) should have acceptance criteria (from the feature files of the existing java automation scripts) on them.

·         The test environment should be stable and ready before the test can commence.

·         Test tools should be available.

Exit Criteria

  • ·         User stories, acceptance criteria, and all feature file scenarios have been migrated.
  • ·         Unresolved defects should be kept to a minimum.

Test  Deliverables

The following artefacts will be created during this project and delivered at the end of the project:

  • Test Complete report.
  • Test automation scripts.
  •  Errors and Defect logs.











Comments

Popular posts from this blog

Working with Dropdownbox elements in Selenium WebDriver

How to select element from a Dropbox We are going to use Selenium webDriver and chrome driver to test this. In addition, this test was created on Mac.  I assume you have installed and setup java in your system path.  Also, install Eclipse for jee. 1. First let's take a look at a quick test case: Test case: TC_1. Register on http://automationpractice.com/index.php TC_1.1: Launch hope page -http://automationpractice.com/index.php TC_1.2 : Click on link ‘Sign in’ TC_1.3 : Under “Create Account” subheading, enter Email address in ‘Email address’ textfield TC_1.4 : Click on ‘Create an account’ button. —————————————————————————————— Test data: Email address: gorgeous12@hotmail.com http://automationpractice.com/index.php ---------------------------------------------------------------- Expected : http://automationpractice.com/index.php?controller=my-account ———————————------------ 2. Next, create a maven project in Eclipse 3....

Cypress UI Automation - part 1

Java to Cypress-JavaScript Automation Migration Introduction: Across Cancer Research UK engineering department, we currently use a Java automation framework for our User interface and API testing. The framework has evolved in the last 3 to 4 years and currently, we have 19 products/project, (running approximately 1350 test scenarios) using the framework to run the respective sanity/regression packs. The project/products extend across different technology stacks such as Drupal, Symphony, React JS, .Net, OBI and Siebel CRM.   The Quality Assurance (QA) test team are currently under the process to be transformed into a fully-fledged Quality Assurance function.   As part of this transformation, we would like to have a comprehensive, automated test suite that can be maintained by developers and testers. Furthermore, our front-end web development is moving into JavaScript, now is the right time to migrate our automation framework also from java into JavaScript. The introduction ...

Performance Testing

  Performance Testing As part of the Quality Assurance Test Approach, each tester has to implement performance testing within its product team. In this section of the project, I will be using Apache JMeter as the testing tool for the test approach. Apache JMeter is an open-source performance testing tool for load, stress and many more testing. Screenshot from: https://www.youtube.com/watch?v=817zU_bXh9Y&list=PLUDwpEzHYYLs33uFHeIJo-6eU92IoiMZ7 JMeter works by creating a request to a target server(website), the server then responds, saves responses, collects, calculate statistics, return results to request and then generate reports.