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

Chapter Six

The document discusses software testing and quality assurance. Software testing involves systematically evaluating software to identify defects, while quality assurance is a comprehensive approach that encompasses establishing quality standards, process improvement initiatives, and adherence to best practices throughout development. The document outlines the differences between testing and quality assurance and provides principles for effective software quality assurance implementation.

Uploaded by

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

Chapter Six

The document discusses software testing and quality assurance. Software testing involves systematically evaluating software to identify defects, while quality assurance is a comprehensive approach that encompasses establishing quality standards, process improvement initiatives, and adherence to best practices throughout development. The document outlines the differences between testing and quality assurance and provides principles for effective software quality assurance implementation.

Uploaded by

abel.abraham712
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 53

Chapter Six

Testing and Quality Assurance


Software Testing and Quality Assurance

• To deliver software products that meet high standards of quality and


reliability, software testing and quality assurance are being used as
integral components of the software development process.

• But they are not the same concepts.


• Software testing:
• Involves the systematic process of evaluating a software
application to identify defects or inconsistencies, ensuring
that it functions as intended and meets user
requirements.
• Testers design test cases, execute them, and report any
discovered defects, ultimately striving to enhance the
software’s robustness.
• Quality assurance:
• Is a comprehensive approach that goes beyond testing.
• It encompasses the establishment of :
• quality standards,

• process improvement initiatives, and

• adherence to best practices throughout the development lifecycle.

• Quality assurance aims to prevent defects from occurring in the


first place, fostering a culture of continuous improvement and
ensuring that software development processes are efficient,
effective, and aligned with organizational goals.
Difference between Software testing and quality
assurance
Criteria Software Testing Quality Assurance
Objective • The primary objective of • Quality assurance is a broader
software testing is to identify process that focuses on ensuring
defects or bugs in the software. that the entire software
• Testing is a dynamic process development process is carried out
where testers actively execute correctly.
the software to find issues such • It aims to prevent defects from
as functionality errors, occurring in the first place by
performance problems, security implementing best practices,
vulnerabilities, and usability processes, and standards
issues
Criteria Software Testing Quality Assurance
Timing • Testing is typically carried out • Quality assurance starts at the
after the software has been beginning of the software
developed. It is a validation development process and
process that confirms whether continues throughout the entire
the software meets the lifecycle.
specified requirements. • It encompasses activities like
process audits, standards
enforcement, and training to
improve the development process
itself.
Criteria Software Testing Quality Assurance
Responsibility • Testers are responsible for • Quality assurance is the
conducting testing activities. responsibility of the entire
• They execute test cases, report development team and often
defects, and ensure that the involves quality assurance
software functions as expected. professionals, process experts, and
project managers.
• It requires a collaborative effort to
improve processes and maintain
quality standards.
Criteria Software Testing Quality Assurance
Deliverables • The primary deliverables • Quality assurance delivers
of testing are test plans, process documentation,
test cases, test reports, standards, guidelines, and
and defect logs. process improvement
• These artifacts provide recommendations.
information about the • It ensures that the
software’s quality and development process itself
reliability. is robust and efficient.
Criteria Software Testing Quality Assurance
Long-term vs.
• Testing is more • Quality assurance has a
Short-term
focused on short-term long-term focus, aiming
goals, such as to improve processes
identifying and fixing and prevent defects in
defects in the current future software
software release. projects.
Principles of software quality assurance
Implementation of software quality Assurance
• To implement SQA effectively, it is essential to follow a
structured approach.

•: • Clearly define the quality standards that your software


product must meet.
• This includes defining requirements, acceptance criteria,
Define quality
standards and performance metrics.
• These standards should be agreed upon by all
stakeholders, including the development team,
management, and customers.
• Develop a plan for the SQA activities that will be
performed throughout the software development life
cycle.
Plan SQA
activities: • This plan should include reviews, testing, and
documentation activities.
• It should also specify who will be responsible for each
activity and when it will be performed.
• Conduct reviews of software artifacts such as
requirements, design documents, and code.
• These reviews should be conducted by a team of
Conduct
experts who are not directly involved in the
reviews:
development process.
• This will help identify defects early in the development
process and reduce the cost of fixing them later.
• Perform different types of testing such as unit
testing, integration testing, system testing, and
Perform
testing: acceptance testing.
• Use automated testing tools to increase efficiency
and reduce the risk of human error.
• Monitor and measure the quality of the software
product throughout the development process.
Monitor and
measure: • This includes tracking defects, analyzing metrics such
as code coverage and defect density, and conducting
root cause analysis.
• Continuously improve the SQA process by analyzing
the results of the monitoring and measuring
Improve
continuously: activities.
• Use this data to identify areas for improvement and
implement changes to the SQA process.
Approaches to software QA
• Software quality defect management approach
• The software quality defect management approach focuses on
counting and managing defects.
• The level of severity can generally categorize defects.
• Software development teams use tools like defect leakage
matrices and clear and concise control charts to measure and
enhance the capability of their software development process.
• Software quality attributes approach
• The software quality attributes approach works by helping software
engineers analyze the performance of a software product. This
approach focuses on directing the engineer’s attention to several
quality factors.
• Reliability

• Usability

• Efficiency

• Maintainability

• Portability
Quality control and quality Assurance
• Quality Control:
• Quality Control involves a series of inspections, reviews, and tests
used throughout the software process to ensure each work
product meets the requirements place upon it. Quality control
includes a feedback loop to the process that created the work
product.

• Quality Assurance:
• Quality Assurance is the preventive set of activities that provide
greater confidence that the project will be completed successfully.
Quality Assurance (QA) Quality Control (QC)
is the set of actions including is described as the processes and
facilitation, training, measurement, methods used to compare product
and analysis needed to provide quality to requirements and
adequate confidence that processes applicable standards, and the actions
are established and continuously are taken when a nonconformance is
improved to produce products or detected.
services that conform to
specifications and are fit for use.
Quality Assurance (QA) Quality Control (QC)
QA sets up a QC verified whether
measurement program to particular attributes exist,
evaluate processes. or do not exist, in a
explicit product or
service.
Quality Assurance (QA) Quality Control (QC)

QA identifies weakness QC identifies defects


in processes and for the primary goals of
improves them. correcting errors.
Quality Assurance (QA) Quality Control (QC)

Verification is an Validation is an
example of QA. example of QC.
Quality Quality
Testing
Assurance Control

Purpose Prevent issues


Verify that product
through Detect and fix
meets
establishing quality quality issues
requirements
standards
Quality Quality
Testing
Assurance Control

Different aspects of
Focus
the product:
Development Finished code as a
functionality,
processes whole
integrations,
performance, etc
Quality Quality
Testing
Assurance Control

External
Who stakeholders,
QA engineers, QA engineers,
business analyst,
software software
QA engineers,
developers developers
software
developers
Quality Quality
Testing
Assurance Control

When Throughout the At the testing stage


entire product or along the
Before the release
development life development
cycle process
Quality Quality
Testing
Assurance Control

Doing Introducing
standards, creating
what guidelines,
Validating the Reviewing code,
product against running tests,
improving
requirements addressing defects.
development
processes
Procedures and Work Instruction
• Procedures and instructions

• Work instructions
• used mainly in cases where a uniform method of performing the
task throughout the organization is either impossible or
undesirable.
• Work instructions are specific to a team or department;
• they supplement procedures by providing explicit details that are
suitable solely to the needs of one team, department, or unit
Objectives
• Performance of tasks, processes or activities in the most
effective and efficient way without deviating from quality
requirements.

• Better and simplified coordination


• Uniformity in performance, achieved by conformity with
procedures and work instructions, reduces the misunderstandings
that lead to software errors
Supporting Quality Devices
• Contribution of templates to software quality assurance.

• Documents submitted for review tend to be more complete.

• Document reviews are facilitated as their structure is standard and well


known among reviewers

• Contributions of checklists to software quality assurance.

• Checklists support document completeness and improve document quality


as all the relevant items and quality issues to be reviewed are already
listed

• Conduct of review sessions becomes less problematic when topics and


their order of priority are defined and well known.
Tester tools and language
• Project planning sprint tools

• Jira: agile project management tool used by teams to plan, track,


release and support world-class software with confidence.
• It is used for different types of projects
• Agile teams
• Bug tracking teams
• DevOps teams
• Product management teams
• Project management teams
• Software development teams
• Pivotal Tracker:
• is a straightforward project-planning tool that helps
software development teams form realistic expectations
about when work might be completed based on the
team’s ongoing performance.
• Tracker visualizes your projects in the form of stories
(virtual cards) moving through your workflow.
• ActiveCollab:
• ActiveCollab is an integrated project management and
collaboration tool that combines task management, time
tracking, and billing into one easy-to-use and well-
designed app.
• Communication tools
• Slack: is designed to enable users to communicate easily
and eliminate the "app fatigue" associated with using
multiple communication applications. Slack is one of
several online collaboration tools in the market
• Microsoft teams: is a proprietary business communication
platform developed by Microsoft, as part of the Microsoft
365 family of products. Teams primarily competes with the
similar service Slack, offering workspace chat and
videoconferencing, file storage and application integration.
• Document repository
• Sharepoint: SharePoint is a web-based collaborative platform that
integrates natively with Microsoft 365. SharePoint is primarily sold
as a document management and storage system, although it is
also used for sharing information through an intranet,
implementing internal applications, and for implementing business
processes.
• Test repository and defect management tool: Jira

• Automation tools
• Cypress: With Cypress, you can easily create tests for your
modern web applications, debug them visually, and
automatically run them in your continuous integration
builds.
• Selenium:
• is an open source umbrella project for a range of tools
and libraries aimed at supporting browser automation. It
provides a playback tool for authoring functional tests
across most modern web browsers, without the need to
learn a test scripting language
•We can also use:
• Ranorex
• Karate
• Appium
• Cucumber
• Test Management tools:
• Cucumber studio
• Xray
• Azure DevOps
• Testrail
• Zephyr
• HP ALM
• Security Testing Tools:
• ZAP

• BurpSuite

• OpenVAS

• Nmap

• JaDx
• Performance Testing tools
• Jmeter
• StresStimulus
• LoadRunner
• Data Testing Tools
• DataGaps
• iCEDQ

You might also like