1. What is Software Testing?
Software testing is the process of analysing a system to check if it serves its business requirements. It measures the overall quality of the system in terms of attributes like correctness, completeness, usability, performance etc. Basically, it is used for ensuring the quality of software to the stakeholders of the application.
2. Why is testing required?
We need software testing for following reasons :
1. Testing provides an assurance to the stakeholders that product works as intended.
2. Avoidable defects leaked to the end user/customer without proper testing adds bad reputation to the development company.
3. Defects noted earlier phase of SDLC results into lesser cost and facilities utilisation of correction.
4. Saves development time by finding issues in earlier phase of development.
5. Testing team adds another dimension to the software development by producing a different view point to the product development process.
3. What is Quality Control?
Quality control is product driven application which checks that the developed product conforms to all the specified needs. It is examined as a corrective measure as it tests the built product to find the defects. It involves various types of testing like functional testing, performance testing, usability testing etc.
4. What is the difference between Verification and Validation?
Following are the major differences between verification and validation-
# | Verification | Validation |
---|---|---|
1. | Verification is the process of evaluating the artifacts as well as the process of software development in order to ensure that the product being developed will comply with the standards. | The process of validating that the developed software product that follows to the specified business needs. |
2. | It is static process of analysing the documents and not the actual end product. | It involves dynamic testing of software product by running it. |
3. | Verification is a process oriented approach. | Validation is a product oriented approach. |
4. | Answers the question - "Are we developing the product right?" | Answers the question - "Are we developing the right product?" |
5. | Errors found during verification require lesser cost/resources to get fixed as compared to be found during validation phase. | Errors found during validation require more cost/resources. Later the error is located higher is the cost to fix it. |
5. What are the different types of testing?
There are two types of testing. They are:Functional testing - Functional testing include validating the functional specifications of the system.
Non Functional testing - Non functional testing involves testing the non-functional requirements of the system like performance, security, scalability, portability, endurance etc.
Going by the way the testing is done, it can be categorized as-
Black box testing - In black box testing, the tester need not have any knowledge of the internal architecture or implementation of the system. The tester interact with the system through the interface supply the input and validating the received output.
White box testing - In white box testing, the tester analyses the internal architecture of the system as well as the quality of source code on different parameters like code optimization, code coverage, code reusability etc.
Gray box testing - In gray box testing, the tester has partial approach to the internal architecture of the system e.g. the tester may have approach to the design documents or database structure. This information helps tester to test the application better.
6. What are some attributes of a test case?
A test case can have following attributes-
1. TestCaseId - A special identifier of the test case.2. Test Summary – One liner overview of the test case.
3. Description - Detailed description of the test case.
4. Prerequisite - A set of prerequisites that must be followed before performing the test steps.
5. Test Steps - Detailed steps for executing the test case.
6. Expected result - The expected result in order to proceed the test.
7. Actual result - The actual result after performing the test steps.
8. Test Result - Pass/Fail status of the test execution.
9. Automation Status - Identifier of automation, whether it is automated or not.
10. Date - The test execution date.
11. Executed by - Name of the person performing the test case.