The following are Interview questions related to the topics Software Testing strategies: A strategic approach to software testing, Strategic issues, Test Strategies for Conventional software, Test strategies for Object-oriented Software. Test strategies for webapps, Validation testing , System testing, The art of debugging. Testing Conventional Applications: Software testing Fundamentals, Internal and external views of testing, White-box testing, basic path testing, Control structure testing, Black box testing, Model-based testing, Testing for specialized environments, Architectures and Applications, Patterns for Software testing. Testing object oriented applications: Broadening the view of Testing, Testing with OOA and OOD models, Object-oriented testing strategies, Object-oriented testing methods, testing methods applicable at the class level, Interclass Test-Case Design.
1. What do you mean by Software Testing?
A. The process, to evaluate the functionality of a software application with an objective to find whether the developed software met the specified requirements or not and to identify the defects to ensure that the product is error free in order to produce the quality product.
2. Mention some goals of testing.
A. The objectives of testing are:
- To execute the task aimed in detecting the errors.
- A test case with which there is most probability of finding hidden errors.
- A successful test is one that uncovers as an-yet undiscovered error.
3. State the fundamental principles of Software testing.
A. Some of the basic principles of Software testing are:
- Planned long before testing starts
- Exhaustive testing is not possible.
- Conducted by independent third party.
- Traceable to customer requirements.
4. Define the testing levels.
A. The two levels of testing are: Component testing – In this level of testing, the Individual components are tested. Tests are derived from developer‟s experience. System Testing – In this level of testing the groups of components are integrated to create a system or sub-system is done. These tests are based on the system specification.
5.Define STLC and mention different phases in it.
A. STLC stands for Software Test Life Cycle (STLC). It is the process to test software in systematic way. The different phases of STLC are Test Planning, Test Design, Test Execution, Evaluating the Exit criteria, Test Closure.
6. State two differences between SDLC vs STLC.
|SDLC(Software Development Life Cycle) involves with complete Verification and Validation of a Process or a Project.||STLC(Software Test Life Cycle) involves only Validation.|
|It involves business requirement specifications, Analysis, Design,Software requirement specifications, Development Process(Coding and Application development), Testing Process(Preparation of Test Plan,Preparation of Test cases,Testing,Bug reporting,Test Logs &; Test Reports), Release and Maintenance.||It involves Preparation of Test Plan, Preparation of Test cases,Test execution ,Bug reporting &; Tracking, Re &; Regression Testing and Test Closure.|
7. What is Validation?
A. The process of evaluating software at the end of the development process to determine whether software meets the customer requirements is called validation.
8. What is Verification?
A. The process of evaluating products of a development phase to find out whether they meet the specified requirements is called Verification.
9. Is Validation and Verification both the same?If not why?
A. No, Validation decides the correct product and verification decides whether that product is built in proper manner or not.
10. Define the types of Software testing.
A. There are two ways to test software Manual testing and Automated testing. The former kind of testing generates the test cases by a software tester. Based on those test cases the manager announces about the outcomes. The later kind of testing uses some specific tools of testing to software test. These are specifically developed to reduce the time consumption, and optimum utilization of resources.
11.What are the approaches to perform software testing?
A. There exist two different approaches to conduct testing on a software are Functionality testing and Implementation testing. To perform testing on functionality concerns of a software program is called Functional testing. To perform testing over the functionality together with the implementation concerns of a software program is called Implementation testing.
12.Define White-box testing.
A. In White box testing the test case designs uses the control structure of procedural design to derive the test cases. It is otherwise called as “ Glass box testing”.
13. What is Black box testing?
A. The black box testing totally depends on the functional requirements of the software. In this testing, the tests are derived which will completely operate all the requirements. It is also called as “Behavioral Testing”.
14. What attributes confirms that testing is done in a proper way?
A. Based on the following considerations we can make sure that there done a good test.
- High probability in detecting errors.
- Not redundant
- Neither very simple nor very hard.
15. What are the characteristics of testability of software?
A. The characteristics of testability of software are Operability. Controllability. Decomposability. Simplicity. Stability. Understand ability.
16.State different Black-box techniques.
A. The following are the different techniques of Black-box testing.
- Equivalence class
- Boundary values
- Cause-effect graphing
- Pair-wise Testing
- State-based testing
17.What are the techniques of White box testing?
A. Some of the techniques of White-box testing are Control flow testing and Data-flow testing. Control-flow testing considers all the statements and conditions; test cases are set up for incorporating control-flow testing. By covering all the statements, the conditions are tested for true and false. In Data-flow testing the program data variables are considered for testing. The variables are tested for their declaration and definition and their usage.
18.Mention various levels of Software testing.
A.The different levels of software testing are Unit testing, Integration testing, Software testing, Acceptance testing, Regression testing.
19.What are the common errors detected during Unit testing?
A.The commonly detected issues are regarding Misunderstood or incorrect arithmetic precedence. Mixed Mode Operations, Incorrect Initialization. Precision Accuracy ,Incorrect Symbolic representation of expression.
20.Mention the frequent errors identified during Black-box testing.
A. The possible errors during black box testing are:
- Incorrect or missing functions
- Interface errors.
- Errors in data structures or external databases.
- Behavioral or performance errors.
- Initialization or termination errors.
21.What according to you is Equivalence partitioning?
A. One of the kinds of black box testing is Equivalence Partitioning (EP). In this EP, the partition of input domain into the classes of data is done. So that, we can derive test cases from this data. Equivalence class denotes a set of states which are valid and invalid as well for the input conditions.
22. What are alpha and beta testing. Define them.
A. Alpha and beta testing are the types of acceptance testing
a)Alpha test : The alpha testing is attesting in which the version of complete software is tested by the customer under the supervision of developer. This testing is performed at developer‟s site
b)Beta test : The beta testing is a testing in which the version of the software is tested by the customer without the developer being present. This testing is performed at customer‟s site.
23. What is Debugging?
A. The process of removing defects is known as Debugging. It results as a consequence of successful testing.
24. List the basic debugging approaches.
A. The general approaches in Debugging are:
- Brute force method
- Back tracking method
- Cause elimination method.
25. Define the following terms a) Structural testing b) Regression testing.
A. In structural testing derivation of test cases is according to program structure. Hence knowledge of the program is used to identify additional test cases. Regression testing is used to check for defects propagated to other modules by changes made to existing program. Thus, regression testing is used to reduce the side effects of the changes.