Summary of Class Slides SW Testing
Summary of Class Slides SW Testing
Importance:
● Reduced Costs: Finding and fixing defects early in the SDLC is significantly
cheaper than doing so after deployment. SQA helps prevent costly rework and
maintenance.
● Risk Mitigation: SQA helps identify and mitigate potential risks, reducing the
likelihood of project failures and security breaches.
Subtopics (Elaborated):
● Elaboration: Standards are the "rules of the game" in SQA. They provide a
framework for consistent and repeatable processes. Standards can be internal
(specific to the organization) or external (industry-wide or regulatory).
● Examples:
o ISO 9001: A standard for quality management systems, focusing on
process improvement and customer satisfaction.
● Elaboration: Errors are human mistakes that can occur at any stage of the SDLC.
SQA aims to prevent errors by providing training, clear communication, and well-
defined processes.
● Examples:
o Coding Errors: A developer writes code with syntax errors, logical errors,
or security vulnerabilities.
o Testing Errors: A tester writes a test case that does not cover all possible
scenarios.
● Elaboration: Defects are the tangible results of errors. SQA aims to detect and
remove defects as early as possible through various testing techniques.
● Examples:
● Examples:
● Code Reviews: Peer review of code to identify defects and improve code quality.
● Static Analysis: Using tools to analyze code for potential defects without
executing it.
Core Difference:
● Quality Control (QC): Focuses on products. It's about identifying defects in the
software itself through testing and inspection.
Think of it this way: QA builds the system to ensure quality, while QC checks the output
of that system.
Subtopics (Elaborated):
● Elaboration:
o It is process oriented.
● Key Activities:
● Examples:
o A project manager creating a detailed test plan that outlines the scope,
objectives, and resources for testing. This is QA because the test plan
defines the process.
o Creating and maintaining a document that describes the style guide that
all developers must follow when creating API documentation.
● Elaboration:
o It is product oriented.
● Key Activities:
● Examples:
o A tester executing a series of test cases to verify that a login feature works
correctly. This is QC because it is checking the functionality of the
software.
Quality Assurance
Feature Quality Control (QC)
(QA)
Approac
Proactive (prevention) Reactive (detection)
h
Defining coding
Example Executing test cases
standards
Export to Sheets
In a Professional Context:
● QA sets the stage for quality by establishing effective processes, while QC ensures
that the software meets quality standards.
● QA and QC teams often work closely together, with feedback from QC informing
process improvements in QA.
Introduction:
Subtopics (Elaborated):
These are the elements that, when implemented effectively, significantly enhance the
quality of software:
● h) Continuous Improvement:
These are the elements that can negatively impact software quality if not addressed:
● b) Changing Requirements:
● f) Communication Breakdowns:
● h) Ignoring Feedback:
Key Takeaway:
Absolutely. Let's explore the crucial aspects of "Cost of Quality" and "Quality Culture" in a
professional, understandable way.
Introduction:
Organizations often focus solely on the direct costs of development, but the "Cost of
Quality" reveals the broader financial impact of quality (or lack thereof). Building a strong
"Quality Culture" ensures that quality is ingrained in the organization's DNA, leading to
long-term success.
Subtopics (Elaborated):
● Elaboration:
o It's not just about spending money on testing; it's about the costs incurred
when things go wrong.
● Cost of projects:
o The cost of projects are directly affected by the COQ. A project with a high
COQ due to external failures will have increased support cost, and possibly
legal costs. A project with high prevention and appraisal costs, should have
lower internal and external failure costs, and therefore a lower overall
COQ.
● Calculations:
o Prevention Costs:
▪ Examples: Training, process improvement, quality planning, design
reviews.
o Appraisal Costs:
● Examples:
● Elaboration:
o It's about making quality everyone's responsibility, not just the QA team's.
o A strong quality culture leads to higher employee engagement, improved
customer satisfaction, and increased profitability.
o Leadership Commitment:
o Customer Focus:
o Process-Oriented Approach:
o Employee Empowerment:
o Continuous Improvement:
o Open Communication:
In a Professional Context:
● Building a strong quality culture requires sustained effort and commitment from
all levels of the organization.
● Integrating COQ metrics into project management and performance reviews can
drive a greater focus on quality.
Introduction:
A quality culture isn't a one-time initiative; it's an ongoing journey. It's about embedding
quality into the everyday mindset and actions of everyone in the organization. The
following principles are foundational to establishing and maintaining such a culture.
1. Leadership Commitment:
● Elaboration:
o This is the cornerstone. Leaders must actively champion quality, not just
pay lip service.
● Examples:
2. Customer Focus:
● Elaboration:
● Examples:
o Incorporating user stories and use cases directly from customer feedback
into the development process.
o Creating a system that tracks customer satisfaction, and makes that data
available to all members of the development teams.
3. Process-Oriented Approach:
● Elaboration:
o Quality is built into the process, not just inspected at the end.
● Examples:
4. Employee Empowerment:
● Elaboration:
o Give them the authority and resources to identify and solve quality
problems.
o Encourage them to take ownership of quality.
● Examples:
o Creating a system where any employee can easily submit a suggestion for
process improvement.
5. Continuous Improvement:
● Elaboration:
● Examples:
● Elaboration:
● Examples:
● Elaboration:
● Examples:
● Elaboration:
● Examples:
Introduction:
SQA isn't a phase; it's an overarching activity that permeates every stage of the SDLC.
Its purpose is to ensure that quality is built into the software from the very beginning, not
bolted on at the end.
● Role of SQA:
● Examples:
o They ensure that acceptance criteria are clearly defined for each
requirement.
2. Design Phase:
● Role of SQA:
● Examples:
o They ensure that the design allows for adequate logging, and monitoring.
3. Implementation/Coding Phase:
● Role of SQA:
o They conduct code reviews to identify defects and improve code quality.
o They may perform static code analysis to detect potential issues.
● Examples:
o They use static code analysis tools to identify potential coding errors.
4. Testing Phase:
● Role of SQA:
o They ensure that testing is comprehensive and covers all aspects of the
software.
● Examples:
o SQA creates and executes test cases using test management tools.
o They create test reports, and provide feedback to the development team.
5. Deployment Phase:
● Role of SQA:
o They monitor the software in the production environment for any issues.
● Examples:
6. Maintenance Phase:
● Role of SQA:
● Examples:
o SQA creates and executes regression test suites after bug fixes or
enhancements.
Key Takeaways:
● SQA helps to ensure that the software meets quality standards and user needs.
● The earlier that SQA is involved in the SDLC, the cheaper it is to fix defects.
Module 3
Introduction:
Subtopics (Elaborated):
o Each perspective is broken down into quality factors, which are further
defined by quality criteria.
o Product Operation:
o Product Revision:
o Product Transition:
● Elaboration:
● Key Aspects:
o Quality Metrics Plan: Defines the goals, metrics, and procedures for
measuring software quality.
● Example:
o They define the target values for each metric, and track progress during
the development process.
o If the defect density exceeds the target value, they investigate the root
causes and take corrective actions.
o They might track response times of API calls, to ensure that performance
requirements are met.
● Elaboration:
● Key Aspects:
o Quality in Use:
o Product Quality:
● Example:
o They would also ensure that the app is compatible with different mobile
devices and operating systems.
o They would measure performance metrics, such as app load time, and
transaction processing time.
Key Takeaways:
● IEEE 1061 helps with the process of establishing and using metrics.
● ISO 25000 is the current international standard for software product quality.
● By using these models, organizations can improve the quality of their software
and deliver products that meet customer expectations.
Introduction:
Specifying quality requirements is the process of defining the criteria that software must
meet to be considered of acceptable quality. A quality plan outlines how those
requirements will be achieved throughout the software development lifecycle (SDLC).
Subtopics (Elaborated):
● Elaboration:
● Example:
o Elaboration:
▪ These define what the software must do. They focus on the features
and functionalities of the system.
o Example:
▪ "The system shall allow users to create, edit, and delete customer
records."
o Elaboration:
▪ These define how well the software performs. They address aspects
like performance, security, usability, and reliability.
o Examples:
▪ Security: "The system shall encrypt all sensitive data using AES-
256 encryption."
o Elaboration:
o Example:
▪ "The API shall use RESTful architecture and return JSON data."
▪ "The system shall integrate with the existing CRM system using a
secure API connection."
o Elaboration:
▪ These define the quality of the data that the software processes or
stores.
o Example:
o Elaboration:
● b) Measurable:
o Elaboration:
o Example:
● c) Testable:
o Elaboration:
o Example:
● d) Achievable:
o Elaboration:
o Example:
● e) Relevant:
o Elaboration:
o Example:
● f) Traceable:
o Elaboration:
● g) Complete:
o Elaboration:
o Example:
A quality plan documents how quality requirements will be achieved. It typically includes:
● Quality Objectives: States the specific quality goals for the project.
● Standards and Procedures: Identifies the standards and procedures that will
be followed.
● Testing Strategy: Outlines the testing approach, including test types, tools, and
resources.
● Defect Management: Describes the process for tracking and resolving defects.
● Metrics and Reporting: Identifies the metrics that will be used to measure
quality and the reporting process.
Introduction:
Requirement traceability is the ability to follow the life of a requirement, both forward
and backward, throughout the software development lifecycle (SDLC). It's essential for
ensuring that all requirements are implemented, tested, and validated, and for managing
changes effectively.
● Importance:
o Example:
● b) Traceability Matrix/Tool:
o Example:
▪ Requirement ID
▪ Requirement Description
▪ Test Case ID
▪ Test Result
▪ Verification Status
● c) Forward Traceability:
o Example:
● d) Backward Traceability:
o Example:
▪ REQ-101
o Example:
▪ Design documents
▪ Code modules
▪ Test cases
o Traceability ensures that all requirements are verified (built correctly) and
validated (built the correct thing).
o Example:
▪ The test results for TC-101-Login-Success are used to verify that
REQ-101 is implemented correctly.
o Example:
o Tools like Jira, Azure DevOps, or IBM Rational DOORS provide features for
requirement traceability.
● Spreadsheets:
● Code Annotations:
4. Best Practices:
Example Scenario:
Imagine a banking application with a requirement: "The system shall allow users to
transfer funds between their accounts."
Module 4:
Introduction:
Subtopics (Elaborated):
● Elaboration:
● Key Aspects:
● Example:
o They use customer feedback to identify areas for improvement and make
changes to their processes.
o They might have a defined process for handling customer complaints, that
is audited on a regular basis.
● Elaboration:
o Provides guidelines for applying ISO 9001 to the development, supply, and
maintenance of computer software.
o This standard gives guidance on how ISO 9001 applies to the SDLC.
● Key Aspects:
o Configuration management.
● Example:
o They implement rigorous testing and validation procedures, and they have
a strong configuration management process to ensure that all software
versions are properly tracked.
● Elaboration:
o This standard defines the processes that occur within the SDLC.
● Key Aspects:
o Organizational processes.
● Example:
o They use the standard to create process documentation, and to train their
employees.
o They utilize the standards defined within 12207 to ensure that all required
SDLC processes are being performed.
● Elaboration:
o Provides requirements for creating software quality assurance plans
(SQAPs).
● Key Aspects:
o Documentation.
● Example:
o A project manager uses IEEE 730 to create an SQAP for a new software
project.
o The SQAP outlines the quality assurance activities that will be performed
throughout the project, including code reviews, testing, and defect
tracking.
Key Takeaways:
● ISO 9001 provides a general framework for quality management systems, while
ISO/IEC 90003 provides specific guidance for software.
● IEEE 730 provides requirements for creating software quality assurance plans.
Introduction:
These frameworks provide structured approaches to managing various aspects of an
organization, particularly in IT and software development. They help organizations
improve efficiency, quality, and consistency.
● Overview:
● Key Aspects:
● Examples:
o Service Desk: A company implements a service desk that uses ITIL best
practices. This includes a single point of contact for all IT related issues,
and a process to track and resolve those issues.
● Overview:
o ISO standards are very broad, and cover many different aspects of
business.
● Examples:
● Overview:
● Key Aspects:
● Examples:
In a Professional Context:
Module 5:
Introduction:
Software requirements define what the software should do, while software quality factors
define how well it does it. The process of translating requirements into quality factors
ensures that we're not just building functional software, but also high-quality software.
Subtopics (Elaborated):
● Elaboration:
● Elaboration:
● Examples:
o Correctness:
▪ Example: If the tax rate is 10%, and the items total 100 dollars,
the system must display 110 dollars.
o Reliability:
▪ Requirement: "The online payment gateway shall be available
24/7 with a maximum downtime of 5 minutes per month."
o Efficiency:
o Integrity:
o Usability:
● Elaboration:
● Examples:
o Maintainability:
o Flexibility:
o Testability:
● Elaboration:
● Examples:
o Portability:
o Reusability:
o Interoperability:
▪ Example: The API should use standard data formats and protocols,
and provide clear documentation.
Key Takeaways:
● Quality factors provide a way to measure and evaluate how well requirements are
met.
Introduction:
Quality attributes define the non-functional characteristics of software that determine its
overall quality. They are crucial for ensuring that software meets user needs and
business objectives.
Subtopics (Elaborated):
1. Reliability:
● Elaboration:
● Key Aspects:
o Availability: The percentage of time the software is operational.
o Maturity: How long the software has been in operation and how stable it
is.
● Examples:
2. Usability:
● Elaboration:
o Usability refers to the ease with which users can learn and use the
software to achieve their goals.
● Key Aspects:
o Memorability: How easily users can remember how to use the software
after a period of inactivity.
o Errors: How many errors users make and how easily they can recover
from them.
● Examples:
3. Maintainability:
● Elaboration:
o Maintainability refers to the ease with which the software can be modified,
repaired, or enhanced.
● Key Aspects:
o Compliance: How well the software adheres to coding standards and best
practices.
● Examples:
● Performance:
● Security:
o How well the software protects data and systems from unauthorized
access.
● Compatibility:
● Scalability:
● Interoperability:
● Efficiency:
● Integrity:
Key Takeaways:
Module 6:
While McCall's model is widely recognized, other models offer different perspectives on
software quality. These models often refine or expand upon McCall's ideas, providing
alternative ways to categorize and assess quality attributes.
Subtopics (Elaborated):
● Overview:
● Key Aspects:
o Operational Factors:
o Revision Factors:
o Transition Factors:
● Example:
● Overview:
● Key Aspects:
▪ Lifecycle quality.
▪ Adaptability.
o It expands upon the idea of maintenence, often splitting that concept into
many differing subcategories.
● Example:
o This model would be applicable to large long term software projects, where
many changes, and updates are expected.
o Special emphasis would be paid to factors that determine the long term
cost of the software.
o This model is useful for software that must be adapted to many changing
standards, or that must interoperate with a large number of other systems.
Key Takeaways:
● Deutsch and Willis's model provides a more detailed breakdown of factors and a
greater focus on the software lifecycle.
● These models help to ensure that all relevant aspects of quality are considered
during software development.
Introduction:
Software testing is the process of evaluating a software application to find software bugs,
errors, or defects. It's crucial for ensuring that software meets quality requirements and
user expectations.
Subtopics (Elaborated):
● a) Early Testing:
● b) Thorough Testing:
● c) Independent Testing:
● d) Test Planning:
o Example: Creating a test plan that includes test cases, test environments,
and entry/exit criteria.
● e) Defect Tracking:
o Example: Using Jira, Bugzilla, or Azure DevOps to log, prioritize, and track
defects.
● f) Traceability:
o Example: Using Selenium for automating web application tests or JUnit for
unit testing.
● h) Risk-Based Testing:
● i) Realistic Testing:
● j) Continuous Improvement:
● a) Unit Testing:
● b) Integration Testing:
● c) System Testing:
● d) Acceptance Testing:
● e) Regression Testing:
● f) Performance Testing:
● g) Security Testing:
● h) Usability Testing:
o Elaboration: Evaluating the ease of use of the software from the user's
perspective.
o Example: Conducting user testing sessions to observe how users interact
with the software.
● i) Exploratory Testing:
● j) Smoke Testing:
o Example: Running a set of basic tests after a new build to ensure that it's
stable.
● k) Sanity Testing:
o Elaboration: A focused test to verify that a specific bug fix or change has
been implemented correctly.
o Example: Testing the specific functionality that was changed to fix a bug.
Key Takeaways:
● Key characteristics like early testing, thorough testing, and defect tracking are
essential.
● Various testing strategies, from unit testing to acceptance testing, are used to
ensure software quality.
Introduction:
Verification and validation are often used interchangeably, but they represent distinct
activities. They are crucial for ensuring that software meets both its specified
requirements and the user's needs.
Subtopics (Elaborated):
1. Definition:
● Verification:
● Validation:
Key Difference:
2. Techniques:
A. Verification Techniques:
● a) Reviews:
o Examples:
● b) Inspections:
o Examples:
● c) Walkthroughs:
o Elaboration: Step-by-step reviews of documents or code to identify
defects and ensure understanding.
o Examples:
● d) Static Analysis:
o Examples:
▪ Security scanning tools that check for well known security flaws.
● e) Formal Verification:
o Examples:
▪ Verifying that the software will not enter a specific undesired state.
B. Validation Techniques:
● a) Unit Testing:
o Examples:
● b) Integration Testing:
o Examples:
o Examples:
● d) Acceptance Testing:
o Examples:
● e) Performance Testing:
o Examples:
● f) Security Testing:
o Examples:
● g) Usability Testing:
o Elaboration: Evaluating the ease of use of the software from the user's
perspective.
o Examples:
● Various techniques are used for verification and validation, including reviews,
inspections, testing, and static analysis.
Module 7:
Introduction:
Test design techniques are methods used to create test cases that effectively uncover
defects in software. They help ensure that testing is thorough and efficient.
Subtopics (Elaborated):
1. Black-Box Testing:
● Elaboration:
o Black-box testing treats the software as a "black box," meaning the tester
doesn't need to know the internal workings of the software.
● Key Aspects:
● Examples:
2. White-Box Testing:
● Elaboration:
● Key Aspects:
● Examples:
o Testing a loop by creating test cases that execute the loop zero times,
once, and multiple times.
● Elaboration:
o It assumes that defects are more likely to occur at or near the boundaries
of input ranges.
o Identifies and tests the minimum, maximum, and values just inside and
outside the boundaries.
● Key Aspects:
● Examples:
o If an input field accepts values between 1 and 100, BVA test cases would
include 0, 1, 2, 99, 100, and 101.
● Elaboration:
o EP divides input values into equivalence classes, where all values within a
class are expected to produce the same outcome.
o Reduces the number of test cases while covering all possible outcomes.
● Key Aspects:
● Examples:
o Testing a field that accepts a file. Valid partitions would be file types that
the application accepts, and invalid partitions would be file types that the
application does not accept.
Key Takeaways:
● These techniques help create effective test cases that uncover defects in
software.
Introduction:
Test levels are the different stages of testing that occur throughout the software
development lifecycle (SDLC). Each level focuses on testing different aspects of the
software, from individual components to the entire system.
Subtopics (Elaborated):
1. Unit Testing:
● Elaboration:
● Key Aspects:
● Examples:
▪ Create test cases to verify that the function returns the correct
discount for different input values (e.g., valid and invalid order
totals, different discount rates).
2. Integration Testing:
● Elaboration:
● Key Aspects:
● Examples:
▪ Verify that the web application can correctly retrieve and store data
in the database.
▪ Verify that data is passed and displayed correctly between the user
interface and the backend API.
3. System Testing:
● Elaboration:
● Key Aspects:
● Examples:
▪ Verify that users can browse products, add items to the cart,
complete the checkout process, and track their orders.
▪ Verify that users can log in, view their account balances, transfer
funds, and pay bills.
▪ Verify that users can create, edit, and publish content, manage
users and roles, and customize the website's appearance.
▪ Verify that the platform can handle high volumes of trades, and
that all financial calculations are correct.
Export to Sheets
Key Takeaways:
● By performing testing at all levels, organizations can improve software quality and
reduce risks.
Topic: Test Execution Process
Introduction:
The test execution process is the systematic approach to running test cases and
documenting the results. It's crucial for identifying defects and ensuring that software
meets quality standards.
Subtopics (Elaborated):
1. Test Methodology:
● Elaboration:
● Key Aspects:
● Examples:
o Agile Testing: A team using Scrum integrates testing into each sprint,
with daily stand-ups to discuss testing progress and issues.
o TDD: A developer writes a unit test for a function before writing the
function's code, ensuring the function meets the test criteria.
2. Test Planning:
● Elaboration:
● Examples:
o Defining test objectives: "Verify that all user stories in sprint 3 are
implemented correctly."
3. Test Designing:
● Elaboration:
o Test designing involves creating detailed test cases and test data.
o Test design techniques are used to create efficient and effective test
cases.
● Key Aspects:
● Examples:
o Creating test cases: "Verify that the login form accepts valid usernames
and passwords and displays an error message for invalid credentials."
o Using boundary value analysis: "Test the input field for age with values
0, 1, 17, 18, 19, 64, 65, 66."
o Defining test data: "Use a test user with valid credentials and a test user
with invalid credentials."
o Documenting test steps: "1. Open the login page. 2. Enter a valid
username and password. 3. Click the login button. 4. Verify that the user is
logged in."
o Creating test scripts: "Use Selenium to automate the login test case."
4. Test Performing:
● Elaboration:
● Key Aspects:
● Examples:
o Executing test cases: "Run the login test case and record the results in
the test management tool."
o Logging defects: "Create a defect in Jira with the steps to reproduce the
issue and the expected vs. actual results."
o Re-testing fixed defects: "After the developer fixes the login defect,
retest the login functionality to ensure it is resolved."
Key Takeaways:
Introduction:
Test case design is the process of creating detailed test cases that effectively verify
software functionality and identify defects.
1
A well-designed test case includes clear steps, expected results, and relevant test data.
2
Let's illustrate test case design with various examples covering different software
features and testing scenarios.
1. Login Functionality:
● Preconditions:
● Test Steps:
● Expected Results:
● Test Data:
o Username: validuser123
o Password: Password123!
● Preconditions:
● Test Steps:
● Expected Results:
● Test Data:
o Username: invaliduser
o Password: Password123!
● Preconditions:
● Test Steps:
● Expected Results:
o A list of products matching the search query is displayed.
● Test Data:
● Preconditions:
● Test Steps:
● Expected Results:
● Test Data:
3. File Upload:
● Preconditions:
● Test Steps:
● Test Data:
o File: document.pdf
● Preconditions:
● Test Steps:
● Expected Results:
● Test Data:
o File: application.exe
● Test Description: Verify successful retrieval of user data with a valid user ID.
● Preconditions:
● Test Steps:
1. Send a GET request to the API endpoint: /users/{userId}.
● Expected Results:
● Test Data:
● Preconditions:
● Test Steps:
● Expected Results:
● Test Data:
Key Takeaways:
● Using examples relevant to the software being tested helps ensure that the test
cases are effective.
Module 9:
Introduction:
Automated testing involves using software tools to execute test cases, compare results,
and generate reports. It's crucial for improving efficiency, consistency, and coverage in
software testing.
Subtopics (Elaborated):
o Example: Creating a test automation plan that outlines the types of tests
to automate, the tools to use (e.g., Selenium, JUnit), and the testing
schedule.
● b) Script Development:
● c) Test Execution:
● c) UI Testing Automation:
o Example: Creating a suite of automated regression tests that are run after
each code commit or deployment.
3. Test Management:
o Elaboration: Organizing and managing test cases, test suites, and test
data.
● e) Version Control:
o Elaboration: Storing and managing test scripts and test data in version
control systems.
o Example: Using Git to store and manage test automation code and test
data.
● f) Environment Management:
Key Takeaways:
● Automated testing improves efficiency, consistency, and coverage.
● Various types of automated testing, from unit testing to security testing, are used.
● Test management tools and practices are essential for organizing and managing
automated tests.