1
Error, Fault and Failure->Errors: An error is a human mistake made during the
development process//Failt: A fault is a flaw or defect in the software code or system that
results from an error//Failure: A failure occurs when the system or software does not function
as expected due to an existing fault||software testing->Software Testing is the process of
evaluating a software application to identify and fix defects, ensure it meets requirements,
and verify its quality and performance||structural testing->Structural testing is a software
testing technique that examines the internal structure, logic, and code of a software
application//It ensures that different paths, conditions, and branches within the code function
correctly|calculating cyclomatic complexity->Formula to Calculate Cyclomatic Complexity:
CC = E - N + 2P//,Where: E = Number of edges//N = Number of nodes//P = Number of
connected||verification testing->Verification testing is a software testing process that
ensures a product is being developed correctly at each stage of the Software Development
Life Cycle//It focuses on whether the software meets the specified requirements, design, and
standards before actual execution||types of Acceptance testing->Acceptance testing is a
type of software testing performed to determine whether a system meets business
requirements and is ready for deployment||software metrics->Software metrics are
quantitative measures used to assess the quality, performance, and efficiency of software
development and maintenance||user documentation testing->User Documentation Testing
is a type of software testing that verifies the accuracy, clarity, and usability of the
documentation provided to end users||term SQA->Software Quality Assurance (SQA) is a
systematic process that ensures software meets defined quality standards throughout its
development lifecycle||test case design->Test Case Design is the process of creating
detailed test cases to validate a software application's functionality, performance, security,
and usability||Static testing->Static Testing is a software testing technique that examines
code, documentation, and design without executing the program||advantages of manual
testing->No need for expensive automation tools//Can quickly adapt to changes in
requirements//Identifies user experience (UX) flaws better than automated tests//Testers can
explore different workflows without predefined scripts||Gray-box testing->Gray-box testing
is a software testing technique that combines elements of black-box and white-box
testing//Testers have partial knowledge of the internal structure of the application while still
focusing on its functional behavior||validation Testing->Validation Testing is a type of
software testing that ensures the final product meets user requirements and expectations||
Debugging->Debugging is the process of identifying, analyzing, and fixing defects or errors
in software code//It is performed by developers to ensure the program runs correctly and
meets requirements||regression testing->Regression Testing is a type of software testing
that ensures new code changes do not negatively impact existing functionalities\\It verifies
that previously working features still function correctly after updates, bug fixes, or
enhancements||performance testing->Performance Testing is a type of software testing
that evaluates a system's speed, stability, scalability, and responsiveness under different
conditions||sandwich approach of integration testing->The Sandwich Approach also
known as Hybrid Integration Testing is a combination of Top-Down and Bottom-Up
Integration Testing//It integrates high-level modules and low-level modules simultaneously||
sandwich approach->The Sandwich Approach (also called the Hybrid Approach) is a
combination of two opposite strategies—Top-Down and Bottom-Up—used in different fields
like software testing, management, and teaching||
2
What is debugging? its phases->Debugging is the process of identifying, analyzing, and
fixing errors (bugs) in software code//It ensures that the program runs correctly and meets
functional requirements. Debugging is performed after testing detects a defect//Phases:
1.Identifying the Problem: Analyze the error messages, logs, or test failures//Reproduce the
bug using the same input conditions//2.Analyzing the Root Cause: Examine the affected
code and trace the flow of execution//3.Fixing the Bug: Modify the code to eliminate the root
cause//4.Testing the Fix: Re-run test cases to confirm the bug is resolved//5.Documenting
the Debugging Process: Record the problem, root cause, and solution for future
reference//Share insights with the development team to prevent similar issues||verification
and validation->Verification and validation (V&V) are essential processes in software
engineering to ensure that a system meets the specified requirements and fulfills its intended
purpose//Verification: Verification is the process of evaluating a system or component to
determine whether it meets the specified requirements//Characteristics: Ensures that the
product is being developed according to specifications//Focuses on processes like design,
coding, and documentation//Validation: Validation is the process of evaluating a system or
component to determine whether it meets user needs and expectations//Characteristics:
Ensures that the final product meets the intended use//Detects issues that affect user
satisfaction\\Involves executing the software||Black - Box testing?its techniques->
Black-box testing is a software testing technique where the tester evaluates the functionality
of a system without knowing its internal code, structure//Detects functional errors, UI issues,
performance problems, and security vulnerabilities//Techniques: 1.Equivalence Partitioning:
Divides input data into partitions where all values in a partition should behave similarly//One
value from each partition is tested//2.Boundary Value Analysis: Tests boundary values since
errors often occur at input limits//3.Decision Table Testing: Uses a table to define different
input conditions and expected outputs//4.State Transition Testing: Tests how the system
behaves when transitioning from one state to another||differ betw static testing and
Dynamic testing->Definiti on: ST: Examines software artifact s (like code, design, and
document ation) without executin g the program//DT: Involves running the software to check
its behavior and function ality//Purpose: ST: Detects defects early, such as syntax errors and
logic issues//DT: Ensures that the software works correctly by executin git//Execution: ST:
Done without running the code//DT: Requires executin g the code//Performe d By: ST:
Developers, business analysts//DT: Testers and end-users||GUI testing in details->GUI
Testing is a type of software testing that evaluates the graphical user interface of an
application//It ensures that all visual elements like buttons, menus, icons, and text fields
function correctly and provide a smooth user experience//GUI testing verifies aspects such
as: Proper alignment and positioning of UI elements//Functionality of buttons, menus, and
input fields//Usability and user experience//Error handling and validation messages//GUI
testing is essential to ensure a seamless and error-free user experience//Using a mix of
manual and automated techniques, along with the right tools, helps deliver high-quality
applications|Boundary-Value analysis in details->Boundary Value Analysis is a black-box
testing technique used to identify defects at the boundaries of input ranges//It is based on
the principle that: Errors are more likely to occur at input boundaries rather than within the
range//Testing these boundaries can uncover defects efficiently//Advantages: Detects
boundary-related defects efficiently//Reduces the number of test cases needed//Applicable
to numeric, date, and character-based inputs//Helps validate system behavior at critical
points||
3
Explain Acceptance testing in details->Acceptance testing is a type of software testing
performed to determine whether a system meets the business requirements and is ready for
deployment//Validate that the software meets business and functional requirements//Ensure
the product is ready for production and meets customer expectations//Identify any usability
or operational issues before release//Verify system compatibility with real-world
scenarios//Benefits: Ensures software meets user expectations and business needs//
Reduces post-deployment defects and costly fixes//Enhances customer satisfaction by
delivering a reliable product//Validates system stability, usability, and compliance||Test Case
Design along with example->Test case design is the process of creating test cases that
verify whether a software application functions as expected//A test case is a set of
conditions, steps, and expected results that determine whether a feature or functionality is
working correctly//Ensure all functionalities are tested//Identify defects before
deployment//Provide a structured way to validate software behavior//Improve test coverage
and efficiency//Example: if (x > 0)://print("Positive")//else://print("Negative or Zero")||
Explain V-V Model of testing in detail->The V-V Model is a software development and
testing approach that follows a sequential path similar to the Waterfall Model but with an
emphasis on testing at each stage//The V-Model consists of two main branches:
Verification//Validation//Advantages: Testing starts at the beginning, reducing risks//Each
development phase has a corresponding testing phase//Ensures software meets business
and user needs//Follows a systematic process, reducing confusion//When to Use:
Well-defined and stable requirements//Projects with minimal expected changes//Government
and regulatory-compliant projects||Explain load and Smoke testing in detail->performance
testing that evaluates how a system behaves under expected and peak user loads//The goal
is to ensure the application can handle concurrent users, transactions, and data requests
without performance degradation//Identify system performance bottlenecks//Determine
maximum operating capacity of the system//Ensure the application meets expected
performance standards//Smoke Testing: Smoke Testing is a basic initial test performed to
check whether the critical functionalities of the software are working after a new build or
deployment//Ensure that the main features of the application work//Detect showstopper bugs
early before detailed testing//Detect showstopper bugs early before detailed testing//Validate
if the software build is stable for further testing||any four testing principles in detail->
1. Testing Shows the Presence of Defects, Not Their Absence: No matter how many tests
are conducted, complete defect-free software cannot be guaranteed//A successful test
reveals a defect, but an unsuccessful test does not prove the absence of
defects//2.Exhaustive Testing is Impossible: For even a simple software application, the
number of test cases can be infinite//Instead of exhaustive testing, testers use risk-based
testing and prioritization techniques//3.Early Testing Saves Time and Costs: The earlier a
defect is found, the cheaper and easier it is to fix//4.Defects Cluster Together: This follows
the 80/20 rule//Testers focus more on high-risk areas where defects are more
likely||Differentiate between alpha and beta testing->Definiti on: 1.a: Internal testing
conducte d by develope rs and testers before product release//b: External testing conducte d
by real users in a real environm ent//2.Who Performs It?: a: In-house testers within the
organiza tion//b: Actual users or selected customer S outside the organiza tion//3.Environm
ent: a: Done in a controll ed lab environment//b: Done in a real-wor ld
environment//4.Purpose: a: Identifies major defects and usabilit y issues before external//b:
Collects user feedback and finds real-wor ld issues||
4
differ betw client/server testing and web - based testing->1.CT: This type of testing is
performed on applications that follow a two-tier architecture//WT: Web-based testing is
performed on applications that follow a three-tier architecture//2.CT: A backend system that
manages requests and processes data//WT: Processes user requests//Installation: CT:
Required on client machine//WT: No installa tion required//Compatib ility Testing: CT: Not
required//WT: Essentia||five different level of capability maturity model->1.Initial (Level 1
- Chaotic Stage): Success depends on individual effort rather than structured
methodologies//There are no formal process guidelines, leading to inconsistent
results//2.Repeatable (Level 2 - Managed Stage): Teams start following defined procedures
for project planning and execution//3.Defined (Level 3 - Standardized Stage):
Standardization ensures all teams use a common methodology for software
development//4.Managed (Level 4 - Quantitatively Controlled Stage): Data-driven decisions
improve product quality and process efficiency||Top - Down and Bottom - UP integration
testing in details->Top-down integration testing starts from the highest-level modules and
progressively integrates and tests the lower-level modules//Example: Consider a banking
application where: //The main module is the user dashboard//Submodules include account
management, transactions, and loan processing//These submodules further interact with
database and external APIs//Bottom-Up Integration Testing: Bottom-up integration testing
starts from the lowest-level modules and gradually integrates and tests the higher-level
modules//Example: Consider a shopping website with: Payment Gateway\\Order Processing
System// Shopping Cart & User Interface||term unit testing->Unit testing is a software
testing technique where individual components of a program are tested in isolation to verify
their correctness//A unit is the smallest testable part of an application, such as a function,
method, or class//Ensures that each unit works correctly before integrating it with other
components//Helps identify bugs early, reducing debugging costs//Improves code reliability
and maintainability//Tests one function, method, or module at a time//Advantages: Early bug
detection, reducing debugging costs//Improves code quality by ensuring correct
functionality//Enhances code reusability by isolating units for testing||white box testing and
its techniques->White box testing is a software testing technique where the internal logic,
structure, and code of an application are tested//The tester has full knowledge of the source
code and focuses on verifying how the software processes data and executes
functions//Techniques: Statement Coverage: Ensures that every line of code in a program is
executed at least once during testing//Helps identify unused or unreachable code//Branch
Coverage: Ensures that every possible decision (branch) in the program executes at least
once//Helps find missing conditions in decision-making//Path Coverage: Ensures all possible
execution paths in a program are tested at least once//Condition Coverage: Tests all
possible Boolean conditions in a decision statement//Loop Testing: Tests the functionality of
loops under different conditions||Sandwich and Big-Bang approach of Integration
testing->Sandwich: The Sandwich approach combines elements of both Top-Down and
Bottom-Up Integration Testing//It tests higher-level modules and lower-level modules
simultaneously, meeting at a middle layer//High-level modules are tested using
stubs\\Testing progresses from both directions until all components are integrated//Big-Bang
Integration Testing: The Big-Bang approach involves integrating all modules at once and
testing the complete system in one go after all components are developed//Developers
complete all individual modules before integration//The entire system is integrated at
once//Saves time on test preparation, as all modules are tested together||
5
Load testing and stress testing in details->Load Testing: Load Testing evaluates how a
system performs under normal and peak load conditions//It checks how well the application
handles expected user traffic, transaction volume, or data processing without performance
degradation//Determine system response time, scalability, and stability//Ensure hardware
and software resources are sufficient for expected workloads//Stress Testing: Stress Testing
evaluates how a system behaves under extreme conditions, pushing it beyond normal
operational limits until it crashes//It helps determine the breaking point, system recovery
ability, and failure handling//Find system weak points under high load conditions//Identify
memory leaks, hardware limits, and crash points||diff e bet Quality Assurance (QA) and
Quality control (QC).->Definiti on: QA: QA is a process-oriented approach that focuses on
preventi ng defects in software developm ent//QC: QC is a product-oriented approach that
focuses on detectin g defects in the final product//Objectiv e: QA: Ensures processe s and
standard s are followed to achieve quality//QC: Identifi es and fixes bugs or issues in the
develope d software//Focus: QA: Preventi on aims to prevent defects before they occur//QC:
Detectio n finds and corrects defects in the final product//Involves: QA: Process planning
audits, training وand document ation review//QC: Software testing, bug tracking and defect
analysis||Explain test case design for login process->A test case for the login process
verifies whether users can successfully log in with valid credentials and whether the system
handles invalid attempts correctly//Test Case Components: Test Case ID: Unique identifier
for tracking//Test Scenario: The specific function being tested//Preconditions: Necessary
conditions before execution//Test Steps: Actions to perform//Test Data: Input
values//Expected Result: The expected system behavior//Status (Pass/Fail): Whether the
test case was successful||Stub and Driver concept in Unit testing->Stub: A Stub is a
dummy module that simulates the behavior of a missing called function//It is used in
Top-Down Integration Testing, where higher-level modules are tested first, and lower-level
modules are replaced by stubs//stub provides hardcoded or simulated responses to the
module being tested//Driver: A Driver is a dummy module that simulates the behavior of a
missing calling function//It is used in Bottom-Up Integration Testing, where lower-level
modules are tested first, and higher-level modules are replaced by drivers//A driver sends
test inputs to the module being tested and displays the output||Calculate the cyclometric
complexity of a code which accepts 3 integer values and print the highest and lowest
value->To calculate the cyclomatic complexity, you can use the formula: M = E - N +
2P//Example: def find_highest_lowest(a, b, c)://if a >= b and a >= c://highest = a//elif b >= a
and b >= c://highest = b//else://highest = c//if a <= b and a <= c://lowest = a//elif b <= a and b
<= c://lowest = b//else:// lowest = c//print("Highest:", highest)//print("Lowest:",
lowest)\\\\cyclomatic complexity: Total decision points = 4//Cyclomatic Complexity = Number
of decision points + 1 = 4 + 1 = 5||Explain test case design for the login process->Login
with valid username and password: User is successfully logged in and redirected to
homepage//Login with incorrect username or password: Display "Invalid username or
password"//Account lock after multiple failed attempts: After multiple failed attempts, the
account should be locked or show a CAPTCHA||Explain Capability Maturity Model (CMM)
in detail->Purpose: Improve the quality and efficiency of software development//Help assess
current capabilities and guide improvement efforts//Benefits; Improved product
quality//Reduced costs due to fewer defects//Increased customer satisfaction//Standardized
processes across teams//Limitations: Time-consuming and costly to implement//Requires
cultural change in the organization//May not be suitable for small/startup teams without
customization||
6
Load Runner: It is used to test applications by simulating multiple users accessing the
system simultaneously to evaluate how it performs under load//Simulates thousands of
virtual users to test system behavior under heavy loads//Supports a wide range of
protocols//Includes Virtual User Generator (VuGen), Controller, and Analysis tools//Captures
response time, throughput, hits/sec, etc//Integrates with system monitors to track server and
application performance//Identify performance bottlenecks//Validate scalability and reliability||
Testing for Real - Time system: Testing for Real-Time Systems involves validating systems
that must respond to inputs or events within a strict time constraint//Responses must occur
within specified time limits//Predictable behavior is crucia//Multiple processes may run
simultaneously//Often used in mission-critical applications//Verifies that the system performs
the required tasks correctly//Ensures tasks meet timing deadlines//System is tested under
high load to ensure performance remains within limits//Verifies that the system handles
hardware/software interrupts correctly and timely||Goal - Question - Metric Model (GQM):
The Goal-Question-Metric (GQM) Model is a structured approach used to define and
interpret software measurement//It ensures that metrics are aligned with business and
project goals//Purpose: To measure and evaluate the performance, quality, or improvement
of software processes or products based on specific goals//Benefits: Ensures measurements
are goal-driven//Promotes focus and relevance in metrics collection//Helps in aligning
technical efforts with business goals||Rational Robot: It is used for testing client-server and
web-based applications//Supports GUI testing and data-driven testing//Uses a scripting
language//Integrated with Rational TestManager for test planning and reporting//Can test
applications built in Java, HTML, .NET, ERP, and others//Automates repetitive test
cases//Validates application functionality across different environments//Performs regression
testing after code changes//Limitations: Older technology, less commonly used now//Limited
support for modern web apps and frameworks||System testing: System Testing is a type of
software testing where a complete and integrated software system is tested to ensure that it
meets the specified requirements//It is the final level of testing before the software is
released//The main goal is to evaluate the system’s compliance with the functional and
non-functional requirements//Includes performance, usability, security, and compatibility
testing//It helps identify defects that may not be caught in earlier testing stages||Statement
coverage criteria of White-Box testing: Statement Coverage is a white-box testing
criterion that ensures every executable statement in the code is executed at least once
during testing//at least once during testing. It helps verify that all lines of code have been
tested, reducing the chances of missing bugs in unexecuted parts//Measures the percentage
of code statements executed//Helps identify unused or dead code//Does not guarantee
detection of all logical errors//It is a basic but essential step in white-box testing||
7
Explain Software testing life cycle with diagram->
Phases: 1.Requirement Analysis: Understand and analyze testing requirements//2.Test
Planning: Define scope, objectives, and approach///3.Test Case Design: Create detailed test
cases and test scripts//4.Test Environment Setup: Set up software and hardware
conditions//5.Test Execution: Execute test cases//6.Test Closure: Evaluate test completion
criteria||