Segue Quality Control PDF
Segue Quality Control PDF
Segue Quality Control PDF
QUALITY
CONTROL
Critical to the Quality of Software Products
www.seguetech.com
Version 1.0
Published 2014 by Segue Technologies, Inc.
www.seguetech.com
TABLE OF CONTENTS
4 Foreword
R
COST PE L
U A
INDIVID
DEFECT
$140 Requirements
$450 Design
$975 Coding
$7,100 Testing
$14,100 Maintenance
DIVISION OF DEFECTS
INTRODUCED INTO SOFTWARE BY PHASE
Software Development
Phases
25%
1. REQUIREMENTS 20%
2. DESIGN
Percent of
3. CODING
8 % 35 % Defects
4. USER MANUALS Introduced
5. BAD FIXES 12%
SOURCE: Computer Finance Magazine
http://qa.siliconindia.com/news/Bugs-and-Their-Impact-on-Productivity--Profitability-nid-127700.html
http://www.jrothman.com/2000/10/what-does-it-cost-you-to-fix-a-defect-and-why-should-you-care/
Chapter 1
Quality Control
and Quality
Assurance
QUALITY CONTROL
QUALITY ASSURANCE
Quality
Control
PASS
Figure 1
SOURCE DELIVERY
SMOKE TESTING
ALPHA/BETA TESTING
REGRESSION TESTING
Automation
and Manual
Testing
For Great Quality, Bring Your
SoftwareTesters in Early
Figure 3
Here are the reasons why these beliefs are simply myths.
As our new Automation Test Engineer here at Segue, I have hit the
ground running, providing automation to several projects. Rather
than replacing the Manual Testing, though, I work in conjunction
with the Quality Control team to automate the stable, high-priority
tests where appropriate.
Although that may be the case, automated test tools can fail due to
changes in the development environment from moved or renamed
fields, underlying database changes, new data constraints, or test
scripts that run too fast. For example, an automated test may try
to click on a button before the page containing the button finishes
loading.
Figure 4
Since not all projects require automation, you need to consider the
efficiency of manual tests and see how much coverage the proj-
ect entails. For instance, if the project is a small one, automation
testing should not be a requirement since you may not have the
money or resources needed to complete the project and hire an
automation specialist. However, for larger projects, bringing in an
automation expert is a necessary step in testing, even if it may be
a little costly. Using simple automated scripts instead of manual
tests with certain projects that use websites could be both cost
and time effective. This would ultimately reduce the time spent on
testing as a whole.
Figure 5
A lot of project teams spend most of their time and effort creating
a nice framework with a lot of features but forget about the tests.
Don’t let the main code become more important than the test code
since what you use to test should be the main priority. The real val-
ue of any automated testing effort is derived from the test results it
produces, instead of the quantity of automated test scripts. Addi-
tionally, you should not automate just for the sake of automation.
Consider the costs involved, the resources and stakeholders, and
the main concerns like maintainability and execution time before
adding new tests. Automated tests reduce the testing time as a
whole, but you need to comprehend that they become part of the
production code base and therefore must be maintained just like
the rest of the code, for the entire life of the application. Adding
tests that are overly complex or difficult to maintain can slow down
the feedback cycle to the team and should be avoided, which would
lessen the importance of automation.
Bugs and
Defects
Quality Control: Kills Bugs Dead
Figure 6
There are many ways of locating and eliminating the bugs in the
QC world. Some customers like to bring in a highly decorated
expert to identify and eliminate the defects. They have testing ap-
plications and software tools that will help locate the bugs from a
system. In comparison to an Exterminator, a customer will call for
Before you can track software bugs, let’s define what exactly
constitutes a software bug. Examples of obvious software bugs
are when an application crashes or displays the dreaded “404
Not Found” web page. Clearly, these are bugs, but what about
other problems such as pages that are not visually appealing, are
missing data, or are displaying the wrong content? Anything that
requires someone on the team to make a change to the software
product should be considered a bug, whether that means a change
to the code, a cascading style sheet, or the content management
system.
OK, so now what? How do you avoid getting bogged down by the
task of tracking bugs? Simplification! First, use a database to log
your bugs, preferably backed with a simple bug flow process. There
are oodles of bug tracking databases you can buy. Here at Segue,
we use Seapine’s Test Track which tracks defects, feature requests,
change requests, tasks, and more. Once you have a bug tracking
process in place, ensure that all your teams consistently follow that
process.
It’s pretty easy to remember the rule for a good bug report. Every
bug report needs exactly three things:
1. Steps to reproduce
2. The expected results
3. The actual results
RT
REPO
RT
REPO
RT
REPO
Figure 7
Once a bug is fixed, a tester verifies the fix by following the steps
to reproduce the bug. If the actual results now match the expected
results, then the test passes and the bug report can be closed. Oth-
erwise, the bug report is reopened.
Joel also says, “Remember that the only person who can close
a bug is the person who opened it in the first place. Anyone can
resolve it, but only the person who saw the bug can really be sure
that what they saw is fixed.” At Segue, we’ve found that while the
time invested in bug tracking is minimal, software quality control
and communication among teams is greatly improved.
The cost of finding and fixing defects rises considerably across the
life cycle. This is because the requirements and design specifica-
tions will require rework before changes can be made to the code.
Also, a single defect in the requirements may well propagate into
several places in the design and code and, because of that, all the
testing work done up until that point will need to be repeated in
order to reach the confidence level in the software that we require.
It is often the case that defects detected at a late stage,
depending on how serious, are not corrected because the cost
is too expensive.
Figure 9
Figure 10
Process
Improvement
Process Improvement 44
to consider other approaches?” It all just seemed to be a waste of
time and money to me.
Well, that was me as a coder, many moons ago, and I’m sure that
these types of concerns still resonate with others today. Now
I have a different perspective as an owner and partner of
Segue Technologies, and the current Director of Software
Engineering. There are a whole host of challenges that arise with
answering those core questions while still maintaining produc-
tivity and quality across the enterprise of services and develop-
ment platforms. As a business owner, I am fully cognizant of the
acronym ROI (Return on Investment) and how most decisions, if
not all, are based on what the ROI expectations tell us. This both
applies to the operations and success of Segue, and to the value
and quality of our services for our customers.
45 Process Improvement
WHAT IS CMMI?
Repeatability is the key for process success, and as they have now
become the norm and not painful, everyone is in sync with the
Process Improvement 46
expectations. Without an appraisal, it is doubtful that our organi-
zation would have implemented a sustainable and measurable pro-
cess that everyone is aware of and that drives operations. We have
seen ROI through optimization of tasks, estimation techniques,
ownership/accountability, management, and how all corporate
components play a role in quality through a consistent work-flow,
just to list a few!
Figure 11
47 Process Improvement
The more mature your organization becomes, following the CMMI
progression/capability levels, the more you become competitive
through optimization and quality. Most important to my business
and to the value I can provide my customers, is continually
improving ROI.
Process Improvement 48
What Does it Mean to be Appraised
as CMMI-DEV Level 3?
WHAT IS CMMI-DEV?
49 Process Improvement
improvement in organizations that develop products. CMMI for
Development contains practices that cover project management,
process management, systems engineering, hardware engineer-
ing, software engineering, and other supporting processes used in
development and maintenance (CMMI Institute).
Process Improvement 50
Figure 12
51 Process Improvement
Maturity Level 3 (ML 3) in CMMI-DEV includes the
following Process Areas:
Process Improvement 52
Another benefit of doing business with such a company is that they
can provide more accurate schedules and realistic timelines,
leading to more realistic deadlines for product releases. The
CMMI-DEV will therefore provide the best practices throughout
the product lifecycle to ensure timely delivery and quality
products.
Figure 12
53 Process Improvement
ABOUT THE AUTHORS
Ann Millikin is the Quality Control Test Automation Engineer for Segue
Technologies. She is responsible for creating automated test scripts
to increase the effectiveness, efficiency and coverage of your software
testing and to perform other repetitive tasks such as data loading. When
she’s not writing automated scripts using a combination of Selenium,
Java, and TestNG, Ann Millikin develops requirements detailing the
specifics for the software developers. Ann Millikin has a Bachelor’s of
Science in Management Science and Decision Support Systems from Va
Tech. She also has completed software testing and java courses.
Mike Behrmann has over 30 years of experience in software develop-
ment and design, database architectures, and emerging Internet and
enterprise-computing technologies. His IT roles have included software
engineer, database architect, and project/program manager. He began
his career as a computer programmer in the mainframe environment
during the early 1980s and transitioned through the DOS and MS Win-
dows evolution to the web development choices of today. Mike has guid-
ed the establishment of an Agile development approach, and formalized
the Requirements and Testing teams of Segue’s Software Engineering
division. His efforts in process definition and continual improvement
have resulted in Segue’s CMMI-Dev Level 3 appraisal.
Thank you for reading our eBook. We hope you found it informa-
tive and interesting. If you are interested in working with Segue,
please contact us so we can learn about your needs and plan a
development path that works for you.
Web
• Custom Application Development
• User Interface Design
• Content Management Systems
Data
• Business Intelligence
• Data Quality and Profiling
• Enterprise Data Management
Mobile
• iOS Development
• Android Development
• Mobile Web
55