Sunday, 21 July 2013

A synopsis of Software Quality Assurance

Quality Assurance, including testing, is a critical
component of the software development process.
Yet the complexity and effort to ensure quality are
often underestimated.
For those not directly involved in QA, the activities
appear straightforward. From their perspective,
the hard part is design and development and as a
result, QA is often not given the time or resources to
complete the work properly.
This booklet examines the top 10 myths of
software quality assurance, and offers practical
insights to help organisations get more return
on their investments from quality assurance. QA
professionals will recognise many of these myths
from their own personal experience.
The top 10 myths of software testing
 1. Quality assurance = testing
 2. The goal of software testing is 100
percent defect-free code
 3. Testing is easy. Anyone can test
 4. Automation eliminates the need for
manual testing
 5. Performance testing can only be
performed during the last
stages of development
 6. Overlapping test phases saves time
 7. Security is a separate activity to testing
and development
 8. Bigger is better – more scripts mean
better testing
 9. Analysts document. Developers code.
Testers test
10. Offshoring the QA function is an easy
way to reduce the cost of testing
Dispelling the myths around software Quality Assurance
(QA), with practical suggestions on how to improve your
overall QA process.
Myth busting
“...help organisations
get more return on
their investments
from quality
assurance.’’4
Reality
Testing is just one component of software quality
assurance.
When developing new software applications, many
organisations treat quality assurance and testing as
one and the same. In reality, effective QA spans the
entire software lifecycle, starting with requirements
definitions and continuing long after a system or
application goes live. Final stage software testing is
just one key part.
Deloitte software quality assurance approach
The sooner problems are detected, the less time
and money it takes to fix them. Industry studies
have shown that the cost of fixing software defects
increases exponentially as you move through the
development lifecycle. Some estimates suggest that
a defect introduced in the requirements phase is
50–200 times more costly to fix if not discovered
until the testing phase. That’s why quality
assurance must be an integral part of the software
development process - starting from day one.
Development phases
Deloitte software quality assurance approach
Identify variances in
requirements and design
documentation
Ensure requirements and
design are well-understood
by all parties
Ensure design meets the
stated requirements
Ensure developed code
adheres to the design
Monitor and enforce
adherence to project
standards and best practices
Identify unit level and,
where applicable, functional
defects as soon as possible
Ensure that the product
delivered meets the
requirements
Ensure developed code
adheres to the design
Identify remaining product
variances
Capture post-project
lessons learned for
incorporation into
subsequent releases
Assess, align and
formalise inspections,
walkthroughs and sign-o
processes
Establish coding standard
Establish gating criteria
Establish coding standard
Review, assess code
inspections and peer
reviews processes
Execute unit testing
Recommend improvements
to build process
Execute manual testing
(by phase)
Execute automated
regression testing
(if applicable)
Coordinate and facilitate
test management activities
Schedule and prioritise
defect xes
Conduct root cause analysis
and remediation
Conduct postdeployment review
Establish and align
production variance
reporting process
Transition knowledge to
production support teams
Requirements and analysis Design and construction Testing Production
Objectives Activities
Deloitte software quality assurance approach
Checklist
Do people understand the difference
between “QA” and “testing”, or do they
use the terQA requires dedicated resources with a unique
understanding of application development, software
testing, and business requirements.
QA testers require a deep knowledge of testing
methods, but they must also have a thorough
understanding of business requirements and
the software development process. This broad
perspective enables the QA group to design tests
that make sense, and also helps them serve as a
liaison between IT and the business units.
It takes a special kind of person to succeed at quality
assurance, yet many organisations do not provide
sufficient support for their QA staff. The result: low
morale and high turnover. Quality assurance should
be treated as a legitimate career choice – critical to
application deployment – not just a stepping stone
to something else.
Moreover, QA is not just the responsibility of
technology focused staff. Business users need to
get more involved in the QA process, investing time
and business knowledge to improve the overall
organisation’s QA procedures.
QA staff provide skills and expertise that
complement those of software developers and
business analysts. Making them an integral and
valued part of the software delivery organisation
maximises their effectiveness, and can significantly
improve the overall quality and efficiency of software
development.
Software certification programmes
Benefits of software certification:
Common code of knowledge
Code of ethics
Recognition by IT management for professional
achievement
Professional competencies maintained through
recertification
Competency resourcesto IT staff
These benefits create value for the software industry,
the individual, the employer and professional
colleagues.
Professional Certifications Advanced Certifications Master Certifications
ISTQB Foundation Certificate in
Software testing
ISTQB Intermediate Certificate in
Software Testing
ISTQB Certified Tester Advanced Level
Systems Testing ISTQB Practitioner in Test Analysis/
Test Management
Managing User Acceptance  interchangeably?

No comments:

Post a Comment