Software Testing:
- The process of finding errors in the developed product.
- Testing the software whether it is working according to the requirement.
Two ways of Testing:
1. Manual Testing
2. Automation Testing
Manual Testing:
- Manual testing is verifying the software manually and finding errors without the intervention of any tools.
- The tester has to execute each test case one by one.
- They give input and manually verify the output.
Automation Testing:
- Automation Testing is testing the software with the help of some automation tools like Selenium.
- The code is run for automating tests and the input data is given to the tool.
- The output data is compared with the expected results.
- Automation testing is generally performed for repeated tasks so that time can be saved.
Levels of Testing:
1. Unit Testing
2. System Testing
3. Integration Testing
4. Acceptance Testing
1. Unit Testing:
- Unit testing is the first level of testing usually performed by the developers.
Advantage: Error can be detected at an early stage saving time and money to fix it.
2. System Testing:
- Complete application testing.
- Done by Testers.
- Black Box Testing Techniques.
- FRS and test case document.
System Testing Categories:
- Usability Testing
- Functional Testing
- Performance Testing
- Security Testing
3. Integration Testing:
- Combining/merging modules.
- Done by Developers.
- White box testing technique.
4. Acceptance Testing:
- Getting approval from the client.
- Done by the client.
- Satisfying client requirements.
Types of Testing:
1. Functional Testing
2. Non-Functional Testing
1. Functional Testing:
- Testing the behaviour of the application.
- Based on how well the system is working.
Alpha Testing:
- The application is tested for the first time.
- Done under the supervision of developers.
Beta Testing:
- The application is tested a second time.
- Before the final release of the software is released to users for testing.
Smoke Testing:
- Testing the primary functionality of the application.
Sanity Testing:
- Testing the minor functionality of the application.
Regression Testing:
- Testing the whole application to check whether new requirement changes affect previous functionality.
Retesting:
- Testing only the bugs fixed by the developers.
2. Non-Functional Testing:
- Based on how well the system is performed.
- Testing the performed to verify the non-functional requirements of the application.
Usability Testing:
- User Friendly
- Look and Feel
- Ease of use
- Speed in Interface
- Context Sensitiveness
Performance Testing:
- Load Testing
- Stress Testing
- Data/Volume Testing
Security Testing:
- Protecting from unauthorized access.
Compatibility Testing:
- OS Compatability - Testing in multiple OS.
- Browser Compatability - Testing in multiple Browsers.
Software Testing Interview Questions and Answers:
1. STLC - stands for Software Testing Life Cycle.
Requirements and analysis, test planning, test design, test execution, error report, solving the error, re-test, test close.
2. Software Quality:
- Quality is ensured by two sets of activities. verification and validation.
Verification - It involves activities like document review, test case review, walk-throughs, and inspections.
Validation - It involves activities like functional testing and automation testing.
3. Workflow of Functional Testing:
- Create input values.
- Execute test cases.
- Compare actual and expected output.
4. Client Expectation:
Completeness, correctness, quality.
5. Tester Responsibility: (Zero bugs and 100% quality)
- Execute test cases
- Positive and Negative Conditions.
- Manual or Automation tools.
6. Error - Done by the developer in code
Bug - Tester identifies the errors.
7. Quality - Meeting client requirements.
Customer needs or expectations.
8. How to measure Quality:
Functionality, Usability, Reliability, Performance, and Scalability.
9. Bug - unexpected or incorrect result.
10. Main Goal of Testing:
Expected Result = Actual Result (Test Pass)
Expected Result != Actual Result (Test Fail)
11. Severity - the impact of a bug on the software.
Priority - is how soon a bug needs to be fixed.