0% found this document useful (0 votes)
9 views

sof_test

Uploaded by

dalvitanmay15
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
9 views

sof_test

Uploaded by

dalvitanmay15
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 7

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

You might also like