Different types of Software Testing:
Functional Testing types:
- Unit Testing: Individual units or components of the software are tested. A unit is the smallest testable part of the software. This is usually not manual and mostly done by developers as they write code.
- Integration Testing: Testing of all integrated modules of the software to make sure modules once combines works as expected or not. The best example would be FE and BE integration testing.
- System Testing: The entire system is tested as per the defined requirements. Black box testing performed by QA.
- End to End Testing: Same as System testing but mimics more real-world use cases and interactions with network, databases and real users. Most companies combine system testing and end-to-end testing as there is a very thin line between both.
- Sanity Testing: Sanity testing is performed by the QA team to determine SW which is released is ready to do a full round of testing or not. This is usually quick and covers basic functionalities. Sanity should be quick and automated, so that build can be rejected if it fails.
- Smoke Testing: Smoke testing is the same as sanity but very small. This is very quick to check software crashes so that the QA team can quickly proceed.
- Regression Testing: Regression testing is to uncover bugs and to make sure software is working as expected after the new release or changes to the system. This is usually automated as its a huge set.
- User Acceptance Testing: This is done by end-users or clients to determine if the software meets all business requirements and to evaluate if it can go to production. Alpha and beta testing is part of UAT.
- Database Testing: This testing checks database operations, tables, schemas and triggers. It also checks for the integrity and consistency of the data. It can also involve performing complex queries. Stress and load testing also should be performed on the database.
- Availability Testing: Software under test is run continuously for a long time and data is collected and analyzed for failure rates and their repair time. High availability testing is the testing of the availability of backup servers when the actual server fails.
- SEO Testing: SEO testing is the process of evaluating the best steps to optimize your pages for the search engine results pages (SERPs). SEO tester software is generally used to track the distinct actions of users in each version, but Google Optimize offers free, accessible SEO testing. A/B testing (also known as split testing or bucket testing) is a method of comparing two versions of a webpage or app against each other to determine which one performs better.
- Functional: It is a type of software testing whereby the system is tested against the functional requirements/specifications. Functions (or features) are tested by feeding them input and examining the output based on the function's specifications.
- UX/UI Testing: User interface (UI) is a component of user experience (UX). Think of UX as the user's entire experience from first landing on a website to leaving it for the last time. Testers verify various UI elements against UX specification document check if the size, alignment, color, font, etc is according to the spec
- API Testing: It is a software testing type that validates Application Programming Interfaces (APIs). The purpose of API Testing is to check the functionality, reliability, performance, and security of the programming interfaces. This is usually performed using tools.
- Positive/Negative/Edge/Corner/Boundary: Positive testing verifies application or system under test what it is supposed to do. The system is tested for a positive set of test data. Negative testing is a testing type in which the system under test is tested for unexpected input data and conditions. An edge case is a problem or situation that occurs only at an extreme (minimum or maximum) operating parameter. A corner case occurs outside of normal operating parameters, specifically when multiple environmental variables or conditions are simultaneously at extreme levels. You are still within the valid parameter space but near its corner. Boundary case occurs when one of the inputs is at or just beyond maximum or minimum limits.
Non-functional Testing types:
- Performance Testing: A testing practice to determine how a system performs in terms of speed, responsiveness and stability under a particular workload. Load, stress, endurance, spike, volume and scalability testing comes under performance testing. Load vs stress - The load test measures the performance of the system under an expected load wherein stress tests overload a system in order to find a breaking point.
- Load Testing: A testing practice to determine a system's performance under a specific load. For e.x. Web application load testing is done by measuring how a system performs when a large number of users access it.
- Stress Testing: Pushing the system for a failure under heavy load. It verifies the system's reliability and stability under heavy load.
- Volume Testing: Software is flooded with high volume of data. The performance of the system is analyzed by increasing the data load in the database.
- Security Testing: This testing is done to uncover vulnerabilities and risks in the software to protect the software from malicious attacks.
- Compatibility Testing: This testing is to check whether your software can be run on different operating systems, browsers and devices.
- Recovery Testing: This testing is to check how well software can recover from failures or crashes. The system is force for failures to check for recovery.
- Reliability Testing: Reliability and stability are different. The reliability of the software is determined by repeating the same tests certain number of times in the same environment.
- Usability Testing: This is a measure of how easily a system can be used by end-users.
- Compliance/Conformance/Regulation/Standards Testing: Type of software testing to determine compliance of a system is according to the organization standards and also to external standards.
- Localization Testing: This testing is performed to verify the quality of the software for a specific culture or locale. It ensures software can be used in that particular region. It tests user interface, language, vocabulary, currency format, time & date format.
- Accessibility Testing: This is a subset of usability testing where the users under consideration are people with disabilities.

Comments
Post a Comment