‣
- Functional Testing: This involves testing the software's functionality against the specified requirements to ensure that it performs as expected. It includes testing various inputs and scenarios to verify correct behavior.
- Non-Functional Testing: This type of testing focuses on non-functional aspects of the software, such as performance, scalability, security, usability, and compatibility with different environments.
- Regression Testing: Whenever changes are made to the software, either through bug fixes or feature additions, regression testing is performed to ensure that existing functionality has not been adversely affected.
- Integration Testing: This involves testing the interactions between different components or modules of the software to ensure they work together seamlessly.
- Unit Testing: Developers write unit tests to verify the correctness of individual units or components of the software in isolation.
- User Acceptance Testing (UAT): This is the final phase of testing where end-users or clients validate the software to ensure it meets their needs and requirements.
- Automated Testing: Test scripts and tools are used to automate repetitive testing tasks, which helps in saving time and increasing test coverage.
- Performance Testing: This assesses how well the software performs under various conditions, such as load, stress, and scalability, to ensure it can handle expected workloads.
- Security Testing: This checks the software for vulnerabilities and weaknesses to ensure that sensitive data and system integrity are not compromised.
- Usability Testing: Focuses on evaluating the software's user interface and overall user experience to ensure it is intuitive and user-friendly.
- Compatibility Testing: Ensures that the software works correctly across different devices, operating systems, browsers, and network environments.
- Exploratory Testing: Testers explore the software without predefined test cases, using their intuition and experience to uncover defects.
‣
It depends on what exactly we want to test: do we want to test functionality or test-non-functional requirements.
- Setting up application environments. Have dedicated Test Environment.
- Contract testing for Mocking APIs using Pact, or there is another tool called Mountebank. Give example of microservice A and microservice B.
- Set up proper CI/CD for utilizing tests.