Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
0% found this document useful (0 votes)
30 views

Unit - 1software Testing

The document discusses Software Quality Assurance (SQA), including its definition, purpose, and key activities. SQA aims to ensure quality in the software development process and final product. It involves establishing standards, conducting reviews and testing, managing errors and changes, and measuring outcomes. The benefits of SQA include producing high-quality software that saves time and costs while improving reliability.

Uploaded by

Sonal Bitale
Copyright
© © All Rights Reserved
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
30 views

Unit - 1software Testing

The document discusses Software Quality Assurance (SQA), including its definition, purpose, and key activities. SQA aims to ensure quality in the software development process and final product. It involves establishing standards, conducting reviews and testing, managing errors and changes, and measuring outcomes. The benefits of SQA include producing high-quality software that saves time and costs while improving reliability.

Uploaded by

Sonal Bitale
Copyright
© © All Rights Reserved
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 13

Software Quality Assurance (SQA) is simply a way to assure quality in the software.

It is the set of
activities which ensure processes, procedures as well as standards are suitable for the project and
implemented correctly.
Software Quality Assurance is a process which works parallel to development of software. It focuses on
improving the process of development of software so that problems can be prevented before they become a
major issue. Software Quality Assurance is a kind of Umbrella activity that is applied throughout the software
process.
Generally the quality of the software is verified by the third party organization like international standard
organizations.
Software Quality Assurance (SQA) encompasses
 SQA process
 specific quality assurance and quality control tasks (including technical reviews and a
multitiered testing strategy)
 effective software engineering practice (methods and tools)
 control of all software work products and the changes made to them
 a procedure to ensure compliance with software development standards (when applicable)
 measurement and reporting mechanisms
Elements Of Software Quality Assurance:
1. Standards: The IEEE, ISO, and other standards organizations have produced a broad array of software engineering
standards and related documents. The job of SQA is to ensure that standards that have been adopted are followed an all
work products conform to them.
2. Reviews and audits: Technical reviews are a quality control activity performed by software engineers for software
engineers. Their intent is to uncover errors. Audits are a type of review performed by SQA personnel(people employed
in an organization) with the intent of ensuring that quality guidelines are being followed for software engineering work.
3. Testing: Software testing is a quality control function that has one primary goal—to find errors. The job of SQA is to
ensure that testing is properly planned and efficiently conducted for primary goal of software.
4. Error/defect collection and analysis: SQA collects and analyzes error and defect data to better understand how errors
are introduced and what software engineering activities are best suited to eliminating them.
5. Change management: SQA ensures that adequate change management practices have been instituted.
6. Education: Every software organization wants to improve its software engineering practices. A key contributor to
improvement is education of software engineers, their managers, and other stakeholders. The SQA organization takes
the lead in software process improvement which is key proponent and sponsor of educational programs.
7. Security management: SQA ensures that appropriate process and technology are used to achieve software security.
8. Safety: SQA may be responsible for assessing the impact of software failure and for initiating those steps required to
reduce risk.
9. Risk management: The SQA organization ensures that risk management activities are properly conducted and that
risk-related contingency plans have been established.
Software quality assurance focuses on:
 software’s portability
 software’s usability
 software’s reusability
 software’s correctness
 software’s maintainability
 software’s error control
Software Quality Assurance has:
1. A quality management approach
2. Formal technical reviews
3. Multi testing strategy
4. Effective software engineering technology
5. Measurement and reporting mechanism

Major Software Quality Assurance Activities:

1. SQA Management Plan:


Make a plan for how you will carry out the SQA through out the project. Think about which set
of software engineering activities are the best for project. check level of SQA team skills.

2. Set The Check Points:


SQA team should set checkpoints. Evaluate the performance of the project on the basis of
collected data on different check points.

3. Multi testing Strategy:


Do not depend on a single testing approach. When you have a lot of testing approaches available
use them.

4. Measure Change Impact:


The changes for making the correction of an error sometimes re introduces more errors keep the
measure of impact of change on project. Reset the new change to change check the compatibility
of this fix with whole project.

5. Manage Good Relations:


In the working environment managing good relations with other teams involved in the project
development is mandatory. Bad relation of SQA team with programmers team will impact
directly and badly on project. Don’t play politics.

Benefits of Software Quality Assurance (SQA):

1. SQA produces high quality software.


2. High quality application saves time and cost.
3. SQA is beneficial for better reliability.
4. SQA is beneficial in the condition of no maintenance for a long time.
5. High quality commercial software increase market share of company.
6. Improving the process of creating software.
7. Improves the quality of the software.
8. It cuts maintenance costs. Get the release right the first time, and your company can forget about
it and move on to the next big thing. Release a product with chronic issues, and your business
bogs down in a costly, time-consuming, never-ending cycle of repairs.

Disadvantage of SQA:
There are a number of disadvantages of quality assurance. Some of them include adding more resources,
employing more workers to help maintain quality and so much more.

Software (product) Quality

Software quality product is defined in term of its fitness of purpose. That is, a quality
product does precisely what the users want it to do. For software products, the
fitness of use is generally explained in terms of satisfaction of the requirements laid
down in the SRS document. Although "fitness of purpose" is a satisfactory
interpretation of quality for many devices such as a car, a table fan, a grinding
machine, etc.for software products, "fitness of purpose" is not a wholly satisfactory
definition of quality.

Example: Consider a functionally correct software product. That is, it performs all
tasks as specified in the SRS document. But, has an almost unusable user interface.
Even though it may be functionally right, we cannot consider it to be a quality
product.

The modern view of a quality associated with a software product several quality
methods such as the following:

Portability: A software device is said to be portable, if it can be freely made to work


in various operating system environments, in multiple machines, with other software
products, etc.
Usability: A software product has better usability if various categories of users can
easily invoke the functions of the product.

Reusability: A software product has excellent reusability if different modules of the


product can quickly be reused to develop new products.

Correctness: A software product is correct if various requirements as specified in the


SRS document have been correctly implemented.

Maintainability: A software product is maintainable if bugs can be easily corrected


as and when they show up, new tasks can be easily added to the product, and the
functionalities of the product can be easily modified, etc.

Differences Between Quality Assurance (QA) And Quality Control (QC)

Quality assurance (QA) Quality contr

Quality control is focused on chec


Quality assurance is focused on ensuring that quality requirements will be met. requirements have been fulfilled.

The goal of quality control is to id


As a proactive process, quality assurance is aimed to prevent defects. Therefore, it is a reactive process.

Quality control is product-oriented


product, on its conformance to the
Quality assurance is process-oriented, with focus on how software is developed. following from customers’ expecta

Process quality –
This includes all aspects related to the software process, for example, development time, productivity, and
quality. The intention is to develop new methods and techniques that can support software development
organizations in their aim to have a better software process. The underlying assumption of the research is that
the quality of the process impacts the quality of the software product, and thus it is important to understand the
relationship between the process and the product.
The following areas are of special interest:

 Open source in software development - both how open source components can be included and how
traditional software can be transformed to open source
 Software development for medical devices - with a focus on risk management
 Simulation of software development processes - analysis of how this kind of models are build, and how
they can be used for analysis, understanding, communication, and training
 Dependable IT systems - with a focus on the relation between crisis management and IT management
in governmental organizations
Process, in the software engineering domain, is the set of methods, practices, standards,
documents, activities, policies, and procedures that software engineers use to develop and
maintain a software system and its associated artifacts, such as project and test plans,
design documents, code, and manuals.

All the software process improvement models that have had wide acceptance in
industry are high-level models, in the sense that they focus on the software process as a
whole and do not offer adequate support to evaluate and improve specific software
development sub processes such as design and testing. Most software engineers would agree
that testing is a vital component of a quality software process, and is one of the most
challenging and costly activities carried out during software development and maintenance.

The software development process, like most engineering artifacts, must be engineered.
That is, it must be designed, implemented, evaluated, and maintained. As in other
engineering disciplines, a software development process must evolve in a consistent and
predictable manner, and the best technical and managerial practices must be integrated in a
systematic way. These models allow an organization to evaluate its current software process
and to capture an understanding of its state. Strong support for incremental process
improvement is provided by the models, consistent with historical process evolution and the
application of quality principles. The models have received much attention from industry,
and resources have been invested in process improvement efforts with many successes
recorded.

components of SQA System :


1. Pre-project components
2. Components of project life cycle activities assessment
3. Components of infrastructure error prevention and improvement
4. Components of software quality management
5. Components of standardization, certification, and SQA system assessment
6. Organizing for SQA — the human components
1. Pre-project components: –
This stage is characterized ahead of executing the undertaking. A workout which are few
are done at this time, they are:
1. Guaranteeing the assets, plan plus the investing plan required. Those need to
characterize to synchronize sufficiently everything since it arranged.
2. Apart from the assets, plan together with a spending plan, there are other plans
that should be characterized. These are typically quality and improvement plans.
3. The engineer plus the proprietor of this undertaking might have an alternative
perspective concerning the quality. Therefore, it’s characterized together by
those two gatherings to modify the real points of view which will happen.
2. Components of project life cycle activities assessment: –
The workouts are partitioned into 2 phases at this time. They’ve been, the advancement life
period phase and the activity upkeep stage. The workouts are acknowledging the master
plan and development blunders during the enhancement life cycle phase. Also, it is likewise
partitioned once again into the following sub-classes, that is:
1. Reviews
2. Expert opinions
3. Software testing
Additionally, for the game support stage, the workouts that remember for that stage is the
upkeep that is specific, since it’s constantly done being developed life period phase. This
movement is achieved for enhancing the usefulness of support projects. Other than that,
there’s a subclass that is extra of. It’s to make sure the type of endeavor components
performed by subcontractors and other members which are external task advancement and
maintenance.
3. Components of infrastructure error prevention and improvement: –
The action that is fundamental of the stage would be to kill or make the mistakes
disappeared or well, at any price reduce the rate of blunders. It’s placed on the relationship
that is entire.
4. Components of software quality management: –
The concept goal is controlling the enhancement maintenance and period and in addition,
presenting the help that is administrative forestalling and limiting timetable and spending
disappointment of the results.
5. Components of standardization, certification, and SQA system assessment: –
This phase executes an expert that is the global administrative norm for the association. The
exercises remembered because of this stage are:
1. Make use of the globally expert information
2. Enhance the coordination of this quality that is respected with various
associations
3. Survey the achievement of value framework according to a scale that is typical
For the conventional, it’s partitioned into 2 teams, they’re:
1. Quality administration standard
2. Task measure standard
7. Organizing for SQA — the human components: –
At this phase, we’re piecing together the individuals who relate to SQA things. They
are supervisors, trying staff, SQA trustees, SQA panel individuals, and SQA
gathering people. Each of them adds to start and support the execution of SQA
parts, distinguish deviations from SQA strategy and approach, and propose
upgrades.

What is a QA model?

A QA model is a framework or methodology that guides how you plan, execute,


monitor, and evaluate QA activities. It defines the roles, responsibilities, tools,
processes, and criteria used to ensure quality services and outcomes. Additionally, a
QA model can help identify and address any gaps, risks, or issues that may affect
performance and reputation. There are many types of QA models available; some of
the most common are Plan-Do-Check-Act (PDCA), Six Sigma, Total Quality
Management (TQM), and ISO 9001. PDCA is a simple and iterative model that
involves four steps: planning what to achieve and how, doing the actions, checking
the results, and acting on the feedback to improve. Six Sigma is a data-driven and
structured model that aims to reduce errors and variability in processes and outputs.
TQM is a holistic and customer-focused model that involves continuous
improvement of the entire practice's culture, processes, and outputs. Finally, ISO
9001 is a standard certification model that specifies requirements for a quality
management system that meets customer needs and expectations; it covers seven
principles such as customer focus and leadership.

2Why do you need a QA model?

A QA model can provide many advantages to your practice, such as increasing the
quality and consistency of services and outcomes, which can lead to higher customer
satisfaction, loyalty, and retention. It can also help improve efficiency and
effectiveness, reducing costs, waste, and errors. Additionally, it can boost credibility
and reputation, potentially attracting more customers and referrals, as well as
complying with industry standards and regulations. Furthermore, it can support
innovation and growth, allowing you to adapt to changing customer needs and
explore new opportunities. Finally, it can empower staff and stakeholders, improving
their motivation, engagement, collaboration, and performance.

Models of quality assurance are the methods and techniques used to ensure
that products or services meet a certain standard of quality. They can help
organisations ensure that all standards are met before any product or service is
released into the marketplace.

There are several different types of Quality Assurance models, including:

 Statistical process control (SPC)


 Six Sigma
 ISO 9000
 Total Quality Management (TQM)

Each of these models has different strengths and weaknesses that must be
considered when choosing the proper model for a specific situation.

Statistical Process Control: Process control monitors processes over time by


measuring and recording their performance. It helps identify the root causes of
problems and continuously improves the process. It allows organisations to
identify improvement areas and track progress to ensure that processes operate
within specific quality specifications.

Benefits of Statistical Process Control

 Continuous process improvement: Processes can be monitored and


improved as needed to meet quality standards.
 Reduced costs: By detecting problems early on, organisations can reduce
the cost of rework and scrap by preventing quality issues in the future.
 Increased efficiency: SPC can help organisations improve their output by
identifying problems before they become too large and costly.
 Effective problem solving: SPC helps organisations identify problems
and develop solutions promptly.
 Reduced waste and improved efficiency: By tracking performance,
organisations can identify trends in quality and reduce waste.
 Increased customer satisfaction: It is quite evident that customers
prefer quality products and services, which is why it’s essential to identify
any potential issues before they occur.

Six Sigma: It is a data-driven approach to improving process performance. It


focuses on reducing variability, increasing customer satisfaction, and achieving
cost savings. It is the most widely used quality improvement program in many
different industries, including healthcare, finance and manufacturing.

Six Sigma can help you identify problems quickly, make improvements and track
progress. It also requires that you measure performance to ensure that
improvements are being made. By utilising Six Sigma techniques, businesses can
become more efficient and effective in their operations, leading to improved
customer service and better bottom-line results.

Benefits of Six Sigma:

 Improved quality and customer satisfaction: Reducing variability leads


to enhanced quality and customer satisfaction.
 Faster process flow: Improving processes’ speed can help increase
productivity and efficiency.
 Reduced costs: You can save money by reducing the time and money
spent on process improvement.
 Increased efficiency: By making improvements to processes and
reducing defects, businesses can become more efficient.
 Increased employee satisfaction: Employees feel motivated when they
see that their efforts make a difference in the quality of products and
services.
 Improved bottom-line results: These factors lead to better bottom-line
results for businesses.

ISO 9000: ISO 9000 is the international standard for quality management. It is a
set of principles, processes and guidelines that an organisation can use to help
them provide quality products or services. This model provides a framework for
organisations to ensure consistent product or service delivery and customer
satisfaction.
ISO 9000 focuses on four key components:

 Customer focus
 Leadership
 Process approach
 Continual improvement

By following the principles of ISO 9000, organisations can create a robust quality
management system and achieve their desired quality goals. This system also
ensures that the organisation follows specific processes to consistently deliver
products or services.

Benefits of ISO 9000

 Improved customer satisfaction: ISO 9000 promotes customer focus


and continual improvement, ultimately improving customer satisfaction.
 Improved efficiency: By establishing standard processes, organisations
can become more efficient in producing goods and services.
 Enhanced marketability: Organisations implementing ISO 9000 can
demonstrate their commitment to the model of quality assurance, thus
making them more attractive to potential customers.
 Increased employee engagement: The principles of ISO 9000 foster a
culture of continuous improvement, which can lead to increased
employee engagement and satisfaction.
 Reduced costs: By establishing regularly reviewed and improved
processes, organisations can reduce their costs.
 Increased visibility: ISO 9000 provides a structured approach to
documenting and communicating quality objectives, leading to increased
organisational visibility.

CMM CMM was developed by the Software Engineering Institute (SEI) at Carnegie Mellon University
in 1987.

 It is not a software process model. It is a framework that is used to analyze the approach and
techniques followed by any organization to develop software products.

 It also provides guidelines to further enhance the maturity of the process used to develop those
software products.

 It is based on profound feedback and development practices adopted by the most successful
organizations worldwide.

 This model describes a strategy for software process improvement that should be followed by
moving through 5 different levels.
 Each level of maturity shows a process capability level. All the levels except level-1 are further
described by Key Process Areas (KPA’s).

Level 1: Initial Ad hoc activities characterize a software development organization at this level. Very
few or no processes are described and followed. Since software production processes are not
limited, different engineers follow their process and as a result, development efforts become chaotic.
Therefore, it is also called a chaotic level.

Level 2: Repeatable At this level, the fundamental project management practices like tracking cost
and schedule are established. Size and cost estimation methods, like function point analysis,
COCOMO, etc. are used.

Level 3: Defined At this level, the methods for both management and development activities are
defined and documented. There is a common organizationwide understanding of operations, roles,
and responsibilities. The ways through defined, the process and product qualities are not measured.
ISO 9000 goals at achieving this level.

Level 4: Managed At this level, the focus is on software metrics. Two kinds of metrics are composed.
Product metrics measure the features of the product being developed, such as its size, reliability,
time complexity, understandability, etc. Process metrics follow the effectiveness of the process being
used, such as average defect correction time, productivity, the average number of defects found per
hour inspection, the average number of failures detected during testing per LOC, etc. The software
process and product quality are measured, and quantitative quality requirements for the product are
met. Various tools like Pareto charts, fishbone diagrams, etc. are used to measure the product and
process quality. The process metrics are used to analyze if a project performed satisfactorily. Thus,
the outcome of process measurements is used to calculate project performance rather than improve
the process.

Level 5: Optimizing At this phase, process and product metrics are collected. Process and product
measurement data are evaluated for continuous process improvement.

Total Quality Management: It is an organisational approach that uses


continuous improvement techniques and culture shifts to improve business
processes and performance metrics. It also emphasises employee involvement
in decision-making, problem-solving and continual improvement activities.
Quality assurance is the practice of ensuring consistent quality in products,
services and processes. It is the best quality assurance model that emphasises
customer satisfaction and continual process improvement while ensuring that
the product or service quality always stays below a certain standard. Quality
assurance is closely linked with TQM and focuses on prevention rather than
detection.

Benefits of TQM in quality assurance:

 Eliminate or reduce defects in products and services: Instead of


focusing on detecting and correcting errors, TQM focuses on prevention.
This helps to reduce or eliminate defects in products and services before
they are released.
 Foster customer satisfaction: TQM puts the customer at the centre of
operations, providing a better understanding of their needs and their
feedback. This allows organisations to respond quickly to customer
requirements, improving customer satisfaction and loyalty.
 Improved profits: By reducing or eliminating defects, organisations can
reduce costs associated with fixing mistakes and improve their overall
profitability.
 Reduce waste: TQM encourages organisations to use their resources as
efficiently and effectively as possible, reducing waste and increasing
efficiency.

What are the emerging trends and best practices in quality assurance and
inspection?

1Agile and DevOps

One of the most important trends in quality assurance and inspection is the adoption
of agile and DevOps methodologies. These approaches focus on delivering value to
customers faster and more frequently, by combining development, testing, and
operations. To do this, quality assurance and inspection teams need to be flexible,
automated, and open to feedback and learning. When it comes to best practices for
quality assurance and inspection in agile and DevOps, some examples include
aligning quality goals with business outcomes and customer needs, utilizing test-
driven development, behavior-driven development, acceptance test-driven
development, automation tools and frameworks for unit testing, integration testing,
regression testing, performance testing, cloud-based and virtualized environments
for testing and deployment, applying continuous integration, continuous delivery,
continuous testing principles, forming cross-functional and self-organizing teams
that share responsibility for quality, as well as incorporating quality reviews and
audits throughout the development lifecycle.

2 Artificial Intelligence and Machine Learning

AI and ML technologies are becoming increasingly popular in quality assurance and


inspection, allowing teams to leverage data, algorithms, and models to improve their
capabilities and efficiency. Automating complex and repetitive tasks like test case
generation and defect detection is one benefit of AI and ML, as well as analyzing
large data sets to uncover patterns, anomalies, and insights. Additionally, these
technologies can be used to predict and prevent potential quality issues, optimize
testing strategies, and enhance the quality of products through features such as
natural language processing.

3Standards and Regulations

A third emerging trend in quality assurance and inspection is the increasing


importance of standards and regulations. These are the rules and guidelines that
govern the quality of products, services, and processes, and ensure compliance with
customer, stakeholder, and authority expectations. Standards and regulations are
constantly evolving in response to market, technology, and social changes. Examples
include ISO 9000 series for quality management systems, ISO/IEC 25000 series for
software quality, ISO/IEC 27000 series for information security, ISO/IEC 29119 series
for software testing, GDPR for data protection in the EU, HIPAA for health
information privacy in the US, and FDA for food, drug, and medical device quality in
the US. To ensure effective quality assurance and inspection practices, it is best to
understand and follow relevant standards and regulations for your industry. A quality
management system should be established to define policies, procedures, and
documentation. Regular audits should be conducted to verify compliance and
identify gaps or improvement opportunities. Corrective and preventive actions
should be implemented to address nonconformities and prevent recurrence. Finally,
it is important to stay up to date with changes in standards and regulations so that
you can adapt accordingly.

More trends

#1 Test Automation (Scriptless)


With an increase in web development, test automation has garnered its fair share of attention.
However, manual testing is too slow and might even be redundant when adhering to the
market demands. Off late, scriptless automation of software quality testing is being
implemented by various companies worldwide. It helps maximize the QA testing scalability
while allowing the developers and testers to automatically run the tests without worrying
about coding problems. According to Gartner, by 2023, 40% of large enterprises will use
AI-augmented automation to increase productivity.
With the implementation of this technique, IT firms have now started achieving faster results
with reduced time to market the software product
.
#2 Combine Automated + Manual Testing

Now, you might think that we are counteracting the statement given earlier. However, what
we want to say is that achieving the right balance for QA testing is essential. While
automation helps you save much time and achieve better results while handling mammoth
tasks efficiently, manual testing helps evade errors with automated processes.
There are multiple aspects of software testing and quality assurance that are impossible to
handle without manual testing. While automation delivers speed and efficiency, manual
testing brings factors such as user experience, usability, & design.

#3 Data is Crucial
Back when a significant part of the world was offline, data wasn’t as important. However, as
the world is moving faster towards the digital world, data has become very crucial. As per
Statista, the global market revenue forecast for Big Data usage and mining would reach a
whopping 103 billion U.S. dollars by the year 2021.
Latest algorithm frameworks aid in the precise testing procedure. Using multiple tools for
collecting data is a fantastic trend that you can look forward to.
The teams engaged in software quality assurance testing are in search of ways to efficiently
process the data into appropriate insights while validating them against multiple criteria that
includes:
1. Duplication
2. Consistency
3. Validity
4. Accuracy
5. Completeness

#4 IoT-Based Testing
A major part of the software quality audit is to make sure that different segments of the
system integrate & work in sync perfectly. And IoT is no doubt a revolutionary technology
that helps in the process of software integration.
IoT-driven software testing ensures that all operating systems, communication protocols,
software, & hardware implementations in various devices are completely in sync & ready for
delivery. It brings in a well-connected & efficient smart device that helps defend any threats
or vulnerabilities.

#5 Performance Engineering
Making high-end software is something being chased by all companies. However, achieving
this feat requires a lot to focus on varying elements such as usability, cybersecurity, business
value, & technology stacks.
Balancing this with the UX & market demand can be particularly time-consuming in the long
run. Today, with a team of dedicated software QA testers, you can quickly reduce bugs &
bottlenecks in the early segments of the process.
In simple words, performance engineering serves as a substitute for the performance testing
norms that are primarily focused on the MVPs or finished applications.
#6 Regression Testing
Another unique QA testing variant, regression testing, has been dubbed as a powerful tool
for 2022. This testing procedure is implemented when a potential application change is made
and when the new feature is conjoined.
With this testing practice in place, engineers use it to ensure & check whether old-fashioned
and tested software can perform well after the design changes. This software testing
methodology is exceptionally functional if your design requires frequent and continuous
changes to the application, especially when there are bugs or errors in the main design.

You might also like