Beruflich Dokumente
Kultur Dokumente
Having set the goals for effort and schedule, the goal for the third key dimension of a project—
quality—needs to be defined. However, unlike schedule and effort, quantified quality goal setting
for a project and then planning to meet it is much harder. For effort and schedule goals, we can
easily check if a detailed plan meets these goals (e.g., by seeing if the last task ends before the target
date and if the sum total of effort of all tasks is less than the overall effort goal). For quality, even if
we set the goal in terms of expected delivered defect density, it is not easy to plan for achieving this
goal or for checking if a plan can meet these goals. Hence, often, quality goals are specified in
terms of acceptance criteria— the delivered software should finally work for all the situations and
test cases in the acceptance criteria. Further, there may even be an acceptance criterion on the
number of defects that can be found during the acceptance testing. For example, no more than n
defects are uncovered by acceptance testing.
The quality plan is the set of quality-related activities that a project plans to do to achieve the
quality goal. To plan for quality, let us first understand the defect injection and removal cycle, as it
is defects that determine the quality of the final delivered software.
As the final goal is to deliver software with low defect density, ensuring quality revolves around
two main themes: reduce the defects being injected, and increase the defects being removed. The
first is often done through standards, methodologies, following of good processes, etc., which help
reduce the chances of errors by the project personnel. (There are specific techniques for defect
prevention also.) The quality plan therefore focuses mostly on planning suitable quality control
tasks for removing defects.
Reviews and testing are two most common QC activities utilized in a project. Whereas reviews are
structured, human-oriented processes, testing is the process of executing software (or parts of it) in
an attempt to identify defects. The most common approach for quality planning in a project is to
specify the QC activities to be performed in the project, and have suitable guidelines for performing
each of the QC tasks, such that the chances of meeting the quality goals are high. During project
execution, these activities are carried out in accordance with the defined procedures.
When this approach is used for ensuring quality, making quantitative claims can be quite hard. For
quantitative assessment of the quality processes, metrics-based analysis is necessary. That, however,
is an advanced topic, beyond the scope of this book (and indeed many organizations). Hence, for
ensuring quality, the reliance is primarily on applying suitable QC techniques at the right places in
the process, and using experience to ensure that sufficient QC tasks are done in the project.
Hence, the quality plan for the project is largely a specification of which QC task is to be done and
when, and what process and guidelines are to be used for performing the QC task. The choice
depends on the nature and goals and constraints of the project. Typically, the QC tasks will be
schedulable tasks in the detailed schedule of the project. For example, it will specify what
documents will be inspected, what parts of the code will be inspected, and what levels of testing
will be performed. The plan can be considerably enhanced if some expectations of defect levels that
are expected to be found for the different quality control tasks are also mentioned—these can then
aid the monitoring of quality as the project proceeds.
⇒ Software Review
Software review is an effective way of filtering errors in a software product. Typically, an error
found after the product release costs 50 times as much to correct as one detected during the
design phase. This means the cost of fixing a defect rises dramatically if it is found late in the
development life cycle of the product. Therefore, you need to filter errors as early as
possible.Software review is used as a filter at various points of software development.Reviews
conducted at each of these phases, analysis, design, coding, and testingreveal areas of
improvement in the product.Reviews also indicate those areas that do not need any
improvement. You can use software reviews to achieve consistency and uniformity across
products. Reviews also make the task of product creation more manageable. Some of the most
common software review techniques, practiced across software organizations include: a)
Inspection b) Walkthrough c) Formal technical reviews
a) Inspections
Inspections improve the reliability, availability, and maintainability of a software product.
Anything readable that is produced during software development can be inspected. The
readable material can be requirements specifications, design documents and models, test
plans, system documentation, and user aids. Group inspections enable team members to
exchange knowledge and ideas during an inspection session. Inspections can be combined with
structured, systematic testing to provide a powerful tool for creating defect-free programs. The
inspection activity follows a specified process and the participants play well-defined roles. An
inspection team consists of three to eight members who play the roles of moderator, author,
reader, recorder, and inspector. Moderator leads the inspection, schedules meetings, controls
meetings, reports inspection results, and follows up on rework issues. Author creates or
maintains the work product being inspected. Reader describes the sections of the work product
to the team as they proceed through inspection. Recorder classifies and records defects and
issues raised during the inspection. The moderator might perform this role in a small inspection
team. Inspector finds errors in the product. All participants play the role of inspectors. However,
good inspectors are those who have created the specification for the work product being
inspected. For example, the designer can act as an inspector during code inspection while a
quality assurance representative can act as standard enforcer. It also helps to have a client
representative participate in requirements specification inspections.
b) Walkthroughs
The term walkthrough refers to a group activity in which the developer of the product guides
the progress of the review. Walkthroughs are less rigorous than either formal inspections or
peer reviews in which the developer plays a more passive role. Normally walkthroughs turn into
a presentation by the author. The focus of finding errors is diluted. Such misadventures make
walkthroughs usually less successful at detecting bugs than the more formal review
methods.Two useful walkthrough approaches adopted worldwide are group reviews with
individual preparation and individual peer desk-checks. Group reviews are not very rigorous like
inspections. The group reviews involve many of the same activities and roles, such as
individual preparation and the use of a moderator and a recorder. Usually the overview meeting
and the follow-up steps are skipped and checklists are used sparingly. At the end, the readers
paraphrase their interpretation of what a program is doing.Individual peer desk-checks are
quite cost-effective. Only one person besides the author examines the material. This approach
can be more effective if there are individuals who are extremely good at finding defects on
their own.
Tip:If someone consistently finds most of the group-identified defects during the individual
preparation step, such a person is fit to perform individual peer desk-checks.
c) Formal Technical Reviews
One of the most common, yet important, software quality assurance activity performed is FTR.
This activity is performed to check errors in logic,function, or implementation for any
representation of the software.Using FTR, you can verify whether or not the software product
adheres to the defined standards. FTR is also conducted to check for consistency in thesoftware
product and audit the manageability of the software product. It includes activities such as
walkthrough and inspection.FTR focuses on specific parts of the software product, such as the
requirements components, detailed design module, and the source code listing for a
module.FTR also concentrates on the entire product. The participants in FTR are the developer,
the project leader, and all the reviewers.At the end of the review meeting, the issues recorded
are formalized into review issues list.
SQA Cost
This is the main reason why small scale companies hesitated to use SQA as part of their
development plan. SQA is a different entity that works separately from the development team.
Hiring another set of developers will mean another set of people to pay for. Developing software
takes months to take and if you are a small-scaled company you will definitely have to cut costs.
This problem cannot just be answered with more money and resources. Unfortunately, the
developers have to face the fact that SQA cannot just be implemented when everyone has to cut
costs. Only the SDLC and the testing team could compensate what the SQA is lacking.
SQA Complexity
Years ago, an application could be easily built by a single developer and let the whole world enjoy
them. Today, a highly efficient application would take years for a single developer to develop. By
the time it could be integrated and implemented, it is already outdated.
The point is, software today is very complicated that team after team will be working on developing
a single application and will take them months to develop. SQA has already been here for years and
there are models that are not as good as it was.
To answer this concern the SQA team should carefully use CASE tools. These tools could easily
summarize the functions. They ensure consistency in the evaluation of the application. That
includes documentation of every stage of development.
SQA Integration
This is one of the many concerns of the SQA models today. Because application development has
been very rapid, the standardization of the application might not be the same as it was five years
ago. The result for this is that although it has been deemed as an application developed with SQA,
the type of SQA might not live up according to what is expected.
The standardization models might ensure that the application developed ten years ago is good but it
might work today. Fortunately, this issue was answered with the development of new
standardizations. This ensured that the application was developed according to the plan and today’s
need. Today’s standards usually come with set of tools with an understanding that the application is
more complex than it was.
{mospagebreak title=Demand for Faster Development}
Defective Software
After months and moths of development and manual coding, it is very frustrating when your
application is disregarded and has to start all over again. SQA has that function to be a little bit
perfectionists and anything bad is disregarded. Considering the need to develop an application
rapidly, everyone has to complete the application really fast. Perfection and speed is always a
requirement for SQA and have been one of the biggest reasons why developers and small scale
companies have opted not to use SQA too much. They have limited themselves to code testing and
SDLC.
Today, that problem is addressed with the aid of libraries. There are many libraries today that can
easily be used to develop the application. The good thing about it is that they do not have to code.
The well known libraries can easily be used in an application and in no time the application could
be used and tested.
SQA has been tested on these applications and have passed so many times. Although there are no
frameworks that have been approved to bypass SQA, they would almost pass the SQA as soon as
they are tested. What’s lest is just the documentation and proper commenting in each function.
These are the issues that have been holding back the small scale companies. However, there are
now solutions to these concerns that small scale companies does not need to have second doubts in
using SQA for developing a good looking and well functioning application. Besides the monetary
consideration, every issue that surrounds the SQA has been addressed.
One of the biggest reasons why SQA could now be used by any company is automation. CASE
tools can easily gauge if the application has enough software or user requirements. Although there
are things that the SQA team should work on themselves, automation has helped application to be
the best it could be. Testing tools has also developed and it has not checked the codes only but also
on stresses. Anything that concerns around SQA has already been address so anyone could easily
use this service.
Managing SQA Projects
Identifying SQA Issues
Why SQA
SQA Costs and Benefits
SQA Implementation
SQA Lifecycle Standards
SQA Planning and Requirements
SQA Approaches and Methodologies
SQA Analysis
SQA Software and Tools
SQA Project Metrics
SQA Planning
SQA Principles
What is Software Quality Assurance?
Software Quality Assurance Training
.
Zero Defect Software:
The basic tenet of ZDSD is this: Maintain your product in what you believe to be a defect-free state
throughout the development process. This sounds simple, but it is a rare practice. The most common
approach is to delay major testing until the final QA phase of software development, where defects
are often discovered for the first time. Most bugs are not detected or fixed until long after their
introduction. The longer a defect remains, the harder it is to fix. On large software products, each
stage of development that a defect survives will increase the cost of fixing the defect by ten to fifty
times. A defect introduced in the design phase can cost hundreds of times more to fix in the testing
phase than it would if fixed immediately after its introduction.
By focusing on product quality throughout the development lifecycle, you will actually complete
products faster than if you didn't pay attention to quality until the end of the project. The general
rule of software quality is counter-intuitive: Improving quality actually reduces development time.
This is because you eliminate all the time spent fixing bugs and reworking code, which can account
for as much as 50% of development costs on a large project. The typical programmer writes
between eight and twenty lines of code a day; the rest of the day is usually spent on debugging.
ZDSD shortens schedules by eliminating most debugging time. Extensive studies done at NASA,
IBM, and elsewhere have shown that better QA leads to shorter schedules. An IBM study concluded
that software projects that make quality a top priority typically have the shortest schedules, the
highest productivity, and even the best sales.
SQA Techniques
The major technique that is used in Software Quality Assurance is the audit. They are used to
perform product evaluation and process monitoring. Audits are performed routinely throughout the
software development process. Their job is to look at a process and/or a product in depth,
comparing them to established procedures and standards. Audits are used to review management,
technical, and assurance processes to provide an indication of the quality and status of the software
product [2].
The purpose of using an audit is to assure that proper control procedures are being followed, that
required documentation is maintained, and that the developer’s status reports accurately reflect the
status of the activity. The SQA product is an audit report to management consisting of findings and
recommendations to bring the development into conformance with standards and/or procedures [2].
S TAT I S T I C A L Q U A L I T Y A S S U R A N C E :