An overview to software testing
When testing a new website or piece of software there are various tests that you can undertake to ensure that the end product is bug free and of the highest standard.
Before delving further into the different testing types it is important to note that the level and amount of testing that you undertake is largely dependent on the business requirements, complexity and size of the project.
The testing that we will be looking at includes:
- Usability testing
- Functional testing
- Compatibility testing
- Database testing
- Security testing
- Performance testing
Usability testing
Usability testing is nothing more than assessing how easy your product is to use and whether the flow through the solution is logical and intuitive.
Usability test scenarios include:
- Correctness of content.
- Use of typography.
- Usefulness of error messages and tooltips.
- Flow of content through the product.
Functional testing
Functional testing is testing to see whether the features that have been developed perform as outlined in the specification and tests all end-to-end workflows / business scenarios (both positive and negative scenarios).
Functional test scenarios include:
- All mandatory fields are validated.
- Leap years are validated correctly and do not cause errors and or miscalculations.
- Numeric fields do not accept non numerical inputs.
- Max length of every field to ensure the data is not truncated.
- Correct currency is applied and that calculations work.
- Any functional failures deliver meaning error messages.
- Uploaded documents are opened properly.
- Email notifications are sent for different transactions.
- Forms are working as expected.
- All links are working (outgoing, internal, anchor and MailTo links).
Compatibility testing
Compatibility testing focuses on making sure that your solution is compatible with other elements of a system with which it should operate, e.g. Browsers, Operating Systems, or hardware.
Compatibility test scenarios include:
- How does the solution display in different browsers (IE, Firefox, Chrome, Safari and Opera).
- Is the HTML version compatible with browser versions.
- Do images display correctly in different browsers.
- Are fonts usable in different browsers.
Database testing
Database testing looks at whether the records inserted in the web application are stored correctly in the database.
Database test scenarios include:
- Tables, columns, column types and defaults match the specification.
- Primary and foreign keys of each table are correct.
- Stored procedures work correctly.
- Data is saved correctly in the database after each page submission.
- Response time of each query executed.
- Data displayed on the front end is the same as the back end.
Security testing
Security testing is undertaken to identify any flaws and gaps from a security point of view and include:
- Important data is encrypted and submitted via HTTPS.
- Password rules are implemented on all authentication pages.
- If the password is changed the user is unable to login with the old password.
- If the user is logged out from the system or the user session has expired, the user is unable to navigate the site.
- Can secured content be accessed without login?
- User account is locked if the user enters the wrong password several times.
- User roles and rights have been correctly configured.
Performance testing
Performance testing is conducted to evaluate the compliance of a system or component with specified performance requirements and covers.
- Performance, stability and scalability under different load conditions.
- Can the architecture support the solution at peak user levels?
- User response times.
- Stress testing the product to determine its breakpoint.
Testing is an essential part of the development lifecycle and needs to be undertaken at multiple points to ensure a high quality end product. The investment in time is significant and when building out your project schedule make sure that you have allocated sufficient time to this crucial phase of the project.