Software - Computer programs, 6.
Iterative model
procedures, and possibly associated 7. Spiral model
documentation and data pertaining to the 8. Prototype model
operation of a computer system.
Software Engineering - The application Waterfall Model - a breakdown of project
(study of approaches) of a systematic, activities into linear sequential phases,
disciplined, quantifiable approach to the where each phase depends on the
development, operation and deliverables of the previous one and
maintenance of software; that is, the corresponds to a specialization of tasks.
application of engineering to software. Each of these phases produces one or
Software Process Models - Provides more documents that need to be
systematic approach to guide the approved before the next phase begins.
software development lifecycle, ensuring
the successful completion of projects.
Frameworks that define the sequence of
activities, tasks, and deliverables
required to develop high quality software.
Key Components of Software Process
Models and Software Development
Lifecycle Models
1. Requirements gathering and
analysis Agile software development approach
2. Design and Architecture is typically operated in rapid and small
3. Coding and Implementation cycles. This results in more frequent
4. Testing and Quality Assurance incremental releases with each release
5. Deployment and Maintenance building on previous functionality. Agile
is an umbrella term for a set of methods
and practices based on the values and
Types of Software Process Models principles expressed in the Agile
Manifesto that is a way of thinking that
1. Waterfall model enables teams and businesses to
2. Agile innovate, quickly respond to changing
3. V model demand, while mitigating risk.
4. Incremental model
5. RAD model Iterative development, where
requirements and solutions
evolve through collaboration between
self-organizing crossfunctional teams.
Other Software Process Models
- Conformance to explicitly stated
functional and performance
requirements, explicitly
documented development
standards, and implicit
characteristics that are expected
of all professionally developed
software.
The uniqueness of the software
development process:
- High complexity, as compared to
other industrial products
A cooperation and coordination scheme - Invisibility of the product
for a software development team of a - Opportunities to detect defects
largescale project. (“bugs”) are limited to the product
development phase
Factors in choosing which process
model to follow Main characteristics of SQA
environment
1. Project Requirements
2. Project Size 1. Being contracted
3. Project Complexity 2. Subjection to customer–supplier
4. Cost of Delay relationship
5. Customer Involvement 3. Requirement for teamwork
6. Familiarity with Technology 4. Need for cooperation and
7. Project Resources coordination with other
development teams
5. Need for interfaces with other
Software Quality software systems
6. Need to continue carrying out a
- The degree to which a system, project while the team changes
component, or process meets 7. Need to continue maintaining the
specified requirements. software system for years
- The degree to which a system,
component, or process meets
customer or user needs or
Software Quality Assurance
expectations.
- A planned and systematic pattern Software Development
of all actions necessary to provide (product-oriented):
adequate confidence that an item
or product conforms to 1. Assuring with an acceptable
established technical level of confidence that the
requirements. software maintenance
- A set of activities designed to activities will conform to the
evaluate the process by which the functional technical
products are developed or requirements.
manufactured. Contrast with 2. Assuring with an acceptable
quality control. level of confidence that the
software maintenance
activities will conform to
Objectives of SQA Activities managerial scheduling and
budgetary requirements.
Software Development 3. Initiating and managing
(process-oriented): activities to improve and
1. Assuring an acceptable level increase the efficiency of
of confidence that the software software maintenance and
will conform to functional SQA activities. This involves
technical requirements. improving the prospects of
2. Assuring an acceptable level achieving functional and
of confidence that the software managerial requirements while
will conform to managerial reducing costs.
scheduling and budgetary
requirements. Test Cases - a set of conditions or
3. Initiating and managing of variables under which a tester will
activities for the improvement determine whether an application,
and greater efficiency of software system or one of its features is
software development and working as it should.
SQA activities. This means
improving the prospects that - Positive Test Cases: Also known
the functional and managerial as “Happy Path Testing”. These
requirements will be achieved are ones in which the system
while reducing the costs of being tested is expected to work
carrying out the software correctly. These tests are
development and SQA designed to show that the system
activities. can handle valid input and
produce the expected output.
- Negative test cases: Also known
as “Error Path Testing” or
- “Failure Testing”. These are Goal is to have 100% Passed – all
those in which the system being Positive and Negative Test Cases
tested is expected to fail. These Passed.
tests help ensure that the system
can handle invalid input gracefully
and produce error messages or Software testing (or “testing”) was the
other appropriate outputs when first software quality assurance tool
necessary. applied to control the software product’s
quality before its shipment or installation
at the customer’s premises.
Best Practices for Positive and
Negative Testing Software testing is the process of finding
errors in a product, whether it be a
- Build a Comprehensive Test mobile or web application. Errors include
Plan: Develop a detailed plan bugs in the code, missing requirements,
covering positive and negative glitches, and more.
test scenarios.
- Continuous Improvement: Software testing is a formal process
Gather the feedback from testing carried out by a specialized testing
and imbibe that into the team in which a software unit, several
development cycle. integrated software units or an entire
- Team Collaboration: A team that software package are examined by
works together goes farther. running the programs on a computer.
Communication and collaboration All the associated tests are performed
between developers, testers, and according to approved test procedures
other stakeholders are essential. on approved test cases.
- Updated and Maintained Tests: Software Testing is (1) the process of
Keep the test scripts updated to operating a system or component under
reflect changes in the specified conditions, observing or
application(UI, functional recording the results, and making an
changes) and user requirements. evaluation of some aspect of the system
or component. (2) The process of
analyzing a software item to detect the
Samples differences between existing and
required conditions (that is, bugs) and to
evaluate the features of the software
item.
2 Basic Testing Strategies
1. Big Bang Testing - To test the 1. Black Box Testing – (1) Testing
software in its entirety, once the that ignores the internal
completed package is available. mechanism of a system or
2. To test the software piecemeal, in component and focuses solely on
modules, as they are completed the outputs generated in response
(unit tests); then to test groups of to selected inputs and execution
tested modules integrated with conditions.
newly completed modules (2) Testing conducted to evaluate
(integration tests). This process the compliance of a system or
continues until all the package component with specified
modules have been tested. Once functional requirements.
this phase is completed, the entire
package is tested as a whole 2. White Box Testing - Testing that
(system test). This testing strategy takes into account the internal
is usually termed “incremental mechanism of a system or
testing”. component.
Other Types of Testing
1. Performance Testing is a type of
software testing that ensures
software applications perform
properly under their expected
workload. It is a testing technique
carried out to determine system
performance in terms of
sensitivity, reactivity, and stability
Software Testing Classifications (from under a particular workload.
IEEE definition)
2. Compatibility Testing is code and the parts that might get
performed on an application to affected due to the modifications
check its compatibility (running ensures that no new errors have
capability) on different been introduced in the software
platforms/environments. This after the modifications have been
testing is done only when the made.
application becomes stable. 9. Acceptance Testing is done by
3. Load testing determines the the customers to check whether
behavior of the application when the delivered products perform the
multiple users use it at the same desired tasks or not, as stated in
time. the requirements.
4. Stress Testing gives unfavorable 10. Adhoc testing is a type of
conditions to the system and software testing that is performed
check how it perform in those informally and randomly after the
conditions. formal testing is completed to find
5. Scalability Testing is defined as any loophole in the system.
the ability of a network, system, 11. Security Testing is a type of
application, product or a process Software Testing that uncovers
to perform the function correctly vulnerabilities in the system and
when changes are made in the determines that the data and
size or volume of the system to resources of the system are
meet a growing need. protected from possible intruders.
6. Stability Testing is a type of
Software Testing to checks the
quality and behavior of the Quality Management Standards
software under different
environmental parameters. It is - Software Quality Standards and
defined as the ability of the Methodologies focus on the
product to continue to function software quality assurance
over time without failure. system – its organization,
7. Smoke Testing is done to make infrastructure and requirements.
sure that the software under o Leave the choice of the
testing is ready or stable for methods and tools to be
further testing It is called a smoke used in the hands of the
test as the testing of an initial pass organization.
is done to check if it did not catch - These standards focus on the
fire or smoke in the initial switch- “what” of SQA and not its “how”.
on. - Compliance to these quality
8. Regression Testing is a process management standards supports
of testing the modified parts of the the organization’s steady efforts to
assure an acceptable quality level 1. Customer focus. Organizations
for its software products. depend on their customers and
therefore should understand
current and future customer
International Organization for needs.
Standardization (from ISO.org) 2. Leadership. Leaders establish
the organization’s vision. They
- ISO is an independent, non- should create and maintain an
governmental international internal environment in which
organization. people can become fully involved
- The Organization brings global in achieving the organization’s
experts together to agree on the objectives via the designated
best ways of doing things. route.
- From quality management to 3. Involvement of people. People
artificial intelligence, the are the essence of an
Organization’s mission is to make organization; their full
lives easier, safer and better – for involvement, at all levels of the
everyone, everywhere. organization, enables their
abilities to be applied for the
organization’s benefit.
ISO 9000-3 quality management 4. Process approach. A desired
system result is achieved more efficiently
when activities and resources are
- ISO 9000-3 is a quality standard managed as a process.
for the development, supply, 5. System approach to
installation and maintenance of management. Identifying,
computer software and related understanding and managing
support services. processes, if viewed as a system,
- It provides guidance for contributes to the organization’s
organizations in the application of effectiveness and efficiency.
ISO 9001:2000, which is a 6. Continual improvement.
general quality management Ongoing improvement of overall
standard. performance should be high on
- ISO 9000-3 helps to detect and the organization’s agenda.
correct problems of software 7. Factual approach to decision
products and improve their making. Effective decisions are
quality. based on the analysis of
information.
ISO 9000-3 Guiding Principles
8. Mutually supportive supplier
relationships. An organization
and its suppliers are meet policy and better understand
interdependent; a mutually data regarding energy use.
supportive relationship enhances
the ability of both to create added
value. Other Industry Standards:
1. ISO 4217 – Currency Codes
Other ISO Standards 2. ISO 22000 – Food and Safety
1. ISO 9000 Quality Management Management
System Standards: Helps 3. ISO 13485 – Medical Devices
organizations ensure they meet 4. ISO 26000 – Social Responsibility
customer and stakeholder needs 5. ISO 9660 – ISO Images for
within statutory and regulatory computer files
requirements. 6. ISO 50001 – Energy Management
2. ISO 14000 Environmental 7. ISO 20121 – Sustainable Events
Management System
Standards: Helps organizations
minimize how their operations The Capability Maturity Model (CMM)
negatively affect the environment
- Developed by Carnegie Mellon
by complying with applicable laws,
University’s Software
regulations, and other
Engineering Institute (SEI) in
environmentally oriented
1986 - it released the first brief
requirements.
description of the maturity process
3. ISO 22000 Food Safety
framework.
Management System
- The initial version of the CMM was
Standards: An international
released in 1992, mainly for
standard that provides safe
receipt of feedback from the
products in the food supply chain
software community. The first
industry by controlling food safety
version for public use was
hazards.
released in 1993.
4. ISO 27000 Information Security
Management System
Standards: Manages information
risks by implementing security CMM Concepts and Principles
control for information systems.
- Application of more elaborate
5. ISO 50001 Energy Management
management methods based on
System Standards: Develops
quantitative approaches
policies for efficient use of energy
increases the organization’s
by fixing targets and objectives to
capability to control the quality and
improve the productivity of the Evolution of CMM
software development process.
- The vehicle for enhancement of After 1993, the SEI expanded the original
software development is Software Development and Maintenance
composed of the five-level Capability Maturity Model (SW-CMM)
capability maturity model. The through diversification. Its main structure
model enables an organization to was retailored to fit a variety of
evaluate its achievements and specialized capability maturity models.
determine the efforts needed to The following variants have been
reach the next capability level by developed:
locating the process areas - System Engineering CMM (SE-
requiring improvement. CMM) focuses on system
- Process areas are generic; they engineering practices related to
define the “what”, not the product-oriented customer
“how”. This approach enables requirements. It deals with
the model to be applied to a wide product development: analysis of
range of implementation requirements, design of product
organizations because: systems, management and
o It allows use of any life coordination of the product
cycle model systems and their integration. In
o It allows use of any design addition, it deals with the
methodology, software production of the developed
development tool and product: planning production lines
programming language and their operation.
o It does not specify any - Trusted CMM (T-CMM) was
particular documentation developed to serve sensitive and
standard. classified software systems that
require enhanced software quality
assurance.
- System Security Engineering
CMM (SSE-CMM) focuses on
security aspects of software
engineering and deals with
secured product development
processes, including security of
development team members.
- People CMM (P-CMM) deals with
human resource development in
software organizations:
improvement of professional
capacities, motivation, emerging ISO/IEC 15504
organizational structure, etc. standard.
- Software Acquisition CMM (SA-
CMM) focuses on special aspects
of software acquisition by treating In 2002, Software Engineering Institute
issues – contract tracking, (SEI) offered the 1.1 version of three
acquisition risk management, CMMI models, with each model
quantitative acquisition presenting different integrated
management, contract components:
performance management, etc. –
that touch on software purchased - CMMI-SE/SW integrates the
from external organizations. system engineering and software
- Integrated Product engineering.
Development CMM (IPD-CMM) - CMMI-SE/SW/IPPD/SS
serves as a framework for integrates system engineering,
integration of development efforts software engineering and
related to every aspect of the integrated product/process and
product throughout the product life supplier sourcing engineering
cycle as invested by each aspects.
department. - CMMI-SE/SW/IPPD integrates
system engineering, software,
integrated product/process and
The Capability Maturity Model supplier sourcing aspects.
Integration (CMMI) - In the late 1990s a A substantial change has nonetheless
new developmental direction was taken – evolved with respect to the processes
development of integrated CMM models. included in the models. The 18 key
- Development of specialized CMM process areas of CMM (frequently
models involved development of referred to as KPAs) were replaced by 25
different sets of key processes for process areas (PAs). The PAs are
model variants for different classified by the capability maturity level
departments that exhibited joint that the organization is required to
processes. successfully perform. For each process
- This created a situation where area, objectives, specific practices and
departments that applied different procedures are defined.
CMM variants in the same
organization faced difficulties in
cooperation and coordination. The A quick comparison of CMM and
CMMI approach solved these CMMI
problems at the same time as the
moduals better conformed to the
improvement by focusing on using
the statistical outputs of the
process to improve the process.
6. TQM: Total Quality Management
consists of practices designed to
improve the process performance
Other Quality Standards and of a company. The techniques
Frameworks help improve efficiency, problem
solving and standardization of
1. AS9100: This is a standard which
processes.
is based on ISO 9001 and has
additions designated for use in the
Aerospace Industry. The additions
include such main topics as Risk
Management and Configuration
Management.
2. ISO 13485: This is a standard
published by the ISO organization
for use by companies that want to
design a QMS for medical devices
and the requirements for
regulatory purposes surrounding
them.
3. MBNQA: The Malcolm Baldridge
National Quality Award
recognizes US organizations for
performance excellence. The
award has a set of requirements
against which a company could
design and assess a QMS built
around the criteria for promoting
business excellence.
4. Lean: The core idea is to
maximize value by eliminating
waste. The main idea is that
anything that adds cost to a
product, but not value, is waste
and should be controlled or
eliminated.
5. Six Sigma: This is a set of tools
and techniques used for process
Software Quality Automation Tools users to effortlessly create and
execute tests without the need for
- These are programs and complex scripting or coding.
techniques that help with quality 3. BugHerd: Best for visual bug
engineering, testing and tracking. BugHerd is a tool
governance of software products. designed for visual bug tracking
These are used to perform and website feedback collection. It
different kinds of testing and run provides a platform for users to
test suits to check the collect, manage, and act upon
compatibility of the software. feedback from a single location.
- This testing requires minimal or no 4. Tricentis NeoLoad: Best for
human intervention and in case of scalable performance testing.
any bugs or errors, that issue can Tricentis NeoLoad is a
be addressed before the issue performance testing platform
arises. designed to address the
- They are crucial for streamlining challenges of testing APIs,
the testing process, improving microservices, and end-to-end
efficiency, and ensuring the applications. It offers a
quality of software products. comprehensive set of
performance testing features that
are crucial for evaluating the
Software Quality Automation Tools scalability of applications.
5. BugBug: Best for easy and cost-
1. testRigor: Best automation tool
effective QA automation of web
for manual QA and minimal test
apps. BugBug is different because
maintenance. It is a complete end-
it allows you to test faster and at a
to-end testing system that solves
lower cost. It is suitable for
all of the main issues of test
startups that don’t want to be
automation. First of all, it’s no-
slowed down by complexity.
code, meaning no programming
6. LambdaTest: Best for AI-
skills are required – which
powered cross-browser testing.
empowers manual QA to own the
LambdaTest is a cloud-based
test automation process.
platform that provides automated
2. Endtest: Endtest is a
and manual testing tools for web
comprehensive automated testing
applications. It enables testing
platform that simplifies the
across various browsers, devices,
process of creating and executing
and operating systems to ensure
tests across web, mobile, and
compatibility and performance.
desktop applications. It excels in
7. Sahi Pro: Best for automatic
providing a codeless automation
reporting and bug logging. Sahi
testing environment, allowing
Pro is an enterprise web continuous testing and
application test automation tool deployment.
that simplifies testing for QA 3. Rise of Test Environment
engineers and business analysts. Management: This functionality
The platform offers a variety of allows testers to simulate various
testing features to reduce time-to- environments, improving the
market, including easy test reliability of test results.
creation and detailed error 4. Enhanced Real-time Reporting
reporting for managers, testers, and Dashboards: Real-time
and developers. reporting enables immediate
8. Jira: Issue and Project Tracking feedback and data-driven
Software. a popular tool among decision-making, crucial for fast-
software development teams to paced development cycles.
plan, track, and release software 5. User Experience and Usability
projects. JIRA provides a Testing: With the increasing
centralized platform for managing importance of user experience,
tasks, bugs, and other types of these tools have incorporated
issues and it helps teams to usability testing features.
organize and prioritize their work. 6. Decline in Manual Testing
9. Selenium: Best for web Features: This indicates a
applications. A popular open- broader industry trend towards
source software testing widely automation and efficiency, with
used for functional testing, manual testing becoming less
regression testing, and central in many testing strategies.
performance testing.
Trends In Software Testing Tools For Benefits of Automation Tools
2024 1. Enhanced Efficiency: Automates
1. Increased Emphasis on AI and repetitive and time-consuming
Machine Learning: Advanced tasks.
tools have integrated AI and ML 2. Improved Accuracy: Minimizes
algorithms for predictive analysis human errors in testing.
and intelligent test case 3. Increased Test Coverage:
generation. Expands the scope and depth of
2. Growing Focus on Integration tests.
Capabilities: The seamless 4. Better Insight and Analytics:
integration ensures that testing is Provides detailed reports and
an integral part of the analytics.
development process, facilitating 5. Faster Time to Market: Speeds
up the testing cycle.
Disadvantages of Automation Tools Fagan Inspection
1. Initial Cost: The initial cost of - A process of trying to find
setting up test automation can be defects in documents during
high, as it requires the purchase of various phases of the software
software tools and resources and development process (e.g.
the training of team members on Requirement Specification).
how to use them. o Named after Michael
2. Maintenance: ongoing and future Fagan, who is credited with
maintenance can be time- the invention of formal
consuming and expensive. software inspections.
3. Limited Scope: Test automation - Fagan inspection defines a
is not suitable for all types of process as a certain activity with
testing. pre-specified entry and exit
4. False Sense of Security: If the criteria.
tests are not comprehensive or - Entry criteria are the criteria or
are not testing the right things, requirements which must be met
then test automation may not be to enter a specific process.
providing the level of quality - Exit criteria are the criteria or
assurance that is needed. requirements which must be met
to complete a specific process.
Software Quality Inspection
Benefits of Software Inspection
- Inspection is the formal method
of prevention of the defect and 1. Identifying and Resolving Defects
maintaining the quality. Early
- This refers to peer review of any 2. Enhancing Code Readability
work product by trained 3. Improving Team Collaboration
individuals who look for defects 4. Enhancing Code Maintainability
using a well defined process. 5. Improving Code Efficiency
- There are two methods to 6. Enhancing Security
maintain quality: 7. Overall Quality Improvement
o Removal
o Prevention
- For Removal we perform different Some Disadvantages Software
kind of testing Inspection
- For Prevention we perform
Inspection 1. Logistics
2. Schedule
3. Time-consuming
Inspection Roles Some other Inspection Types
1. Code Review: done as a special
kind of inspection in which the
team examines a sample of code
and fixes any defects in it.
2. Peer Reviews: are composed of
software walkthroughs and
software inspections and are
integral to software product
engineering activities. It includes
the structured review process,
standard of excellence product
checklists, defined roles of
participants, and the forms and
reports
1. Author – Person who created the
work product being inspected.
2. Moderator – Plans the inspection
and coordinates it.
3. Reader – Person reading through
the documents, one item at a time.
4. Recorder/Scribe – Person that
documents the defects that are
found during the inspections.
5. Inspector – Person that
examines the work product to
identify possible defects.
Inspection Process
Planning → Overview Meeting → Preparation →
Inspection Meeting → Rework → Follow-up