Software Testing Interview Questions

Software Testing Tutorial

Hi friends,
hope you all are doing good. Today here i am posting some important stuff for interview purpose, so that you can go through these stuffs and get a good response during interview process.

Question 1: What is Software/System Testing?
Answer: Software Testing is a process of checking the correctness and completeness of a S/W with regard to customer requirements and expectations is called a Software or System Testing.

Question 2: What is Software?
Answer: Software is a set of executable programs in our computer.

Question 3: What is a Program?
Answer: Program is a set of executable statements.


Question 4: Difference between Error, Fault/Defect/Bug & Failure?
Error :- Any incorrect human activity or action that produces a problem in the system is called an Error.
Fault/Defect/Bug :- Deviation from expected behavior to the actual behavior of the system is called Defect/Bug.
Failure :- The deviation identified by the end-user while using the software or system is called Failure.


Note :- [Bug is nothing but a technical slang used for a defect..]  
  • Reason of defects in Software :-
1. Incorrect Requirement
2. Wrong/Poor Design.
3. Poor coding.
4. Complex Business Logic.
5. Complex Technology.
6. Work Pressure.
7. Frequently changing in Requirements.

Question 5: When software testing should start?
Answer: Testing starts as early as possible in initial phase i.e. Requirement gathering phase and continues till Release/Maintenance phase. The purpose of testing as early in the requirement phase, because if we found any defect or issue in the later phase of SDLC, then the cost of fixing bugs is raised. Therefore, to overcome from this situation, we must need to start testing at the right from the initial phase of SDLC.

Question 6: When to stop Software testing?
Answer: Here are few point which we have to keep in mind before stop software testing:-
1. Bug rate reaches below down a certain level.
2. Tester should stop testing when testers are not getting high priority bugs.
3. Stop when tester meets the project deadline.  
4. Less ratio of critical bugs.
5. Test budget has reaches its limit. Or comes to an end.
6. Stop when Alpha testing and Beta testing gets completed.
7. Stop when code/design, functionality and requirement reaches a specific point.

Question 7: What is Software Development Life Cycle (SDLC)?
Answer: Software Development Life Cycle (SDLC) process is a model plan by which we assure/plan that how to create, develop, implement and eventually close the software.
In simple words:- 
Software Development Life Cycle (SDLC) is a complete plan or process that define the stages and steps to develop a Quality Software.
SDLC Life Cycle
1. Requirement Gathering/Analysis :- In this initial phase Top level management of the development company or a Business Analyst will collect all the information from the end-user or customer. Then prepare BRS and SRS documents.
BRS (Business Requirement Specification):- BRS is nothing but a document which consists of correct and complete requirements to develop a new s/w.
SRS (Software/System Requirement Specification):- SRS is also a document that specifies the, how to develop a new s/w.

2. Design :- In design phase HLD document and LLD document is prepared.
HLD (High Level Design or Architectural Design):- This document provides overall architecture of s/w in diagrammatic notation.
LLD (Low Level Design):- This document specifies internal logic of each and every module or functionality in diagrammatic notation.

Note:[HLD is software Level, and LLD is Module Level Design].

3. Coding :- In this phase coding part is started. This is one of the longest phase of SDLC. Coding phase is also known as Development phase.

4. Testing :- Testing phase is basically done by Testers or Test Engineers. In this phase testers performed different kind of testing. In this, testers assure by testing an application that the build given by developer to the testing team is fulfill end-user expectations.

5. Implementation :- After testing the software developer and tester will deploy and implement the developed software or application for the customer or end-user use. This phase also known as a Deployment phase.

6. Maintenance :- After deployment of an application or product on customer end, customer starts using that application or product. So if any changes is required further, it comes under Maintenance. In short:- We as a software company care and support of that developed product or an application. This phase also known as a Support phase.

Question 8. What is Verification?
Answer: Verification is a process of checking whether the system is well engineered not not? In other words:- Are we developing/building the project right?

Question 9. What is Validation?
Answer: Validation is also a process of checking if the system meets the customer/end-user requirements or expectations. In other words:- Are we developing/building the right project?

Question 10. What is Dynamic Testing?
Answer: Dynamic Testing is the testing done by executing the code or program with various input values and output is verified.

Question 11. What is GUI Testing?

Answer: GUI or Graphical user interface testing is the process of testing software user interface against the provided requirements and designs etc.

Question 12. What is Formal Testing?

Answer: Software verification carried out by following test plan, testing procedures and proper documentation with an approval from customer.

Question 13. What is Risk Based Testing?

Answer: Identifying the critical functionality in the system then deciding the orders in which these functionality to be tested and applying testing.

Question 14. What is Early Testing?

Answer: Conducting testing as soon as possible in development life cycle to find defects at early stages of SDLC.
Early testing is helpful to reduce the cost of fixing defects at later stages of STLC.

Question 15. What is Exhaustive Testing?

Answer: Testing functionality with all valid, invalid inputs and preconditions is called exhaustive testing.

Question 16. What is Defect Clustering?

Answer: Any small module or functionality may contain more number of defects – concentrate more testing on these functionality.

Question 17. What is Pesticide Paradox?

Answer: If prepared test cases are not finding defects, add/revise test cases to find more defects.

Question 18. What is Static Testing?

Answer: Manual verification of the code without executing the program is called as static testing. In this process issues are identified in code by checking code, requirement and design documents.

Question 19. What is Positive Testing?

Answer: Testing conducted on the application to determine if system works. Basically known as “test to pass” approach.

Question 20. What is Negative Testing?

Answer: Testing Software with negative approach to check if system is not “showing error when not supposed to” and “not showing error when supposed to”.

Question 21. What is End-to-End Testing?

Answer: Testing the overall functionality of the system  including the data integration among all the modules is called end to end testing.

Question 22. What is Exploratory Testing?

Answer: Exploring the application, understanding the functionality, adding (or) modifying existing test cases for better testing is called exploratory testing.

Question 23. What is Non-functionality Testing?

Answer: Validating various non functional aspects of the system such as user interfaces, user friendliness security, compatibility, Load, Stress and Performance etc is called non functional testing.

Question 24. What is Usability Testing?

Answer: Checking how easily the end users are able to understand and operate the application is called Usability Testing.

Question 25. What is Security Testing

Answer: Validating whether all security conditions are properly implemented in the software (or) not is called security testing.

Question 26. What is Performance Testing?

Answer: Process of measuring various efficiency characteristics of a system such as response time, through put, load stress transactions per minutes transaction mix.

Question 27. What is Load Testing?

Answer: Analyzing functional and performance behavior of the application under various conditions is called Load Testing.

Question 28. What is Stress Testing?

Answer: Checking the application behavior under stress conditions
(or)
Reducing the system resources and keeping the load as constant checking how does the application is behaving is called stress testing.

Question 29. What is Process?

Answer: A process is set of a practices performed to achieve a give purpose; it may include tools, methods, materials and or people.

Question 30. What is Software Configuration Management?

Answer: The process of identifying, Organizing and controlling changes to software development and maintenance.
(or)

A methodology to control and manage a software development project

Question 31. What is Stubs and Drivers. Why do we use them?
Stubs:- Stubs are simply a dummy modules, that are always recognize as "called program" or in simple, stubs are used in integration testing (top-down approach).
Stubs are generally used when sub programs are under construction.
Drivers:- Drivers are also considered as dummy modules, that are distinguish as "calling program" that is used in bottom up integration testing.
Drivers are only used when main program are under construction.

Question 32. Severity & Priority in Software Testing
There are Two things in bugs/defects of the software testing:-
Severity :- Severity tells the seriousness of a bug on the product functionality. It is assigned by Tester based on seriousness of the bug. We have got four different levels for Severity. Tester sets the severity of bug.

Severity can be categorized into following levels
1. Critical/S1 :- A defect that completely affects or hampers testing of an application/functionality is called a critical or S1 defect.
2. Major/S2 :- In S2 or Major level, Major functionality of an application doesn't work but tester can test the application.
3. Moderate/S3 :- In Moderate or S3 level, Its causing few undesirable behavior, however system or an application is still usable to a high degree.
4. Low/Cosmetic/S4 :- In Cosmetic level, only the changes are related to UI i.e. look and feel of the application. Such defect or bugs doesn't harm the application under test.

Priority :- Priority defines the order. Which bug should rectify first? Should we fix it now or later? Developer or a Project Manager decides the priority of bug.
Priority can be categorized into following levels (P1 as highest and P4 as lowest):
Urgent (P1):- Must be fixed in the next built.
High(P2):- Must be fixed in any of the upcoming builts but should be included in the release.
Medium(P3):- May be fixed after the release.
Low(P4):- May or may not be fixed at all.



Lets take the examples of Priority and Severity :-
1. High Priority and High Severity :- If a valid user goes to login panel (when it is already member) and gives valid credentials to the required fields. And system throws an error like invalid credential. It is comes under High Priority and High Severity. Therefore this bug needs to be fixed as early as possible.
 

2. High Priority and Low Severity :- Lets take an example of Flipkart.com. Suppose while updating Flipkart.com, they updated the wrong logo accidentally with spell missing like Flipart.com, here "k" is missing. It should be Flipkart.com. Now here bug is High Priority and Low Severity bug because this bug is High Priroty, therefore Flipkart has to resolve this problem to keep its brand value.
 

3. Low Priority and Low Severity :- Lets talk about well known and well used shopping website portal Flipkart.com. Everyone knows logo of Flipkart.com. Suppose while updating the website they made a spelling mistake in the content or somewhere in home page. Its fine it wont impact much. User can still use the website. This kind of bug comes under Low Priority and Low Severity. It is also called cosmetic error.
 

4. High Severity and Low Priority :- Lets take an example of an application, while using the application, if that application crashes after multiple use of functionality like: after clicking 200 clicks on save button and suddenly application gets corrupted. So such kind of bug comes under High Severity and Low Priority.