Living in the digital age, the competition and speed to create the best software product are at an all-time high. At the same time, the failure of being unable to deliver a working product to end-users is also at an all-time high.
In the software industry, there are 3 ways testing can be performed; manual testing, automation testing, and continuous testing. At STS, we've put together a list of the most in-demand types of software testing methods our clients ask us for. We hope this gives you an idea of what to ask for so you can have an error-free software product (well... almost error-free!).
1. System Functional Testing
System Functional Testing (SFT) focuses on the specifications of the software product being tested. This type of testing is conducted to validate that the business requirements are met with the functional requirements. During SFT the objective is to achieve a specific outcome that is defined by the product requirements.
2. Graphical User Interface Testing
Graphical User Interface (GUI) testing focuses on the graphical user interface of a software (elements such as buttons, menus, icons, text boxes, images, etc). This type of testing verifies that elements on a website work as expected as well as ensuring that these elements match design specifications.
3. End-to-End Testing
End-to-end testing focuses on the functional testing of the entire software system. This type of testing verifies that the user workflows of the application are functioning as expected. This type of testing can be as simple as validating that a user is able to log in successfully or as complex as verifying that a user is able to place an order and complete their payment successfully.
4. Performance Testing
Performance testing consists of non-functional types of testing that verify whether the system is able to function correctly under significant resources (load testing, stress testing, spike testing). This is important because it checks to make sure that the software application does not crash when a high number of requests are sent. For example, a test to validate that 100 users performing an action on a website at the same time is an example of load testing.
Some awesome performance tools to analyze your app's performance that we use at STS are JMeter and BlazeMeter.
5. User Acceptance Testing
User Acceptance Testing (UAT) is executed by the end-user/client and during the last phase of the software testing process. The objective of UAT is to verify whether or not the application passes the workflows executed by a user. This type of testing is performed when the QA team has signed off on the release of the product being tested. At this point, the end-user/client would have received the proper documentation and communication of what is being introduced and what to expect with the new product that has been delivered.
6. Sanity Testing
Sanity testing determines whether a new version of the software is functioning as expected after it has been deployed onto the clients' environment. The objective of sanity testing is to confirm that the new version implemented has not broken the user workflows of the software system.
An example of this type of testing would be done after a patch version that contains new code to resolve a defect has been deployed onto a client's production environment. After the new version has been deployed, the QA team would be responsible for ensuring that the workflows around the updated code implemented have not been broken.
7. Smoke Testing
Similar to sanity testing, smoke testing is executed by the QA team to verify that the critical functionalities of the system are working as expected after a new version build is deployed onto a system environment. If a smoke test fails upon a newly deployed build, the team would reject the unstable build and involve the appropriate team members to get this issue resolved as soon as possible.
8. Accessibility Testing
Accessibility testing determines the ease by which users with disabilities can use the software system. It focuses on executing tests to make sure that every user can easily access the website despite having any disabilities. This type of testing tries to address the following disabilities:
Vision Disability (Complete Blindness or Color Blindness or Poor Eyesight, Visual problems like visual strobe and flashing effect problems)
Physical Disability (Difficult to use a keyboard or mouse)
Cognitive Disability (Learning difficulties or poor memory)
Literacy Disability (Reading problems, find words difficult)
Hearing Disability (Auditory problems like deafness and hearing impairments, difficulty to hear well or hear clearly)
In Canada, Ontario the Accessibility for Ontarians with Disabilities Act (AODA) has set out a deadline of June 30, 20201 for businesses and non-profits with 20 or more employees to file an accessibility compliance report.
Check this article for more details https://www.dlapiper.com/en/canada/insights/publications/2020/12/aoda-compliance-deadline-extended/
9. Ad-Hoc Testing
Ad-hoc testing is informal testing that is performed and executed without the use of test cases, plans, documentation, or systems. This type of testing is usually executed after formal testing is performed on the application. It can also be executed when there is limited time to get the software product tested before the project delivery deadline. Due to the lack of process in place when performing ad-hoc testing, it is better for an individual with a strong knowledge of the system to take responsibility for this type of testing.
10. Integration Testing
Integration testing is performed to expose discrepancies in the interfaces as well as how the interactions between individual components behave when they are tested as an integrated group. The purpose of this testing is to verify whether or not modules or components used by a software system behave as expected when they are integrated together. An example of integration testing would be to validate that the API calls between the login page, account profile, and product shop communicate to each other and are functioning as a group.
To conclude, not incorporating these types of testing methods to verify and validate that your product is functioning as expected can result in frustrated customers who might go for a competitor's superior performing product. Here at STS, we assess your existing processes, documentation techniques, regression, and automation suites to come up with a plan that will suit your organizations' needs.