24
GETTING READY TO TEST YOUR WEB APPLICATION PART TWO A Guide for the Business Team in preparation for Quality Assurance Testing.

Getting ready to quality assure your software project

Embed Size (px)

Citation preview

GETTING READY TO TEST YOUR WEB APPLICATIONPART TWOA Guide for the Business Team in preparation for Quality Assurance Testing.

There’s no getting around the fact that software is a crucial part of business today which are increasingly reliant on software for their day-to-day operations.

More lines of code are being written and put into production today than at any previous point, and this trend is only expected to rise.

So it’s no surprise that software quality is more important for businesses than it has ever been

Business Today

it is more important than ever to have a robust testing methodology for making sure

that software products/systems being developed have been fully tested to meet their

specified requirements and can successfully operate in all the anticipated

environments with the required usability and security.

Comprehensive and practical QA testing will

ultimately lead to:

• Enhancing the quality of existing products

and applications for better business results.

• Software and applications with zero defects

resulting in enhanced user experience.

• Reduction in maintenance and operational

costs leading to overall cost reductions.

• Quality services with faster turnaround time.

Overview and introduction to Software Quality Assurance

In developing products and services, quality assurance is any systematic process of checking to see whether a product or service being developed is meeting specified requirements.

Many companies have a separate department devoted to quality assurance. A quality assurance system is said to increase customer confidence and a company's credibility, to improve work processes and efficiency, and to enable a company to better compete with others.

What exactly is Quality Assurance Testing?

Quality assurance systems emphasize catching defects before they get into the final product.

Quality assurance was initially introduced in World War II when munitions were inspected and tested for defects after they were made.

Overview and introduction to Software Quality Assurance

Unit Testing System Testing

Integration Testing

Functional Testing

User Acceptance

Performance Testing

Quality Assurance Testing follows a defined process but in some context or form should include the following high level tests

Regression Testing

Overview and introduction to Software Quality Assurance

Unit Testing

• To verify Easy-to-use application features

• Search and clear navigation is working correctly

• Content readability and Granularity

• User interface consistency and standards

• System response in terms of application launch time and

page-switching

• Easy to understand error messages

Unit testing is a software development process in which the smallest testable parts of an application, called units, are individually and independently scrutinized for proper operation. Unit testing is often automated but it can also be done manually.

The aim of this test

Overview and introduction to Software Quality Assurance

System testing of software or hardware is testing conducted on a complete, integrated system to evaluate the system's compliance with its specified requirements. System testing falls within the scope of black box testing, and as such, should require no knowledge of the inner design of the code or logic.

• To detect defects both within the "inter-assemblages" and

also within the system as a whole.

• To detect any inconsistencies between the software units

that are integrated together

Overview and introduction to Software Quality Assurance

The aim of this test

System Testing

Integration testing is the phase in software testing in which individual software modules are combined and tested as a group. It occurs after unit testing and before validation testing.

• During integration testing, you combine the individually unit-tested modules to see how they behave together.

• To verify functional, performance, and reliability requirements through:

Bottom Up Testing is an approach to integrated testing where the lowest level components are tested first

Top Down Testing is an approach to integrated testing where the top integrated modules are tested

Sandwich Testing is an approach to combine top down testing with bottom up testing.

The aim of this test

Overview and introduction to Software Quality Assurance

Integration Testing

Module 1

Module 2

Module 3

• Functional testing functionality of the module is tested and structure is not considered. It is performed, based on user's perspective. These tests ensure that the system does what users are expecting it to do.

• This type of testing means testing the functionality example include input the proper data and checking the output as per the requirement documents.

Functional testing has to validate the application to verify that all specified requirements of the client outlined in the SRS or BRS have been incorporated or not.

The Functional testing output concentrates on the customer requirements and Non-Functional testing focuses on the customer expectations.

The aim of this test

Overview and introduction to Software Quality Assurance

Functional Testing

• Ensuring that the application behaves exactly as expected.

For the vast majority of programs, unpredictability is the

least desirable consequence of using an application.

• Reducing the total cost of ownership. By providing software

that looks and behaves as shown in your documentation,

your customers require fewer hours of training and less

support from product experts.

In software development, user acceptance

testing (UAT) - also called beta testing,

application testing, and end user testing - is a

phase of software development in which the

software is tested in the "real world" by the

intended audience

Test

Improve

Deliver

The aim of this test

Overview and introduction to Software Quality Assurance

User Acceptance Testing

• Performance test reporting is the process of presenting results data that will support key technological and business decisions. The key to creating effective reports is to consider the audience of the data before determining how best to present the data.

• The most effective performance-test results will present analysis, comparisons, and details behind how the results were obtained, and will influence critical business decision-making.

Performance testing is the process of determining the

speed or effectiveness of a computer, network,

software program or device. This process can involve

quantitative tests done in a lab, such as measuring the

response time or the number of MIPS (millions of

instructions per second) at which a system functions.

The aim of this test

Overview and introduction to Software Quality Assurance

Performance Testing

• The purpose of regression testing is to ensure that changes have not introduced new faults.

• To determine whether a change in one part of the software affects other parts of the software.

• To test a system efficiently by systematically selecting the appropriate minimum set of tests needed to adequately cover a particular change

Regression testing is the process of testing

changes to computer programs to make sure

that the older programming still works with the

new changes. Before a new version of a

software product is released, the old test cases

are run against the new version to make sure

that all the old capabilities still work

The aim of this test

Regression Result

Retest all

Select Test CasesPrioritise

Overview and introduction to Software Quality Assurance

Regression Testing

Project Manager

Quality Manager Test Team

Suppliers

Internal Team

Technical Lead Design Lead Production

Manager

THE TEAM

GUIDELINES FOR THE TEST TEAM

A clear indication of what they are going to be testing An explanation of the test cases that each tester has been assigned A laptop for the testing in good working order Mobile devices for the testing in good working order The correct testing software loaded Who to contact when there are issues How to log the defects

The following points noted below are just a high level indication of the guidelines needed to assist the test team perform the testing.

Please note

It is recommended that these guidelines are clearly outlined in the test plan.

Role Key Function

Quality Manager

• The quality manager must control the end to end quality outputs for the product

• Must be the primary point of contact with the business owner during the quality process

Project Manager

• The project manager must control the agreed timetable for testing and ensure that this is maintained

Test Team • To perform the tests as agreed with the project manager • To update the defect log in the agreed way• To retest all defects before releasing the defect

Technical Lead

• Must coordinate and control the defect log • Must manage the technical team to resolve the defects as noted in the

raised log• Is responsible for the quality of the defects being resolved

Design Lead

• Must ensure that the agreed design has been implemented in line with the approved documentation

• Must monitor the overall testing and communicate directly with the Technical lead where applicable

Production Manager

• Must control and monitor the tickets being raised for the testing cycle within the agreed timeframes

The roles and responsibilities can be adjusted where relevant.

THE KEY ROLE

• Ensure your suppliers are involved at every stage of

the project

• Setup proper release management that is tied to

financial billing and payment

• Hold regular status meetings with your suppliers

• Track the project plan and address issues

• Identify any impacts and raise change controls

where required

• Hold regular audits on your supplier performance

MANAGING YOUR SUPPLIERS

Today more and more organisations have to interact and develop a performance based relationship with their suppliers in order to ensure that the correct level of skill is readily available to test and provide end to end support for the software product. Having the right supplier in place will help to reduce quality issues and rework.

Contract Management

Operational Management

Day to day execution and interaction

Reporting and communication

Issue and Risk Management

Financial Management

THE TESTING APPROACH

Test Plan

Execution

Reporting

• Confirm what methodology is to be used i.e. Waterfall or Agile

• Confirm that the test environment has been setup and communicated

• Ensure that the test case process/methodology is agreed• Confirm that the test plan is agreed and approved• Confirm all required hardware is in place for the testing

to commence.• Confirm what meetings and communication channels

will be used during the testing• Agree how defects will be logged – what ticket system is

to be used.• Agree to how the defects will be categorised (e.g. High

Medium Low – Low defects could be fixed once the website has been moved to a live environment)

• Agree how changes will be managed to prevent scope creep

The Test Plan Analysis

Test Strategy

Test Plan

Tool Selection

THE TESTING APPROACH

The test plan must outline the full approach for the test cycle and be kept live throughout the testing cycle. This is also a great document to use for lessons learnt

Test DesignTest Cases

Test Scripts

Test Scenarios

Testing Tools and Aids

THE TESTING APPROACH

The main document to control this would be the test log that is aligned to the individual test case number. This can also integrate into the requirements matrix

Test ExecutionRun tests

Defect Reporting

Defect Analysis

Reporting

THE TESTING APPROACH

The execution phase of the testing cycle must be controlled within the project plan and test log and reported back within the agreed communication channels

THE TESTING CHECKLIST

Test ready review

Criteria StatusPlanned, In Progress, Completed

Test Plan Created and Reviewed

Test Cases Integrated into Test Log

Test Data setup and available

Roles and Responsibilities Defined

Communication strategy finalised

Team provided access to the testing application and test management process

Training has been provided where applicable

Supplier contracts finalised

Team has working laptops and mobile appliances

Standards and processes are agreed and setup

The project plan is updated and baselined

Step Action

Test Log All test scenarios completed

Defects resolved Test log indicates outcomes

Defects not resolved Decision if defects are to be moved to live production and resolved under the support SLA

Production Handover Formal handover to the production team

Live Release The live release is sent by the project manager to business

Test Project The test project is closed in the ticket system

Test Team The test team is released and can return to their normal day to day activities

THE TESTING CHECKLIST

Final Checkpoint

MOVING TO LIVE PRODUCTION

Once the testing has been signed off by the business team the project manager will prepare the release notification to handover the project to the support team. This will be managed by your supplier who is hosting your system.

The supplier is also responsible to ensure that all of the migration of data as agreed in the data mapping plan is moved over to the new website.

The business team will have to ensure that the relevant Service Level Agreements are in place which include the required Software Licenses.

Please note

SUMMING UP

Higher reliability will result in greater customer satisfaction: as software development is essentially a business transaction between a customer and developer, customers will naturally tend to patronize the services of the developer again if they are satisfied with the product.

Raising and continuously monitoring the quality of software allows you to improve the Return On Investment, to reduce the time to market and to increase customer satisfaction for your software product.