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

Software Testing

Uploaded by

dehelyqi
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
13 views

Software Testing

Uploaded by

dehelyqi
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 15

Software Testing

Software testing is the process of evaluating and verifying that a


software product or application does what it is supposed to do.
Software Maintenance
Structure Maintenance Unstructure Maintenance
1. Regularly review and update test cases and 1. Emphasize exploratory testing to uncover
suites to reflect changes in the software. defects not covered by predefined test
cases.
2. Maintain a well-structured regression test
suite for efficient regression testing. 2. Prioritize testing efforts based on risk
assessment in unpredictable situations.
3. Update test data to cover new scenarios
and edge cases resulting from structural 3. Adopt an agile and iterative approach,
changes. adjusting testing strategies to changing
requirements.
4. Foster collaboration and communication
between development and testing teams. 4. Facilitate collaboration and
communication among testers,
developers, and stakeholders.
Maintenance Models
Quick-Fix Model Boehm's Model Iterative
Enhancement Model
Main purpose is to identify a Performs maintenance
problem and fix it as quickly based on economic It consiers changes made
as possible. models and principles to the system which are
iterative in nature.

Re-use Oriented Model Taute Maintenance Model


Parts of old/existing systems which are Process of maintenance begins by
appropriate for ureuse are modifies and then requesting the change and ends with its
go through modification and enhancement. operation.
Configuration Management
Process of organizing and controlling software and test artifacts to
ensure consistency, traceability, and reproducibility. It involves
managing configuration items (CIs) such as source code, test cases,
scripts, data, and environments.
Reverse Engineering & Software Re-engineering
Reverse Engineering Software Re-engineering
Process of analyzing and understanding the Process of improving software quality,
design, functionality, and behavior of a maintainability, and scalability to enable
system or software by working backward organizations to modernize and enhance
from the end product to uncover its internal existing systems without a complete
workings. rebuild.

It is a valuable technique for studying and It enabling organizations to leverage the


learning from existing systems, allowing benefits of new technologies and overcome
developers to gain knowledge, inspiration, the limitations of outdated software
and insights that can inform their own design
and development processes.
Software project Management
Project scheduling
Involves sequencing tasks, estimating durations, creating
Gantt charts, optimizing resource allocation, monitoring
progress, and maintaining a schedule baseline

1 2
Project planning
Involves defining objectives, creating a work breakdown
structure, identifying task dependencies, allocating resources,
and assessing risks.
Software metrics
Software metrics are quantitative measures used to assess various aspects
of software development, including size, complexity, quality, and efficiency

Lines of Code Token Count Function Count


Measure of the number of Metric that measures the Function count measures
lines in source code, number of individual tokens the number of functions or
providing a basic measure or keywords in the source subroutines in a code,
of software project size, code, including identifiers, helping to understand its
but should be used with keywords, and operators. It modular structure and
caution as it does not provides a more detailed estimate maintenance
necessarily reflect measure of the code's size efforts.
complexity or quality. and complexity than LOC
Cost Estimation
1 COCOMO Model
COCOMO is a method to estimate the effort, time, and cost involved in software
development. COCOMO takes into account factors such as project size, complexity, team
experience, and the development environment to provide accurate estimates.

2 Risk Management
Risk management involves identifying, assessing, and mitigating potential risks to ensure
project success. This includes evaluating impact, creating mitigation plans, monitoring risks,
implementing responses, and documenting information.

COCOMO and risk management are essential for successful project planning, control, and
delivery.
Cocomo model
Cocomo (Constructive Cost Model) is a regression model based on LOC, used to predict project
parameters such as size, effort, cost, time, and quality.

Organic : Organic software projects require small team size, well-understood problem, and
experience.

Semi-detached : A software project is said to be a Semi-detached type if the vital characteristics


such as team size, experience, and knowledge of the various programming environment lie in
between that of organic and Embedded.

Embedded : A software project requiring the highest level of complexity, creativity, and
experience requirement fall under this category.

Basic COCOMO Model Intermediate COCOMO Model Detailed COCOMO Model


Basic Model –

E= a(KLOC)^b

time= c(Effort)^d
Risk Management
Risk management in software testing involves identifying, analyzing, and mitigating potential risks to
minimize their negative impact. It allows for proactive decision-making, resource allocation, and
contingency planning, ultimately improving the overall effectiveness and success of software testing
projects.

Key points:

Risk Identification: The first step in risk management is to identify potential risks that may arise
during the testing process.

Risk Monitoring and Control: Throughout the testing process, risks should be continuously
monitored to track their status and effectiveness of mitigation strategies.

Documentation: It is important to maintain proper documentation of identified risks, risk analysis,


mitigation strategies, and outcomes.

Regular communication and sharing of risk-related information help ensure everyone is aware of the
identified risks and mitigation actions.
Software Reliability and
Quality Assurance

Reliability issues Reliability metrics Reliability models


Issues in software caused Quantitative measures used Used to predict and analyze
by software bugs, hardware to assess the reliability of a software system reliability,
failures, inadequate testing, software system, such as such as failure-based
design flaws, or MTBF, MTTF, failure rate, and models, fault-tree analysis,
environmental factors. availability. Markov models, and block
diagrams.
Software Quality
Extent to which a software product meets user requirements and expectations. It encompasses
various dimensions, including functionality, reliability, efficiency,usability, maintainability, and security.

Functionality Reliability Efficiency


Software should perform its Software's ability to Optimal utilization of
intended tasks accurately consistently perform system resources, ensuring
and completely. without failures or crashes tasks are executed in a
over a specified period. timely manner with minimal
resource consumption

Usability Maintainability Security


Goal is to make it simple for Ease of modifying, Involves protecting data
users to interact with the enhancing, or fixing the and system resources from
software software. unauthorized access or
manipulation
ISO 9000 certification for
software industry
1 ISO 9000 certification is an 2 It promotes systematic
international standard for processes, continuous
quality management improvement, and
systems used in the adherence to customer
software industry. requirements.

3 Benefits of certification include improved processes, customer


satisfaction, market access, and compliance.
SEI Capability Maturity
Model
The SEI Capability Maturity Model (CMM) is a framework developed by
Software Engineering Institute (SEI) to assess and improve software
development processes. It consists of five levels: Initial, Repeatable,
Defined, Quantitatively Managed, and Optimizing. It has been widely
adopted to enhance software quality and organizational performance.
Thanks For Your Attention !
If you have any questions, please do not hesitate to ask

You might also like