Ques.26. Explain the bug life cycle or the different states of a bug.
Ans. A bug goes through the following phases in software development-
- New – A bug or defect when detected is in New state
- Assigned – The newly detected bug when assigned to the corresponding developer is in Assigned state
- Open – When the developer works on the bug, the bug lies in Open state
- Rejected/Not a bug – A bug lies in rejected state in case the developer feels the bug is not genuine
- Deferred – A deferred bug is one, fix of which is deferred for some time(for the next releases) based on urgency and criticality of the bug
- Fixed – When a bug is resolved by the developer it is marked as fixed
- Test – When fixed the bug is assigned to the tester and during this time the bug is marked as in Test
- Reopened – If the tester is not satisfied with issue resolution the bug is moved to the Reopened state
- Verified – After the Test phase if the tester feels the bug is resolved, it is marked as verified
- Closed – After the bug is verified, it is moved to Closed status.
Ques.27. What are the different test design techniques?
Ans. Test design techniques are different standards of test designing that allow systematic and widely accepted test cases. The different test design techniques can be categorized as static test design technique and dynamic test design techniques.
- Static Test Design Techniques – The test design techniques which involves testing without executing the code. The various static test design techniques can be further divided into two parts manual and using tool-
- Manual static design techniques-
- Informal reviews
- Technical reviews
- Management review
- Static design techniques using tool-
- Static analysis of code – It includes analysis of the different paths and flows in the application and different states of the test data.
- Compliance to coding standard – This evaluates the compliance of the code with the different coding standards.
- Analysis of code metrics – The tool used for static analysis is required to evaluate the different metrics like lines of code, complexity, code coverage etc.
- Manual static design techniques-
- Dynamic Test Design Techniques – Dynamic test design techniques involve testing by running the system under test.
- Specification based – Specification based test design techniques are also referred to as blackbox testing. These involve testing based on the specification of the system under test without knowing its internal architecture.
- Structure based – Structure based test design techniques are also referred to as white box testing. In these techniques, the knowledge of code or internal architecture of the system is required to carry out the testing.
- Experienced based – The experienced based techniques are completely based on the experience or intuition of the tester. Two most common forms of experienced based testing are – adhoc testing and exploratory testing.
Ques.28. Explain the different types of specification-based test design techniques?
Ans. Specification-based test design techniques are also referred to as blackbox testing. It involves testing based on the specification of the system under test without knowing its internal architecture. The different types of specification-based test design or black box testing techniques are-
- Equivalence partitioning – Grouping test data into logical groups or equivalence classes with the assumption that all the data items lying in the classes will have the same effect on the application.
- Boundary value analysis – Testing using the boundary values of the equivalence classes taken as the test input.
- Decision tables – Testing using decision tables showing the application’s behavior based on a different combination of input values.
- Cause-effect graph – Testing using a graphical representation of input i.e. cause and output i.e. effect is used for test designing.
- State transition testing – Testing based on the state machine model.
- Use case testing – Testing carried out using use cases.
Ques.29. Explain equivalence class partitioning.
Ans. Equivalence class partitioning is a specification based black-box testing techniques. In equivalence class partitioning, set of input data that defines different test conditions are partitioned into logically similar groups such that using even a single test data from the group for testing can be considered as similar to using all the other data in that group. E.g. for testing a Square program(a program that prints the square of a number- the equivalence classes can be-
Set of Negative numbers, whole numbers, decimal numbers, set of large numbers etc.
Ques.30. What is boundary value analysis?
Ans. Boundary value analysis is a software testing technique for designing test cases wherein the boundary values of the classes of the equivalence class partitioning are taken as input to the test cases e.g. if the test data lies in the range of 0-100, the boundary value analysis will include test data – 0,1, 99, 100.
Ques.31. What is decision table testing?
Ans. Decision table testing is a type of specification-based test design technique or black-box testing technique in which testing is carried out using decision tables showing the application’s behavior based on different combinations of input values. Decision tables are particularly helpful in designing test cases for complex business scenarios involving verification of application with multiple combinations of input.
Ques.32. What is a cause-effect graph?
Ans. A cause-effect graph testing is black-box test design technique in which graphical representation of input i.e. cause and output i.e. effect is used for test designing. This technique uses different notations representing AND, OR, NOT etc relations between the input conditions leading to output.
Ques.33. What is state transition testing?
Ans. State transition testing is a black box test design technique based on state machine model. State transition testing is based on the concept that a system can be defined as a collection of multiple states and the transition from one state to other happens because of some event.
Ques.34. What is the use case testing?
Ans. A use case testing is a black-box testing approach in which testing is carried out using use cases. A use case scenario is seen as an interaction between the application and actors(users). These use cases are used for depicting requirements and hence can also serve as a basis for acceptance testing.
Ques.35. What is structure-based testing?
Ans. Structure-based test design techniques are also referred to as white box testing. In these techniques the knowledge of code or internal architecture of the system is required to carry out the testing. The various kinds of testing structure-based or white testing techniques are-
- Statement testing – Test scripts are designed to execute code statements and coverage is the measure of the line of code or statements executed by test scripts.
- Decision testing/branch testing – Measure of the percentage of decision points(e.g. if-else conditions) executed out of the total decision points in the application.
- Condition testing- Testing the condition outcomes(TRUE or FALSE). So, getting 100% condition coverage required exercising each condition for both TRUE and FALSE results using test scripts(For n conditions we will have 2n test scripts).
- Multiple condition testing – Testing the different combinations of condition outcomes. Hence for 100% coverage, we will have 2^n test scripts. This is very exhaustive and very difficult to achieve 100% coverage.
- Condition determination testing – It is an optimized way of multiple condition testing in which the combinations which doesn’t affect the outcomes are discarded.
- Path testing – Testing the independent paths in the system(paths are executable statements from entry to exit points).
Ques.36. What is Statement testing and statement coverage in white box testing?
Ans. Statement testing is a white box testing approach in which test scripts are designed to execute code statements.
Statement coverage is the measure of the percentage of statements of code executed by the test scripts out of the total code statements in the application. The statement coverage is the least preferred metric for checking test coverage.
Ques.37. What is decision testing or branch testing?
Ans. Decision testing or branch testing is a white box testing approach in which test coverage is measured by the percentage of decision points(e.g. if-else conditions) executed out of the total decision points in the application.
Ques.38. What are the different levels of testing?
Ans. Testing can be performed at different levels during the development process. Performing testing activities at multiple levels helps in the early identification of bugs. The different levels of testing are –
- Unit Testing
- Integration Testing
- System Testing
- Acceptance Testing
Ques.39. What is unit testing?
Ans. Unit testing is the first level of testing and it involves testing of individual modules of the software. It is usually performed by developers.
Ques.40. What is integration testing?
Ans. Integration testing is performed after unit testing. In integration testing, we test the group of related modules. It aims at finding interfacing issues between the modules.
Ques.41. What are the different types of integration testing?
Ans. The different type of integration testing are-
- Big bang Integration Testing – In big bang integration testing, testing starts only after all the modules are integrated.
- Top-down Integration Testing – In top-down integration, testing/integration starts from top modules to lower-level modules.
- Bottom-up Integration Testing – In bottom-up integration, testing starts from lower-level modules to higher-level module up in the hierarchy.
- Hybrid Integration Testing – Hybrid integration testing is the combination of both Top-down and bottom-up integration testing. In this approach, the integration starts from the middle layer and testing is carried out in both the direction
For details check Integration testing.
Ques.42. What is stub?
Ans. In case of top-down integration testing, many a times lower-level modules are not developed while beginning testing/integration with top-level modules. In those cases, Stubs or dummy modules are used that simulate the working of modules by providing a hard-coded or expected output based on the input values.
Ques.43. What is a driver?
Ans. In case of bottom-up integration testing, drivers are used to simulating the working of top-level modules in order to test the related modules lower in the hierarchy.
Ques.44. What is a test harness? Why do we need a test harness?
Ans. A test harness is a collection of test scripts and test data usually associated with unit and integration testing. It involves stubs and drivers that are required for testing software modules and integrated components.
Ques.45. What is system testing?
Ans. System testing is the level of testing where the complete software is tested as a whole. The conformance of the application with its business requirements is checked in system testing.
Ques.46. What is acceptance testing?
Ans. Acceptance testing is testing performed by the potential end-user or customers to check if the software conforms to the business requirements and can be accepted for use.
Ques.47. What is alpha testing?
Ans. Alpha testing is a type of acceptance testing that is performed end-users at the developer site.
Ques.48. What is beta testing?
Ans. Beta testing is the testing done by end-users at end user’s site. It allows users to provide direct input about the software to the development company.
Ques.49. What is Adhoc testing?
Ans. Adhoc testing is an unstructured way of testing that is performed without any formal documentation or proper planning.
Ques.50. What is monkey testing?
Ans. Monkey testing is a type of testing that is performed randomly without any predefined test cases or test inputs.
Continue with the remaining question here – Manual Testing Interview Questions