Explore topic-wise InterviewSolutions in .

This section includes InterviewSolutions, each offering curated multiple-choice questions to sharpen your knowledge and support exam preparation. Choose a topic below to get started.

1.

What do you understand about stubs and drivers? Differentiate between them.

Answer»
  • Stub: Stubs are created by software developers to be used in place of modules if the respective modules have not been constructed, are missing in the development stage, or are currently unavailable during Top-down testing. A stub is a module that mimics the functionality of an unavailable module. Stubs are used when lower-level modules are required but are currently unavailable. For instance, suppose you have three different modules: Login, Home, and User. Assume that the login module is ready for testing, but the two minor modules Home and User, which are invoked by the login module, are not. At this point, a piece of fake code is written to replicate the Home and User functions. The stubs are the dummy parts of the code.
  • Driver: Drivers are similar to stubs in that they SERVE the same goal, but they are more complicated and are utilised in Bottom-up integration testing. Drivers are also used to operate in the absence of essential modules when some modules are absent and unavailable at the time of testing a specific module due to unforeseen circumstances. When high-level modules are missing, drivers are utilised. They can also be used when lower-level modules are missing.
    • Let's use the same example as before. Assume that the User and Home modules are ready to test this time, but the Login module is not. Because the Login module returns data to Home and User, a dummy piece of code is developed to emulate the Login.

The following table lists the DIFFERENCES between Stub and Driver:

StubDriver
In Top-Down Integration Testing, stubs are employed.In Bottom-Up Integration Testing, drivers are used.
Stubs are analogous to software modules that are in the development stage.Drivers are ACCUSTOMED to invoking the component that must be tested.
Stubs are primarily utilised when low-level modules are unavailable.Drivers are mostly used to replace high-level modules, they can also be used to replace low-level modules in specific cases.
They are also referred to as “called programs”.They are also referred to as “calling programs”.
To test the features and functionality of the modules, stubs are used.If the CORE module of the software is not developed for testing, the drivers are used.
If upper-level module testing is completed but lower-level module development is ongoing, the stubs are taken into consideration.If lower-level module testing is completed while upper-level module development is underway, the drivers are taken into consideration.
Stubs are used to test the main module when lower-level modules are unavailable or in a partially completed state. When higher-level modules are absent or in a partially built state and we wish to test the lower(sub)-module, we use drivers.
Conclusion

A rigorous quality assurance strategy yields a software product that is both high-quality and error-free. However, quality assurance entails a lot more. Quality assurance is vital for many parts of the BUSINESS, including client interactions and the company's reputation in the market, in addition to finding flaws and places for improvement in a product.

Useful Resources:

Software Testing

Automation Testing

2.

What do you understand about bug/ defect triage in the context of quality assurance?

Answer»

Defect triage is a method of prioritising bugs BASED on their SEVERITY, frequency, risk, and other factors. The term "triage" is used in software testing and quality assurance to describe the severity and IMPORTANCE of new faults. Bug triage's purpose is to review, prioritise, and assign defect solutions. The team must confirm the severity of the fault, make necessary changes, conclude defect resolution, and assign resources. This method is PRIMARILY utilised in agile project management. The frequency of the Defect Triage Meeting isn't SET in stone. It is dependent on the circumstances of the project. 

The following are some key elements that influence the frequency of Defect Triage Meetings:

  • According to the project's schedule.
  • The number of flaws in the system.
  • The impact on the availability of team members' schedules.
  • The state of the project as a whole.
3.

What do you understand by black box and white box testing? Differentiate between them.

Answer»
  • WHITE box testing: White box testing examines the inside structures of the software, including the employed data structures, internal design, code structure, and how it works, rather than just the functionality, as black-box testing does. It's also known as structural testing, clear box testing, or GLASS box testing.
  • Black box testing: Black box testing is a sort of software testing when the software's internal functionality is unknown. The testing is carried out with no knowledge of the products' internal workings. The following methods can be used to conduct black-box testing:
    • Syntax Driven Testing: This method of testing is used on systems that may be represented syntactically by a language. Compilers, for example, are a type of language that can be described using a context-free grammar. The test cases are created in such a way that each grammatical RULE is applied at least once.
    • Equivalence partitioning: Many types of inputs work similarly, so rather than give them all separately, we can group them together and test only one of each group's inputs. The aim is to divide the system's input domain into a number of equivalence classes, each of which works in a similar fashion, i.e., if a test case in one class results in an error, other test cases in other classes will also result in an error.

The following table illustrates the DIFFERENCES between white box and black box  testing:

White-box testingBlack box testing 
It's a testing method in which the tester is aware of the system's internal structure.It's a method of testing software that doesn't require knowledge of the program's or application's internal structure.
It is also known as Structural testing, clear box testing, code-based testing, or glass box testing.Data-driven, box testing, data-, and functional testing are all TERMS used to describe this type of testing.
Because the internal workings of the system are known, the tester may test accordingly.The application's internal behaviour is unclear, therefore testing is based on exterior expectations.
Testing is better suited to lower-level testing such as Unit and Integration testing.Higher stages of testing, such as System Testing and Acceptance Testing, benefit from this sort of testing.
White Box testing necessitates a working grasp of programming.Black Box testing does not necessitate programming knowledge.
It's simple to automate white box testing.Because the test and programmer are so intertwined, automating them is difficult.
The fundamental goal of White Box testing is to ensure that the code is of high quality.The major goal of this testing is to determine what functions the system under test has.
After completing the Detail design document, testing can begin.Following the preparation of the requirement specification paper, testing can begin.
To execute white box testing, you'll need an expert tester with a lot of expertise.Low-skilled testers can test the application without having any prior understanding of the programming language or operating system implementation.
4.

Differentiate between functional and non functional testing.

Answer»
  • Functional Testing: Functional testing is a sort of software testing that involves comparing the system to its functional requirements and specifications. Functional testing guarantees that the application meets all of the CRITERIA or standards as specified in the specification requirement sheet. This form of testing is focused on the end product of the processing. It focuses on simulating actual system utilisation but makes no assumptions about system structure.
  • NonFunctional Testing: Non-functional testing is a sort of software testing that verifies the application's non-functional requirements. It determines whether the system's behaviour is in accordance with the requirements. It examines all aspects that aren't covered by functional testing.

The FOLLOWING table lists the differences between functional and non-functional testing:

Functional TestingNon-functional Testing
It verifies an application's activities and actions.It verifies an application’s behaviour.
It is based on the needs of the customer.It is based on the customer's expectations.
It aids in improving the application's functionality.It aids in the enhancement of the application's performance.
Manual functional testing is simple to carry out.Manually performing non-functional testing is difficult.
It evaluates the product's functionality.It EXPLAINS what the product is CAPABLE of.
The basis for functional testing is the business requirement.The performance requirement is the basis for non-functional testing.
Example: Unit Testing, Regression Testing, SMOKE Testing.Example: Load Testing, Stress Testing, Performance Testing.
5.

Differentiate between load testing and stress testing.

Answer»
  • LOAD Testing: Load testing is a type of performance testing that assesses a system's, software product's, or software application's performance under realistic load situations. It also demonstrates how the application would behave when there is increased network traffic on the application and multiple USERS are accessing the application.
  • Stress Testing: Stress testing is a sort of software testing that ensures the system's stability and dependability. Under extremely HEAVY load conditions, this test examines the system's robustness and error handling.

The following table lists the differences between load testing and stress testing:

Load Testing Stress Testing 
Load testing is used to set the application's SLA (Service Level Agreement) and see how the system handles a heavy load to determine the system's upper limit.Stress testing is used to determine the system's or software application's robustness under excessive stress and how it recovers from failure.
The load limit is the point at which a break occurs in load testing.The load limit in stress testing is higher than the break threshold.
Load testing involves putting the software through its paces with a large NUMBER of users.Stress testing involves putting the system through its paces with varying volumes of data.
Load testing is used to determine a system's or application's maximum capacity.Stress testing is used to determine how a system behaves when it is put under pressure.
Performance is the factor that is evaluated during load testing.Robustness and stability are the factors that are examined during stress testing.
Load testing determines a system's or application's operating capacity.System security is ENSURED by stress testing.
6.

How do you figure out how much testing each piece of software requires in the context of Quality Assurance?

Answer»

The Cyclomatic Complexity can be used to determine how much testing each piece of software requires in our application. The technique aids in the identification of the three QUESTIONS listed below for the programs/features.

  • Is it possible to test the FEATURE or programme?
  • Is everyone aware of the feature/program?
  • Is the feature/program trustworthy?

We can use this technique to determine the "level" of testing required for our application. It is standard practice to consider a piece of functionality to be complex if the cyclomatic complexity RESULT is GREATER than or equal to a certain number, and to conclude as a tester that the piece of code/functionality requires in-depth testing. If the Cyclomatic Complexity result is a lesser value, we conclude as QA that the functionality is of lower complexity and adjust the scope accordingly. Understanding the full testing life cycle is critical, and we should be prepared to suggest modifications to our approach if necessary. The GOAL is to deliver high-quality software, so a QA should take all necessary steps to improve the testing process and the manner the testing team conducts the tests.

7.

What do you mean by quality audit in the context of quality assurance?

Answer»

An audit is an on-site verification activity of a processor quality system, such as inspection or examination. An internal or external quality auditor, or an audit team, conducts a systematic analysis of a quality system as part of a quality audit. Quality audits are conducted at predetermined intervals to ensure that the INSTITUTION's internal system monitoring methods are well defined and linked to successful action. Audits are an important MANAGEMENT tool for confirming objective proof of processes.

In other words, a quality audit is a verification effort AIMED at determining the degree of compliance of a PRODUCT, design, process, or system to a standard specification or procedure. The quality audit includes two PARTS: the first is an examination of the system in which the products or services are created, known as the quality system audit. The other is a product or service quality audit, which is an examination of the products themselves.

8.

What do you understand about severity and priority of a defect in the context of quality assurance? Differentiate between them.

Answer»
  • Severity: The severity of a flaw is defined as the degree to which it can affect the software. The severity of a defect is a metric that INDICATES how serious it is and how much it affects the software's functionality.
  • Priority: Priority is a parameter that determines which defects should be addressed in what order. The higher-priority defects should be addressed first.

The following table lists the differences between severity and priority:

SeverityPriority
The severity of a software defect is a measure that indicates how serious it is.Priority is a criterion used to determine which defects should be addressed first.
The degree of severity is proportional to the quality standard.Priority is linked to the timetable for resolving the issue.
The defect's severity level is determined by the testing engineer.The defect priorities are SET by the product manager.
The severity of a fault refers to how much it affects the functionality.Priority refers to how quickly a defect must be fixed.
It has objective worth.It's worth is a matter of opinion.
Its value remains CONSTANT over time.Its value fluctuates over time.
Critical, Major, MODERATE, Minor, and Cosmetic are the five levels of severity.Priority is divided into three categories: low, MEDIUM, and high.
9.

Explain risk in the context of quality assurance. What are the five dimensions of risk?

Answer»

When it comes to software testing, Risks are POTENTIAL issues that COULD JEOPARDISE the project stakeholders' goals. It's the likelihood of a bad or UNFAVOURABLE result. A risk is something that has not yet occurred and may never occur; it is a potential concern. The likelihood of a risk becoming an outcome is proportional to the degree of risk linked with the potential for negative consequences.

Most people, for example, are expected to have a cold at some point in their lives, frequently multiple times. A healthy person, on the other hand, is spared any major effects. As a result, this individual's overall risk of catching a cold is low. On the other hand, for an elderly person with breathing issues, the risk of catching a cold is significant. As a result, the overall chance of catching a cold in his instance is significant.

Following are the five dimensions of risks:

  • Schedule: Unrealistic schedules, the omission of important activities when drafting a schedule, and other factors could stymie project completion on time. If testing is done from a remote place, an unstable communication link can be regarded as a possible danger.
  • Client: Ambiguous requirements description, lack of clarity on issues, frequent changes to requirements, and other factors could lead to chaos throughout project execution.
  • Human Resources: Insufficient resources with the required skill level are not available for the project; Resource attrition - Appropriate training schedules for resources must be designed to balance the knowledge level with resources quitting. Underestimating the training effort could have a negative influence on project completion.
  • System Resources: The inability to obtain or the delay in obtaining all key computer resources, such as hardware and software tools, or software licences, will have a negative impact.
  • QUALITY: A combination of issues such as a shortage of resources, a tight delivery timetable, and frequent changes to requirements will have an impact on the product tested quality.
10.

What do you understand about regression testing? Which test cases should be selected for regression testing?

Answer»

Regression Testing is a sort of software testing used to ensure that a recent program or code modification hasn't broken EXISTING functionality. Regression Testing is just a full or partial re-execution of previously EXECUTED test CASES to confirm that current functionality is working properly. This testing ensures that new code modifications do not have unintended consequences for current functionality. It ensures that the old code continues to function after the most recent code modifications have been made.

According to industry data, a large proportion of DEFECTS reported by customers were caused by last-minute bug patches that had unintended consequences, making selecting the Test Case for regression testing an art and not an easy task. The following test scenarios can be used to create effective regression tests :

  • Test scenarios with a high NUMBER of flaws
  • Test cases covering features that are more visible to the users
  • Test cases that test the product's fundamental features
  • Test cases of functionalities that have experienced significant and recent alterations
  • All Test Cases for Integration
  • All Complex Test Cases
  • Cases of boundary value tests.