Introduction
Introduction
ASSURANCE AND
TESTING
Senedu G/mariam
ORIGINS OF SOFTWARE DEFECTS
Code
Other 7%
10% Design
28%
55%
Requirements
Software
Quality Assurance
Testing
• Transparency is very important.
• Be honest with your agents.
• They’ll respect that a lot more than a spin.
WHAT IS SOFTWARE QUALITY?
• Simplistically, quality is an attribute of software that implies the software
meets its specification
• This definition is too simple for ensuring quality in software systems
• Software specifications are often incomplete or ambiguous
• Some quality attributes are difficult to specify
• Tension exists between some quality attributes, e.g. efficiency vs.
reliability
• Software requirements are the foundation from which quality is measured.
• Lack of conformance to requirements is lack of quality.
CONT.…
• Modularity
• Safety • Complexity
• Security • Portability (compatible with different OS
• Reliability • Usability(Both Expert/beginner)
• Resilience(Flexibility) • Reusability(easily can be used for new one
• Robustness • Efficiency
• Understandability • Learnability
• Testability • Accuracy (of result)
• Correctness(According SRS)
• Maintainability (New Function easily added)
AN EFFECTIVE QUALITY PROCESS MUST
FOCUS ON:
• Paying much attention to customer’s requirements
• Making efforts to continuously improve quality
• Integrating measurement processes with product design and
development
• Pushing the quality concept down to the lowest level of the organization
• Developing a system-level perspective with an emphasis on
methodology and process
• Eliminating waste through continuous improvement
DIFFERENT QUALITY SCENARIOS
• Online banking system
• Security
• Correctness
• Reliability
• Air Traffic Control System
• Robustness
• Real Time Responses
• Educational Game for Children
• User-friendliness
INTRODUCTION SOFTWARE QUALITY ASSURANCE
• Testing Software
• A series of test case design methods that help ensure effective error detection
• Enforcing standards
CONT.….
• Controlling change: Applied during software development and
maintenance
• Measurement
• Track software quality and asses the ability of methodological and
procedural changes to improve software quality
• Record keeping and reporting
• Provide procedures for the collection and distribution of SQA
information
ADVANTAGES OF SQA
• Software will have fewer latent defects, resulting in reduced effort and time
spent during testing and maintenance
• Higher reliability will result in greater customer satisfaction
• Maintenance costs can be reduced
• Reduce Cost : Overall life cycle cost of software is reduced
• Testers used to be relied upon to test everything, but as the whole software
delivery life cycle has evolved, code-specific tests (unit tests, which test
individual units of computer code, and integration tests, which test multiple
modules of code) have been taken on by the software developer and the
software tester has been allowed to focus on adding value into the process
with:
• Functional Testing - testing the function of a system, or part of an overall
system, to ensure that the specification is met, usually based on acceptance
criteria.
• Integration Testing - testing a number of software modules in an integrated
fashion as a group.
• User Experience Testing - testing the main graphical user interface between
the software system under development and the end user.
CONT.….
Subset of inputs
causing erroneous
Input Set
Input Set outputs
Software
Software
Output Set
Output Set
Erroneous
outputs
SOFTWARE FAULTS AND FAILURES
• A failure corresponds to erroneous/unexpected runtime behavior observed
by a user.
• A fault is a static software characteristic that can cause a failure to occur.
• The presence of a fault doesn’t necessarily imply the occurrence of a
failure.
Input Set
Erroneous
User A Inputs
Inputs
User B User C
Inputs Inputs
RELIABILITY IMPROVEMENTS
• Software reliability improves when faults which are present in the most
frequently used portions of the software are removed.
• A removal of X% of faults doesn’t necessarily mean an X% improvement in
reliability.
• In a study by Mills et al. in 1987 removing 60% of faults resulted in a 3%
improvement in reliability.
• Removing faults with the most serious consequences is the primary objective.
ERRORS, FAULTS AND FAILURES
• Error – a human action that produces an incorrect result
• Fault/defect/bug – an incorrect step, process or data definition in a
computer program, specification, documentation, etc.
• Failure – The deviation of the product from its expected behaviour.
• This is a manifestation(indicator) of one or more faults.
COMMON ERROR CATEGORIES
• Boundary-Related
• Calculation/Algorithmic
• Control flow
• Errors in handling/interpreting data
• User Interface
• Exception handling errors
• Version control errors
WHY DOES SOFTWARE CONTAIN FAULTS?
• We make mistakes:
• Unclear requirements
• Wrong assumptions
• Design errors
• Implementation errors