sof_test
sof_test
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
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