🧪

Testing

1.0 Why is Testing Important?

Software should be tested before it is released to the public.

Untested software can lead to errors, bugs and crashes for the end user.

These can cause the company’s reputation to be negatively affected, which could lead to a decline in sales and loss of profit.

‣
Logic errors
‣
Syntax errors

2.0 Testing Strategies

In the software engineering lifecycle, testing can be undertaken at different stages, depending on the needs of the client (the company paying for the software to be developed).

The software development team may perform iterative testing or final product testing, or both.

2.1 Iterative Testing

Testing is carried out repeatedly, as the software project is completed. For example, testing is carried out after each major product stage is complete.

If tests fail, the product can be re-programmed until the tests pass.

This type of testing can make the product meet the client’s requirements more successfully.

2.2 Final Testing

Testing is carried out once, after the entire software project has been completed. Testers compare the finished product to the original requirements set out by the client.

If tests fail, they may not be fixed when the product is handed over to the client.

This type of testing risks the clients’ requirements not being fully met.

3.0 Test Plans

Test plans, created by the development team, will outline exactly what will be tested and how.

Test plans cover all possible paths through the software and anticipate potential issues.

A good test plan will test the system thoroughly using different types of tests, detailing them sufficiently, especially data tests.

3.1 Types of Tests

(FLUDABS)

Name
Description
Example
Functionality Test

Testing to see if the software works correctly and as expected

No logic or syntax errors

Load Test

Testing to see if the software can handle extreme conditions

Lots of data input at once; lots of users logged on at once

Usability Test

Testing to see how user-friendly the interface is

Does the background colour affect how easily text is read?

Data Test

Testing to see how the software handles different user inputs

Normal data; erroneous data; extreme data

Acceptance Test

Testing against the client’s original requirements

Beta Test

Testing is carried out by an end user before the software’s full release

Security Test

Testing to see how vulnerable the software is to attack by cyber criminals

Does authentication work? Is user's data private?

3.2 Data Testing (BIEN)

‣
Boundary Data Test
‣
Invalid Data Test
‣
Erroneous Data Test
‣
Normal Data Test