Module 5(Chapter 2) Testing
Module 5(Chapter 2) Testing
❑Functionality:
Example: Online Banking Application Scenario: A user logs into their online banking
account to transfer money to another account. Quality Aspect: The application must
correctly authenticate the user, display the correct account balance, and successfully
process the money transfer without errors.
❑Reliability:
Example: E-commerce Website Scenario: During a major sale event, the website
experiences a high volume of traffic. Quality Aspect: Despite the heavy load, the
website remains operational and processes transactions accurately without downtime
or crashes.
• Usability:
• Example: Mobile Fitness App Scenario: A user wants to track their workout progress
and log new activities. Quality Aspect: The app has an intuitive interface, making it
easy for the user to navigate through different sections, log their workout details,
and view their progress without requiring extensive instructions.
• Efficiency:
• Example: Video Streaming Service Scenario: A user
streams a high-definition video on their device. Quality
Aspect: The service streams the video smoothly with
minimal buffering, efficiently utilizing bandwidth and
resources to provide a high-quality viewing experience
THE PLACE OF SOFTWARE QUALITY IN PROJECT
PLANNING
• Software quality can be defined as the degree to which software meets specified
requirements, fulfills user needs, and achieves intended purposes. It encompasses
various attributes and characteristics that determine how well the software
performs, how easy it is to use, how reliably it operates, and how easily it can be
maintained and adapted. Here are some key attributes of software quality:
1. Functionality:
• Definition: The capability of the software to provide functions that meet stated
and implied needs when used under specified conditions.
• Attributes: Suitability, accuracy, interoperability, security.
2. Reliability:
• Definition: The ability of the software to perform its required functions under
stated conditions for a specified period.
• Attributes: Maturity, fault tolerance, recoverability.
Usability:
• Definition: The extent to which the software can be used by specified
users to achieve specified goals with effectiveness, efficiency, and
satisfaction in a specified context of use.
• Attributes: Understandability, learnability, operability, user error
protection, accessibility.
4. Efficiency:
• Definition: The ability of the software to provide appropriate performance
relative to the amount of resources used under stated conditions.
• Attributes: Time behavior, resource utilization, capacity.
5. Maintainability:
• Definition: The ease with which the software can be modified to correct
faults, improve performance, or adapt to a changed environment.
• Attributes: Analyzability, changeability, stability, testability.
6. Portability:
Definition: The ability of the software to be transferred from one
environment to another.
Attributes: Adaptability, installability, co-existence, replaceability.
7. Security:
• Definition: The ability of the software to protect information and data
so that unauthorized persons or systems cannot read or modify them
and authorized persons or systems are not denied access.
• Attributes: Confidentiality, integrity, non-repudiation, accountability,
authenticity.
8. Compatibility:
• Definition: The capability of the software to interact with one or more
specified systems.
• Attributes: Co-existence, interoperability.
SOFTWARE QUALITY MODELS
• Cmmi integration has now grown over to 500 pages and here we can see
through a real time example.
• UVW is a company that builds machine tool equipment containing
sophisticated control software.
• This equipment also produces log files of fault and other performance data
in electronic format.
• Here UWV produces software that reads these log files and produces
analysis reports and execute queries.
• Both the control and analysis software is maintained by software
engineering department.
• A Project for a new control system is controlled by project
engineering with overall responsibility for managing both
TECHNIQUES TO ENHANCE SOFTWARE
QUALITY
• Increased visibility: The main focus of software quality was Gerald Weinberg's
egoless programming concept. Here it was a simple practice of programmers
looking at each others code.
• Procedural structure; Before programmers were allowed to write and there
was methodologies where every process in software development life cycle has
laid down steps.
• Checking intermediate stages: These stages, known as maturity levels, serve
as benchmarks for measuring the effectiveness and maturity of an organization's
processes.
INSPECTIONS