Sie sind auf Seite 1von 32

A Publication

PR nit T
BE TIC ting
U
AC es
ST ES
:
VOLUME 6 • ISSUE 1 • JANUARY 2009 • $8.95 • www.stpmag.com

Know where your


project stands with
this simple tool
page 8

The Best Code Going Bananas


Is Reusable Code To Automate
Function Testing
VOLUME 6 • ISSUE 1 • JANUARY 2009

Contents A BZ Media Publication

8
COV ER STORY
The Chart That Saved The World
(and other assorted fables)
Knowing where a project stands is central to success. The Project Progress
Viewer chart might save your world (and your bacon). By Robert Vanderwall

15 Better Code is
Reusable Code
Not a fan of leftovers? You might be if
you were the cook. Here’s a lesson
about building reusable code from a
company that specializes in reusable
code competition. By Sean Campion
Depar t ments
20 Going Bananas
To Automate
Engineering Quality
4 • Contributors
Get to know this month’s experts and the
best practices they preach.

4 • Feedback
Function testing’s no monkey business, It’s your chance to tell us where to go.
nor is automating the practice. Even
more of a jungle is doing it in the 5 • Editorial
healthcare industry. By Rex Black, Between me and Big Brother, we
Daniel Derr and know everything.
Michael Tyszkiewicz
28 • ST&Pedia
Industry lingo that gets you up to speed.

25 How to Scale
Mt. Automation
As with any great and arduous journey,
29 • Best Practices
As is true in so many other areas of life,
size matters in unit testing. By Joel Shore

selecting the right tools can mean the


30 • Future Test
difference between life and death of a How appliances can help eliminate the
project. By Lawrence Nuanez “what-if” from testing. By Gregory Shortell

JANUARY 2009 www.stpmag.com • 3


Feedback Contributors

Elena and Sergey Got it Right ROBERT VANDERWALL has worked in


Regarding “Web Service, Testing the Right Way” (ST&P maga- software development, testing, planning
zine, Dec. 2008) and process engineering for nearly
What Elena and Sergey described in their article is a nice exam- three decades and is currently a software
ple to demonstrate that it can make a lot of sense to develop your engineer with Citrix Systems. In addi-
own testing tool. So did we. tion to his broad technical experience in
We have a wide range of different technical entry channels software deployment and field support,
through which client programs (we call them shells) communi- Robert holds a Ph.D. in software testing
cate with our servers, such as SOAP, Servlets from Case Western Reserve University in
and simple HTTP. It is a challenge for test- Cleveland, Ohio. In our cover story,
ing to keep up with all the different mes- which begins on page 8, Robert explains how his Project
sage formats customers want us to support Progress Viewer chart has saved countless projects from the
in order to enable communication of their scrapheap. Though the title “The Chart That Saved The
applications with our back office systems. World” is decidedly tongue-in-cheek, the chart itself can be
To name only a few examples, think of profoundly beneficial.
SOAP Document vs. RPC style. While this
is not enough, I have experienced that SEAN CAMPION is a project manager at TopCoder.com, an on-
not all of our WSDL documents can be line community of developers that compete to create software
compiled into any programming languages for implementation components as specified by customer companies. Sean is
on the client end. Some fail on .NET 1.1 environment while they responsible for the widget infrastructure at TopCoder, and for
work fine using .NET 2.0 and higher. the last three years has overseen the software development qual-
Besides the different message formats and besides the broad ity and metrics program supporting TopCoder’s virtual devel-
environments our testers are faced with, the fact that the client opment and competition arenas. Sean brings more than 16
applications can drive the business logic through various extra years of industry experience working in software, telecommuni-
parameters our interfaces provide. cations and defense, primarily technology implementation
To get a high coverage while testing the services this could projects with Fortune 500 companies and the Department of
either mean to install and maintain a farm of client applications Defense. Beginning on page 15, Sean explains TopCoder’s
(or virtual machines) and test our services using the customer method of ensuring that code will be easily reusable.
applications or develop our own test program which attaches to
the interfaces directly. As you may guess, the latter is far more “Engineering Quality Goes Bananas” is
effective. I do exactly what Elena and Sergey are doing. I devel- another light-heartedly titled story with a
oped a tool which is specific to the needs of our company and serious bent. Internationally recognized
which is capable to test most of the flavors of our services, auto- software testing consultant REX BLACK
matically and manually. That’s what made it popular to a wide takes us inside another of his real-world
range of people such as testers, developers, supporters and even projects, this one involving the design
Business Analysts for testing and analyze defects. and construction of an updated data col-
Like Elena and Sergey I generally support the idea that in lection device for the medical industry.
most scenarios automated testing on an interface level is more Contracting RBCS, Rex’s consultancy,
effective, faster, less prone to changes and provides more cov- was Arrowhead Electronic Healthcare
erage. But some will disagree for a good reason. whose VP of software development DANIEL DERR, and manag-
I found quite a bunch of issues where the results shown in er of quality assurance MICHAEL TYSZKIEWICZ, contributed to
the UI were unexpectedly different from what some services this fine tutorial on automated function testing. Daniel has
returned. It turned out that in some cases the implementation more than 10 years of software development experience, and
for the same business logic was slightly different. Instead of chan- Michael has been testing medical devices for more than seven
neling the requests to the same business function, we realized years. Their story begins on page 20.
that redundant code blocks existed and were not kept in sync
when changes were introduced. Since it wasn’t as simple as remov- LAWRENCE NUANEZ has 15 years of
ing the redundancy, it became obvious that the decision to test development and software testing experi-
and/or automate must not be made mutual exclusive for either ence. As a senior consultant at QA
UI or API. Both are important. process consultancy ProtoTest, he helps
WSDL: A client program connecting to a web service can companies implement QA and software
read the WSDL to determine what functions are available on testing practices, select and implement
the server. Any special data types used are embedded in the automation frameworks, and perform
WSDL file in the form of XML Schema. The client can then use highly complex load and performance
SOAP to actually call one of the functions listed in the WSDL. testing. Starting on page 25, he tackles
T.J. Zelger, Test lead, CORE the subject of choosing the right automa-
IT Engineer BSc, Audatex Systems, Switzerland tion tool for your project.

4 • Software Test & Performance JANUARY 2009


Ed Notes

Between Me
VOLUME 6 • ISSUE 1 • JANUARY 2009
EDITORIAL
Editor Editorial Director
Edward J. Correia Alan Zeichick

And Big Brother


+1-631-421-4158 x100 +1-650-359-4763
ecorreia@bzmedia.com alan@bzmedia.com

Copy Desk Contributing Editors


Adam LoBelia Matt Heusser
Diana Scheben Chris McMahon
Joel Shore
“Haven’t you heard? mentioned, my guess would
ART & PRODUCTION
Between me and my broth- be that you’re involved in
Art Director
Mara Leonardi
er, we know everything.” at least some of the job
That line from Steven duties listed. Of course,
SALES & MARKETING Spielberg’s 2005 block- Labor lists other similar-
Publisher buster movie War of the sounding jobs under the
Ted Bahr Worlds came to mind as I broad heading of “Com-
+1-631-421-4158 x101 wrote this. Because when I puter and Mathematical
ted@bzmedia.com
asked somewhat rhetorical- Occupations,” but only
Associate Publisher ly last month how many “computer software engi-
David Karp software testers were out neers, systems software,”
+1-631-421-4158 x102
there, it was government Edward J. Correia included “software testing”
dkarp@bzmedia.com
(a.k.a. Big Brother) that knew that the in its description.
Advertising Traffic Reprints
answer, not me. Perhaps you’re one of the 394,710
Nidia Argueta Lisa Abelson
+1-631-421-4158 x125 +1-516-379-7097 Given my occupation as editor of a “computer programmers,” or 495,810
nargueta@bzmedia.com labelson@bzmedia.com magazine for software testers, I should “computer software engineers, applica-
have known the answer cold. The ques- tions” also counted by Labor. If so, you
List Services Accounting
tion was: “How many software testers are probably do lots of software testing
Lisa Fiske Viena Ludewig
+1-631-479-2977 +1-631-421-4158 x110 there?” When asked that too, particularly if you’re
lfiske@bzmedia.com vludewig@bzmedia.com question on Oct. 31, 2008, ! working in an agile and
I estimated the number at test-driven development
READER SERVICE 250,000, but I really had According to shop. And more such iter-
Director of Circulation Customer Service/ no idea. ative testing and develop-
Agnes Vanek
+1-631-443-4158
Subscriptions
+1-847-763-9692
Or did I? the U.S. Bureau ment can only lead to
avanek@bzmedia.com stpmag@halldata.com According to the U.S. more good software.
Bureau of Labor Statistics of Labor, 349,140 “Look at how often proj-
Cover Photograph by Tom Schmucker for 2007, the latest year for ects fail. That data has not
which data is available, people in the moved,” said Thomas
there were 349,140 people Murphy, research analyst
in the United States doing United States with Gartner. “Companies
that job. The government get cranky about cost, but
says these people: “Re- were testing don’t do anything to fix it.”
President BZ Media LLC
search, design, develop, Murphy said that an
Ted Bahr 7 High Street, Suite 407
Huntington, NY 11743
and test operating systems- software in 2007. increase in use of agile
Executive Vice President level software, compilers, methods has changed peo-
Alan Zeichick +1-631-421-4158
fax +1-631-421-4130 and network distribution ! ple’s thinking when it
www.bzmedia.com software for medical, indus- comes to quality. “They have
info@bzmedia.com
trial, military, communications, aerospace, a more quality-focused system, they focus
business, scientific, and general comput- on post-mortems, learn from past mistakes
Software Test & Performance (ISSN- #1548-3460) is ing applications. Set operational specifi- and pick up on best practices and metrics.
published monthly by BZ Media LLC, 7 High Street,
Suite 407, Huntington, NY, 11743. Periodicals postage cations and formulate and analyze soft- Now they look back and say ‘how are we
paid at Huntington, NY and additional offices. ware requirements. Apply principles and going to improve and do a better job?’”
Software Test & Performance is a registered trade-
mark of BZ Media LLC. All contents copyrighted 2009
techniques of computer science, engi- What it comes right down to, he said, is
BZ Media LLC. All rights reserved. The price of a one neering, and mathematical analysis.” finding the right balance between maxi-
year subscription is US $49.95, $69.95 in Canada,
$99.95 elsewhere. Sound familiar? I would certainly mizing the quality of your product (and
POSTMASTER: Send changes of address to Software hope so, else shatter my illusions of the ROI) while minimizing the risk.
Test & Performance, PO Box 2169, Skokie, IL 60076.
Software Test & Performance Subscribers Services
perfection of government’s ability to How many testers are there in Europe
may be reached at stpmag@halldata.com or by gather information. While your indus- and the rest of the world? That’s one my
calling 1-847-763-9692.
try might not have been specifically brother knows. !

JANUARY 2009 www.stpmag.com • 5


HP Software application lifecycle: a
better fit for a new breed of applications
The most recent wave in application modernization is gaining in both speed
and strength. This modernization touches almost all aspects of the IT enterprise,
turning local and dedicated teams into virtual and distributed ones, re-shaping
applications from stove-pipe to composite entities, enriching user experience
via Web 2.0 technologies, and drawing release management away from
singular launches toward comprehensive “release trains.”
How should IT organizations manage – and maximize – these modernization
trends? HP’s approach to Application Lifecycle Management (ALM) helps to ensure
modernization initiatives remain framed by the business’s goals. Jonathan Rende,
Vice President of Product Marketing, explains how.
“The most significant application refresh the industry “The traditional view of the application lifecycle
has seen in 20 years is underway right now,” says was developer-centric and focused on the launch
Rende. “The trick is to align modernization initiatives date,” continues Rende. “But when you look
with business objectives. The complete application comprehensively at the work to build and manage
lifecycle is actually much broader than the an application, only about 20 percent of the
traditional software development lifecycle [SDLC]. time and effort goes into the development and
HP recognizes this and places more emphasis on delivery phase; the majority of the effort is spent
’upstream‘ activities, such as business strategy and on maintaining applications running in production.
planning, as well as ’downstream‘ efforts such as The true application lifecycle not only supports, but
upgrades, patches and maintenance. integrates, these key activities—everything from
the strategic value of the application, to the actual
development and testing processes, to change
management and other operational issues. The
HP approach supports all of these activities.”
Strategic End-user management Business impact
Policies Demand Portfolio Requirements Validation
control application mapping change management
points

The complete
Strategy Define Development
application Plan Launch Operate
/design /test
lifecycle
Project and
programs

Portfolio
management

Re-use
New deployment
Fix/patch Fix/patch Fix/patch

Demand
Mirror release Mirror release

Full quality process Accelerated quality process

Central to the HP approach is the concept of Equally important, the HP approach is the first to
“strategic control points” in the application truly integrate security into the QA process. Rende
lifecycle. These critical activity or decision points adds, “All too often, security initiatives have been
sanity-check downstream business and technical perceived as separate from—or even working in
consequences at every stage of the application opposition to—traditional QA goals. Managing
lifecycle. “…it might make little difference in quality along the entire application lifecycle helps
the end if the application is written in Java™ companies control costs and risks while ensuring
or .NET,” says Rende, “but it is critical that the that their software applications are aligned with
business requirements are established properly, the the business goals.”
application is validated against those requirements,
and that there is traceability to ensure that the Get the details
functionality, performance and security outlined
HP Software can help your organization get
in the business requirements is what was
beyond “quality management as usual” and
delivered in the final application.”
make the move to the real application lifecycle.
By optimizing the functionality, performance and
security of applications, IT can have a direct
impact on business results. For details about HP’s
ALM offerings visit www.hp.com/go/alm and
download the white paper entitled “Redefining
The Application Lifecycle.”

The complete lifecycle is much broader than just the SDLC…

Strategy Define Development


Plan Launch Operate
/design /test
Project and
programs

Portfolio
management

Re-use
New deployment
Fix/patch Fix/patch Fix/patch

Demand
Mirror release Mirror release

To learn more, visit www.hp.com/go/alm


© Copyright 2008 Hewlett-Packard Development Company, L.P. The information contained herein is subject to
change without notice. The only warranties for HP products and services are set forth in the express warranty
statements accompanying such products and services. Nothing herein should be construed as constituting an
additional warranty. HP shall not be liable for technical or editorial errors or omissions contained herein.
Java is a U.S. trademark of Sun Microsystems, Inc.
By Robert Vanderwall

T he goal of software development is to release a fully functional and the quality in terms of the number
of tests passed. For this project, the
product on time and with high quality. To do this, the team needs number of function points expected to
to know if and when the product is fully of quality achieved while adding features be delivered is 100. Each function point
functional and of high quality. But just to the product. And finally, the time has about 3 test cases, so the expected
knowing the current quality and func- aspect is useful for knowing how quick- number of test cases is 300. We now
tionality is not enough; you must also pre- ly features are being added and if the have a target to shoot for. The data in
dict whether you can achieve both by the required features can be added given Table 1 was collected over the first 6
release date. And knowing the function- the remaining time. weeks of the project, which was expect-
ality and quality history provides the back- ed to last 12 weeks. The Functionality
ground to make these kinds of predic- Introduction to the Chart Index column shows the number of
tions. This was the motivation for the Figure 1 (next page) shows the history function points completed at the end of
Project Progress Viewer chart. of the quality and functionality of a proj- the week. The Quality index column
The PPV rolls up three aspects of the ect. A graph provides clear insight into shows the number of test cases executed
project into a single, easily understood these factors more quickly and impact- and passed by the end of the week.
chart. The first is functionality, which fully than a table of raw data ever could. By examining the table (and doing
easily displays how many new functions To illustrate this, let’s look at a project some mental gymnastics), you’ll even-
or features are added during a given from the fictional Acme Corp. This tually see that things don’t look good for
project. The second aspect is quality; it company measures the functionality of this project. For instance, only 35 out of
is equally useful to understand the level the product in terms of function points 100 function points are finished, yet

8 • Software Test & Performance JANUARY 2009


A PROJECT
PROGRESS VIEWER
THAT COULD
SAVE YOUR
PROJECT TOO Robert Vanderwall is a
software engineer with
Citrix Systems.

JANUARY 2009 www.stpmag.com • 9


TESTER’S ATLAS

we’ve burned 6 out of 12 weeks allowed. in a weighted sum. FIGURE 1: HISTORY OF THE PROJECT
You can gain insight by looking at this The quality index
table, but it requires a good bit of men- (QI) is the measured
tal effort, especially when there are more quality. In the example,
numbers, the numbers are larger, or they the only contributor is
don’t fall on nice clean boundaries, like the number of test cas-

Functions
35/100. es that passed. Factors
Now let’s put the same data into visu- such as code coverage,
al form. I’ll use the PPV chart to plot number of unit tests, or
the quality and functionality of the prod- failure-free operating
uct over time. The x-axis represents hours may also be con-
sidered. Again, multiple
TABLE 1: RAW DATA FOR THE
ACME CORP. PROJECT factors can be combined
in a weighted sum. Note Tests Passed
Week Functionality Quality that quality is a subjec-
index index
1 10 6 tive thing to measure, and whatever con- sion. Again, this tool is for understand-
2 14 24 tributing factors are chosen will likely be ing the general direction of the project,
3 20 48 argued or dismissed. The point is that this not for precise control.
4 26 72 tool is not a precise instrument, but rather Another consideration with the target
5 28 102
6 35 126 a visual aid that helps provide insight into is that it is likely to move. New feature
12 (Target) 100 300 the direction of the project. requests, market demands, and tech-
For the chart, the numerous meas- nologies all affect the target. For this rea-
functionality delivered by the project; it urements of FI and QI are connected in son, a revised target should be determined
is calculated by summing the weighted temporal sequence to produce the pro- periodically. It’s convenient to track the
contribution of various factors. In this ject’s path. Each diamond on the line motion of the target as well as the current
example, the only contributor is the represents data for the week. It becomes target so that it’s clear how it migrates.
number of function points. The y-axis obvious that the second week was a slow The light green circle in Figure 2 shows
represents the quality of the product week, relative to others. This observa- the original target and it becomes clear
being delivered. It is also calculated tion could prompt further questions and when feature creep affect the project.
using a weighted sum of several con- investigation. If cost were irrelevant, the target
tributing factors. In this case, the only The Target is shown as a green cir- would be the entire area with function-
contributing factor is the number of test cle and represents the set of acceptable ality larger than some minimum and
cases run. solutions. These solutions, (i.e., possible quality greater than some other mini-
At a glance, you can easily see the same project outcomes) satisfy the marketing mum, (i.e., the upper right quadrant of
information that required some effort to requirements for functionality and the the graph shown in pale green).
derive from the table. Even to the unini- customer demands for quality. The final However, solutions that are to the right
tiated, the graph clearly shows that the values for all the contributing factors of and above the target are achieved at
project is behind schedule. Understanding must be understood from sources such higher cost. That is, if a project ends up
the specifics of the message may take some as requirements, marketing and project in the upper right region, but passes the
explanation but once that is understood, management organizations. Once the target zone, it will have achieved the
even a quick glance at the chart yields a needed values for the contributing fac- desired goals, but perhaps will have wast-
wealth of information. tors are known, the target is determined ed money by producing functionality or
using the same weighting formula that achieving quality that is not necessary
Project Data Line was used to find the path of the project. to the customer.
The project’s Current Data (the dark, Notice that the target is
FIGURE 2: THE MOVING TARGET
solid line) shows actual measurements not a point in space,
made at multiple times in the past. but rather an area of
Each week, for example, the function- extent. This indicates
ality index and the quality index are that many project
calculated based on the contributing results are acceptable
factors. The functionality index (FI) is solutions. It’s possible
the delivered functionality and is the to release a viable prod-
weighted sum of various contributing uct with a few less or a
factors that can include counts such as few more features and
delivered function points, as in the still satisfy customer
above example. While a function point demands. There are
count is arguably the most reliable subtleties and com-
functionality measurement, other fac- plexities associated with
tors may include the number of knowing which features
screens, the number of defect fixes, or are really critical, but
performance improvement metrics. that’s the topic of a
The multiple factors can be combined whole different discus-

12 • Software Test & Performance JANUARY 2009


TESTER’S ATLAS

FIGURE 3: PATH PROJECTIONS respect to time. The ed by the two cones, each cone showing
velocity of a project can a different scenario. The lower cone indi-
be found by determin- cates a situation in which the functional-
ing how much progress ity has been achieved, but the quality has
has been made in a giv- not. In this case, more testing will likely
en time period. The be required and more effort will need to
amount of time be spent repairing defects before the prod-
remaining for the proj- uct is considered ‘deliverable.’ Of course,
ect to complete is mul- market forces, windows of opportunity
Projection Lines and the tiplied by the previous velocity, yielding and customer demands need to be con-
Predicted Path Cone the line length. That is, it shows how sidered before using this chart to delay a
The predicted path cone is similar to much progress is expected in the product.
that used in hurricane tracking charts. remaining time. The upper cone shows a situation in
It tells us the expected path of the proj- The leading edge is a line between the which the functionality has been
ect with a given confidence. In the case high and low boundaries. This leading achieved and the quality has been sur-
of the PPV, we have a 90 percent confi- edge indicates a span of likely outcomes passed. It’s likely that the project expend-
dence that the project will remain with- and completes the cone. This completed ed unnecessarily and overachieved qual-
in the cone. The cone consists of four cone now represents, with 90 percent con- ity at possibly little benefit. If there had
parts: fidence, the possible end positions of the been a percieved benefit to the higher
1. Expected Line project after the remaining time has quality index, then the goal would like-
2. High Edge elapsed. ly have been set higher to reflect that.
3. Low Edge Throughout the life of the project, as On the other hand, if this higher quali-
4. Leading Edge new data is gathered, all of the projec- ty was achieved at the same cost, this
The Expected line, in solid cyan, tions and the resulting prediction cone could be indicative of some process
shows an extension of a best-fit approx- should be continually recalculated. Using improvement.
imation (linear regression) of the data. a spread sheet makes this work less In both cases, you can get some deep
In the example, the first six weeks saw tedious. insight into the workings of the project,
the functionality grow to 35, yielding a but this insight cannot be found by look-
rate of 5.8 per week. During the same Line Types ing at the PPV in isolation. You’ll need to
time, the quality index grew to 126 for Since we now understand how the PPV interpret the chart in the full context of
a rate of 21 per week. The expectation for was constructed, let’s look at what we the project.
the change in functionality can be found can learn from the shape of the project Figure 5 shows two more situations,
by multiplying the remaining time, 6 path. Figure 3 shows three different in both of which the quality objective was
weeks, by the growth rate of 5.8 per project paths. The path on the
FIGURE 4
week. The prediction, that is, the expect- left can often be seen in agile
ed future value, for the functionality projects. In this path, the func-
index can then be found by adding this tionality and the quality grow
change, 35=6*5.8, to the current func- together. At every point in time,
tionality of 35 for a value of 70. Doing the product is ready to go, albeit
the same calculation for the quality at reduced functionality. The mid-
yields an expected future value for the dle path shows an iterative project
quality index of 252 = 126 + 6 * 21. The that adds some functionality, then
expected path is the line from the cur- tests that functionality, and
rent position to this expected future repeats. The last path shows a
position. The expected line can also be waterfall project, in which the
calculated by finding the slope of the majority of the functionality is
curve, but we will stick with this method added during development, and
and use the slope to find the other the product is then handed off to
edges. a test organization to test.
FIGURE 5
When we calculate the slope, it is pos- The insight that the PPV can
sible to calculate a range of slopes from provide regarding the shape of the
the data and create a confidence interval line is in confirming your expecta-
for the path. The High edge is shown in tions of the project processes. For
dashed red and the Low edge is shown in example, if you employ an agile or
dashed fuchsia. These are the high and iterative process and the progress
low ends of a 90 percent confidence inter- path is similar to that of the water-
val. (See the side bar for a practical sug- fall, you know something is amiss.
gestion.) The two edges form the bound- Given an understanding of the
aries of a cone within which we expect target and the predicted path cone,
the project to progress. we can now understand the possible
The length of the edges is deter- scenarios and how to interpret them.
mined by the velocity of the project with In Figure 4, two scenarios are depict-

JANUARY 2009 www.stpmag.com • 13


TESTER’S ATLAS

F
achieved. The left cone shows a situation one is to determine what factors con-
in which the functionality was not tribute to your functionality and to UZZY MATH
achieved. The product meets the quali- your quality. Typically, keep this as sim-
ty considerations, but does not provide ple as possible, but no simpler. Often,
sufficient functionality to many factors are counted When finding the high and low edges
please the customer. ! and great pains are taken of the path cone, some fancy sta-
Competing products may to get the numbers col- tistical calculations are required.
overtake this product in Stick with a lected, only to discover However, it turns out that simply
the market by offering that just one or two of the using 0.9 and 1.1 as slope multi-
more features. Again, if somewhat flawed factors carry the bulk of pliers works surprisingly well. This
the customer is demand- the influence. For the doesn’t provide the mathematical
ing a product immediate-
ly, it may be better to deliv-
graph rather functionality index, I’d
recommend using func-
rigor needed in academia, but it pro-
vides insight that’s accurate enough
er a less functional prod-
uct now than a more func-
than flip-flop- tion point counts, if that’s
available. Other useful
for most enterprises.
Remember, this graph is not a
tional one later. things might be features,
The cone on the right
ping around a feature points, story
precision instrument; it’s intended
to be more like a GPS map on a
reflects a situation in points, use cases, or user
which the quality was meaningless one. scenarios. In short, what-
boat. It will give you a good indi-
cation that you’re on track or drift-
achieved and extra func- ! ever you use for burn-
ing off track. From that, you can
tionality was delivered. down charts or to measure
make corrections as needed to get
The extra bells and whistles potentially progress can likely be used as a con-
reflect a condition of waste. The cus- tributor in the functionality index. If back on course.
tomer neither asked for, nor expects, this multiple factors are going to be used,
additional functionality. In some cases, the functionality index would simply counts come in, but it’s typically suffi-
this would be a pleasant surprise to the be the weighted sum. cient. Other measurements you may
customers. In others, it could indicate I recommend that the contributors consider are unit test count, code cov-
overspending, later delivery, unnecessary to the quality index be equally simple, erage, and mean time between failures.
complexity and/or additional training. such as the number of test cases passed. Again, if more than one factor is con-
If the message of the graph is a nega- The downside of this measure is that you sidered, the quality index is the weight-
tive situation, there are several ways to may not know the total number of test ed sum.
address it, as shown in Table 2. cases, and thus the target. I have used Once you agree on the factors that
with some success estimates of the test you’ll consider for the functionality and
Building your own PPV case count based on the number of fea- quality indexes, you can find the target.
Now that the PPV is understood, how tures and function points. The target I wouldn’t suggest making changes to
can we build one for your project? Step tends to move a bit as the actual test case the contributors or weights, as that real-
ly confounds the interpretation. Stick
TABLE 2: PROJECT REPAIR PLAN with a somewhat flawed graph rather
Observation Possible Corrective Actions than flip-flopping around a meaning-
less one.
Too short for target If the cone simply falls short of the target, you can extend the sched- When you have the two indexes and
ule or to add resources.To make this call, you’ll need to weigh up the target, you can begin building the
things like resources, budget and pending projects. PPV. I use a spreadsheet since it has a con-
Too long for target If the cone extends far beyond the target, it may be possible to pull venient way to manage tabular data, per-
back the release date. form the calculations and render the
graph. You can grab my template from
Undershooting If the cone shows that the functionality is met, but the quality is tinyurl.com/5trzox.
quality lower than desired (the lower cone in Figure 4), then it might be The Project Progress Viewer provides
helpful to allocate resources to the quality effort. an intuitive way to gain insight into the
Overshooting quality If the cone shows that the functionality is met and the quality goal path your project is taking. You can use
will be surpassed (the upper cone in Figure 4), options include scal- it to confirm assumptions about the
ing back quality activities (freeing up resources for other activi- processes, to ensure the project is track-
ties) or releasing the product and marketing its superior quality ing, and to ensure you’ve got the desired
as an advantage. balance of function and quality. This
chart, like any other, is not a replacement
Undershooting If the cone shows that the functionality is not met (the left cone for all other tools. It is an additional tool
functionality in Figure 5), you might consider scaling the functionality goal or in your toolbox. When you combine proj-
adding resources to development. ect milestones, burn-down charts, defect
Overshooting If the cone shows that the functionality is exceeded (the right cone graphs, and the PPV, you can put togeth-
functionality in Figure 5), you might either reallocate resources or market the er a very compelling story of the project,
more feature-rich product as an edge on the competition. and more importantly, gain the insight
needed to take action. !

14 • Software Test & Performance JANUARY 2009


Better Quality
Through
Software Reuse

By Sean Campion

A ww, leftovers again?


The simple principle of
software reuse can have a
profound impact on quality.
Enterprises are adopting an approach called
Component-Based Software Engineering
(CBSE) to decompose an application into
individual, standalone components. Each
component is developed independently,
and often in parallel, then re-assembled into
a fully functioning application built of re-
usable parts—or components. These can be
leveraged as proven building blocks for
future software builds as well.
While the cost and time savings achieved
through a reusable CBSE program gain the
most attention, the approach is having an
equal or even greater impact on increas-
ing application quality—both directly and
indirectly.
The benefit of CBSE is strongly reflected
in new and innovative software technologies,
but it is also based on a long history of work
in modular systems, structured design, and
most recently in object-oriented systems.

Sean Campion is project manager at TopCpder,


which organizes code development competitions.

JANUARY 2009 www.stpmag.com • 15


CODE LEFTOVERS

CBSE extends these well-established ideas nization’s library. This has a number of Unit-Testing Components
by emphasizing the componentization of positive effects: Another advantage of component use is
pieces of the application system and the • Application timelines are reduced that white-box and black-box testing are
controlled assembly of those pieces due to the reuse, as less application easy to build and include with the com-
through well-defined interfaces. code must be developed. ponent. It’s usually best to have the
• Application costs are decreased component developer build the white-
It Starts With a Component because reused components have box tests (since they know the inside
In essence, a component is any inde- already been paid for. workings of the component best) and
pendently-usable piece of software. • Application quality improves as more have a different developer write the
Almost every developer today is reusing a focus is spent on newly-developed black-box tests based on the component
component at some granularity, such as code, and a higher percentage of the specification. Ensuring the component
Hibernate, Spring, MS SQL and so on. final application code consists of well- is able to pass both the white- and black-
The reuse of these high-level compo- tested, proven components. box tests is a good measure of quality.
nents is so ingrained that when choosing • As the library of reusable components What’s more, packaging the unit tests
a database to use for a new application, grows, so does the percentage of any with the component provides a built-in
rarely does one propose the option of new application consisting of pre- regression test suite for any future
building their own rela- built components. updates.
tional database. ! An important addition- Unit tests should be further broken
It is important to define al aspect of a reusable com- down by type, which might include:
the granularity of the com- The component ponent is packaging. Since • Functional
ponents used in building these components will be • Stress
our applications; this level size we recom- distributed far and wide • Failure
of granularity will become and used by a group other • Accuracy
a general target during mend for most than the one that built Doing so ensures that each of these
application decomposi- them, it is critical that the test categories is thoroughly covered.
tion. There is a ‘just-about- use is an average distribution contain full Separated tests also help keep each indi-
right’ granularity size. design and development vidual test focused on one item; having a
Make the components too of 700 to 800 documentation, as well as single test cover multiple categories makes
small and you might incur the binary for the compo- it harder to determine the actual cause
the overhead of managing lines of source nent and for its testing of the failure by just looking at the test
many very small compo- suite. Lastly, the package result logs.
nents. Make the compo- code, and should include the source Another aspect of unit tests is to
nents too large and risk and test code itself, which include a code coverage tool and to
frequent updates and roughly 3,000 will allow developers to require a minimum coverage. A mini-
unused code. recompile and deploy to mum of 85 percent is a good standard, as
The component size we
recommend for most use is
lines of test code. their specific environments.
The inclusion of quali-
far as providing adequate coverage. While
requiring higher minimums might seem
an average of 700 to 800 ! ty documentation is a key preferable, there are cases when the
lines of source code, and factor in a CBSE reuse amount of effort required outweighs the
roughly 3,000 lines of test code. This size program. While leveraging pre-built benefits, so determine what level fits best
is big enough to encapsulate sufficient components will reduce the application for your organization’s use.
functionality for most standalone com- timeline, there is a small trade-off in Coverage alone only tells us whether
ponents, yet is small enough to allow a what is called “searching time,” which a line of code was executed or not, not
single individual, such as a developer or is the amount of time it takes an archi- how well it was tested. Combining cov-
reviewer, to fully understand it. tect or developer to search for, find and erage with the other separate testing cat-
Building reusable components estab- understand the component enough to egories will increase the likelihood that
lishes the bar for discrete quality and a determine whether it is suitable for use the code is not only exercised, but exer-
positive feedback cycle that continuous- in their application. The larger the com- cised appropriately.
ly works to improve and maintain over- ponent library is, the more likely an
all quality. existing component exists for reuse, but Mind Your Environments
the more time may also be spent look- Ensuring the component will run in var-
Perseverance Begets Reuse ing for it. ious environments is perhaps the trick-
Starting a reuse program means that Keep in mind that the documentation iest part of building a Component-
your first few applications become the must target two audiences. First, consid- Based Software Engineering model.
test beds for identifying functionality er the architect who is looking to use the Contrary to developing for one-time
that is suitable to be componentized component in their design and must use, building a component for true
and engineered for future reuse. These understand the component from an inter- reuse makes it difficult to predict the
first applications themselves are not face/design/function point of view. Then, particular environment in which any
likely to benefit from reuse, but subse- documentation must consider the devel- given component will be used. The envi-
quent applications will gradually reap oper who will be adding the component ronment consists of the operating sys-
the gains as more and more compo- to the overall application, and therefore tem, hardware, software, character sets
nents are built and added to your orga- must understand the specific usage. and many other items on the target sys-

16 • Software Test & Performance JANUARY 2009


CODE LEFTOVERS

TABLE 1 The number of defects per thousand On the flip side of this situation are the
lines of code (defects/KLOC) is still the benefits that come from tracking defects
Application 1 Application 2 standard measure of software quality. It is at the component level across multiple
Component A X a highly useful metric and should be applications. In the previous table,
Component B X X aggressively tracked and measured. But a Component B has two defects, one that
CBSE program introduces two addition- affects Application 1, the other Application
tem within which the component will al metrics, and throws a curve into how to 2. If defects are tracked solely at the appli-
operate. track defects at the application level. cation level, it may be difficult to cross-ref-
The solution to this is to test the com- The first new metric to track is the erence all of Component B’s defects across
ponent in the target reuse environment defect density per component. Using this any application. Once a defect is found in
as soon as possible. This is another advan- metric normalizes the component meas- a component via its usage in one applica-
tage of building reusable components; ures vis-à-vis lines of code. This provides tion, the defect must be tested for in all
previously-built components are already a way of comparing components imple- other applications that use it to determine
available as the application’s initial archi- mented in different languages. the impact.
tecture phase is in progress, providing A second new metric is the number of
the opportunity to test them early on in functional revisions per component. A The CBSE Bottom Line
the new environment and giving suffi- functional revision is when the compo- The bottom line is that to have a suc-
cient time to fix any issues. nent is altered to add new functionality, cessful CBSE reuse program, you must
to remove unnecessary functionality, or also have a solid, matrix-based defect
Component Design to significantly alter existing functionali- tracking mechanism.
and Peer Review ty. This metric is important in determin- Components, by virtue of their small
The basic premise of peer reviews is to ing the effectiveness of the upfront engi- size and complete packaging, facilitate
have someone other than the authors neering done to make the component systematic implementation of industry
examine the work closely for issues. The generic. Revisions to remove functional- QA best practices of unit testing and peer
benefits of peer reviews are well docu- ity indicate a tendency to over-engineer reviews. The widespread adoption of
mented, and it is always better to have a the component design. An over-engi- Component-Based Software Engineering
co-worker find a bug in the code than neered component costs more to devel- affects application quality by allowing
the customer. Frequent peer reviews op but does not provide any additional more time to be spent on new code devel-
conducted in all stages—from docu- ROI for that additional cost—and may opment, and by higher percentages of an
mentation, design, development and cost more over time to maintain the application that’s built with hardened
testing—will uncover more defects than unneeded functionality. components.
testing alone. Revisions to add functionality indicate The key to reaping the benefits of
Software components are ideal for under-engineering up front, resulting in reusable components is to implement
code reviews. Their small size and self- lost opportunity for additional, needed the complete program: library, peer
containment means a reviewer can easi- functionality with minimal additional cost. reviews, quality measurement, unit test-
ly and quickly grasp the intent of the A revision to modify existing core func- ing, packaging, and defect tracking.
entire component, and can invest a finite tionality indicates the component was not While any one of these will provide ben-
amount of time to accomplish the review. properly designed to carry out its func- efits, only the synergistic combination
All facets of a component should be tion in the first place. of them all will afford rewards greater
examined critically during review, and Reusing components across multiple than the sum of the parts—increasing
this includes all documentation, test cas- applications can throw further compli- software quality while driving down cost
es, and packaging structure as well as cations into measuring defect rates at the and timelines. !
the actual source code itself. Using a application level.
detailed checklist to accomplish the Looking at Table 1, the situation may REFERENCES
review ensures not only that all these arise where Component A has a defect • Wiegers, Karl. “Seven Truths About Peer
Reviews,” http://www.processimpact.com
items are looked at and verified, but pro- that affects the functionality of Application (Cutter IT Journal, July, 2002)
vides a means of recording and track- 1, but not Application 2. This could occur • Brown, Norm. “Industrial-Strength Management
ing the results. Possibly the most impor- for a number of reasons, for example Strategies,” www.stsc.hil.af.mil/crosstalk/1996/08/
tant step of a code review is a follow up Application 2 may not use a method that industri.asp (STSC, Aug 1996)

review to ensure that all documented Application 1 does, or the range of values
issues are corrected. Finally, the results from Application 2 is smaller than that
of the code review and all follow-ups used by Application 1, or
should become part of the component Application 2 may run in
documentation and included in the a different environment.
package distribution. When measuring the
defects for Application 2,
Measuring Quality, Judging Success we do not want to include the
To ultimately determine the success of a defect that applies to
reusable CBSE program in terms of Application 1 only. This fine-
quality means measuring defects. grained defect tracking requires
Measuring defects in this environment a more sophisticated, matrix-based
is not as straightforward as it may seem. defect tracking system.

JANUARY 2009 www.stpmag.com • 17


Attend
FutureTest 2009

FutureTest is

a two-day conference

created for senior Great Sessions! Great Speakers!


software test and
Virtually Stress-Free Testing Testing RIAs in a Flash
QA managers. In the Cloud By Kristopher Schultz
By Jinesh Varia Resource Interactive
FutureTest will
Amazon.com Leader of Rich Internet Application
Technology evangelist Practice Group
provide practical,

results-oriented
The Cyber Tester: Web Bloopers—Avoiding
sessions taught by Blending Human and Machine Common Design Mistakes
By Paco Hope By Jeff Johnson
top industr y Cigital UI Wizards
Technical manager Principal consultant, respected in the art of
professionals. at software security consultancy human-computer interaction

Enterprise Security Managing


You Can Take to the Bank The Test People
By James Apple By Judy McKay
Bank of America Quality architect and author of
Senior technical manager of Application “Managing the Test People”
Development Security Framework program

Testing in Turbulent Times


Embed Security in QA by
By Robert Sabourin
Breaking Web Apps
AmiBug.Com
President, development, testing and By Ryan Townsend
A BZ Media Event management consultancy Time Inc.
Lead security engineer

How HBO Covers


Its Digital Assets
By Jaswinder Hayre
HBO
Program manager of application security
5 Great Reasons to Attend FutureTest 2009
1. You’ll hear great ideas to help your
company save money with more
effective Web applications testing, quality
3. You’ll listen to how other
organizations have improved
their Web testing processes, so you can
5. You’ll be ready to share practical,
real-world knowledge with your test
and development colleagues as soon as
assurance and security. adopt their ideas in your own projects. you get back to the office.

2. You’ll learn how to implement new


test & QA programs and initiatives
faster, so you save money and realize the
4. You’ll engage with the newest
testing methodologies and
QA processes — including some you
Add it all up, and it’ s wher e you want
to be in Febr uar y.

benefits sooner. may never have tried before.

JUST TWO
POWER-PACKED
DAYS! REGISTER by
January 30 for
EARLY BIRD RATES!
SAVE $200!

February 24 –25, 2009


The Roosevelt Hotel
New York, NY

www.futuretest.net
Engineering Quality
Goes Bananas
How a ‘Dumb Monkey’ Helped One
Company Automate Function Testing

By Rex Black, Daniel Derr and Michael Tyszkiewicz reducing test cycle duration
through 24x7 testing

A rrowhead Electronic Healthcare has been creating eDiarys on


handheld devices since 1999. With the devices, Arrowhead helps
• Provide auditable documentation
• Handle any screen flow or translation
without custom test scripts (i.e., be
pharmaceutical research and marketing The most important quality risks we trial-independent)
organizations document information wanted to address were: • Be easy to implement
about how their products are being used • Reliability • Be cost effective
in patients’ homes. • Translation completeness This is a case study in how we reduced
Arrowhead’s third-generation eDiary • Functionality of UI our risks and achieved our test automa-
product is called ePRO-LOG. Its primary • Input error checking tion objectives in just a few months on a
design goal was to be able to rapidly deploy • Verification of requirements total outlay of $0 for tools. Now, it wasn’t
dairies used for data collection in clinical The automation tool needed to do the as if we started with zero cost as a target.
trails and disease management programs. following: Often, buying tools is the most cost-effec-
A typical diary might include 100 forms • Address defined risks tive solution, so we evaluated test automa-
translated into 15 or more languages, and • Produce accurate form-flow diagrams tion tools as a potential solution. Since we
used in several locales. To handle the large • Reduce tedium and opportunity for were developing custom software on a
number of software builds and configura- error in manual testing hand-held device, we found the commer-
tions that resulted. the team needed an • Save effort associated with manual cial options limited. ePRO-LOG is highly
automated test tool to address potential testing for these risks configurable and optimized to make
risks and to automate common tasks. • Improve time-to-market by diaries easy to produce. The drawback of

20 • Software Test & Performance JANUARY 2009


our approach was that our widgets were Every test automation tool tends to have Monkey also can perform long-term reli-
non standard, and are therefore not han- its own terminology, so let’s start by intro- ability tests, which allow us to accumulate
dled gracefully by common testing tools. ducing some terms, shown in Table 1(next as many hours of testing as time and CPU
We also needed an easy way to generate page). cycles permit. By continuously stressing
screen flows and compare those with our the application, potential defects are more
requirements. The Monkey’s Talents likely to be discovered.
We had hit a dead end. We couldn’t The Monkey improves reliability in our Such long-term reliability tests are ide-
find a commercial tool to meet our needs application by randomly walking al for testing after deployment, and require
and human labor was cost prohibitive. through the diary while trying different little human intervention. This allows our
That’s when the monkey came into the input combinations. The use of random products to be continually tested while
picture; a Dumb Monkey to be precise. events allows the Monkey to be diary- testing staff focuses on new development.
Why is the Monkey dumb? Because the independent and generally does not The Monkey tests more input combi-
architecture is so simple. The Monkey is an require any customization (some cus- nations than a reasonably-sized manual test
unscripted automated test tool that provides tomization was required to successfully team could, thus increasing confidence and
input at random. To minimize cost, effort, login, otherwise the device would lock us decreasing the likelihood of undiscovered
and time required for development, we out after too many attempts. Other spe- defects. In addition, the screenshots,
implemented the Monkey in Perl under cial situations may also require cus-
Cygwin. We also took advantage of our appli- tomization). Both at Arrowhead Electronic Healthcare, Daniel Derr
is VP of software development, and Michael
cation’s cross-platform functionality and per- During the Monkey’s walk, it is con-
Tyszkiewicz is manager of QA. Rex Black is president
formed the bulk of our testing on a Windows stantly looking for broken links, missing of RBCS, a software test and development consultancy.
PC. This allowed us to test more rapidly. images and input validation errors. The

JANUARY 2009 www.stpmag.com • 21


QA MONKEY BUSINESS

TABLE 1: MONKEY-PEDIA TABLE 2: APE ROI


Chef Testability features added to the application to make the Manual Automated
Monkey Chow Test Plan Prep-
aration Time (hrs) 225 42
Monkey Chow Human readable description of the screen produced by the
Test Execution per
application in real-time cycle (human hrs) 7 3
Eat Monkey Reads in the Monkey Chow and creates a data structure suitable Number of Cycles 35 35
for the Think Monkey
Total Effort (hrs) 470 147
Think Monkey Takes in the data structure from the Eat Monkey and decides
Savings (hrs) 323
what action to take next
Watch Monkey Captures screen shots of ePRO-LOG as the Monkey operates
Monkey Chow and Monkey Droppings cre-
Push Monkey Interacts with the hand-held device’s user interface. ated during the test process are saved in
The Push Monkey creates custom Windows messages and an auditable format. Auditable test results
sends them to the ePRO-LOG application. (Postmesg from are important in environments that are
http://xda-developers.com/ was used to send messages, however subject to FDA regulations.
any method of sending a Windows message should work. Diaries are typically translated into
XDA tool chain was chosen since it works for both Windows many languages. For each language, a
Mobile and a Windows PC.) translation tester must verify all screens.
Monkey Droppings Screen shots and human readable log files produced by the Screenshots captured by the Monkey are
monkey to keep track of where it’s been, what it’s done, and automatically inserted into a Word-for-
what it’s seen matted translation verification document.
This document allows translation testers
Chunky Monkey Encapsulates the Eat Monkey,Think Monkey, Watch Monkey to verify the content and completeness
and Push Monkey, and produces the Monkey Droppings of the screens. This approach is more effi-
Presentation Transforms monkey droppings into graphical flow charts cient and less error-prone than navigat-
Monkey ing to the ePRO-LOG screens manually
dot file A human readable data file used by the GraphViz dot application on a device.
to generate abstract graphs (http://www.graphviz.org/)
Gifts of the Monkey
While using the Monkey over a four-
FIG. 1: THE MONKEY’S BUSINESS month period, we noticed significant
time savings, mainly in the areas of diary
testing, screenshot capturing, and trans-
lation verification. We also enjoyed the
benefits of long term reliability testing
ePRO-Log Chunky Monkey and faster cycle times.
The initial development of the
Events Monkey took approximately 120 hours of
GUI Push Monkey
a programmer’s time over a three week
period. This is an upfront cost and does
not have to be repeated for each diary.
Chef Screen Shots Watch Monkey
The Monkey allows the compression of
two calendar days of functional testing into
a single half-day. This allows for flexibili-
Think Monkey ty and changes during the test period.
File System The time saved doing translation ver-
ification for a single diary created in 14
Monkey Chow Eat Monkey different languages was approximately
323 hours (see Table 2), obviously sur-
Presentation passing the 120 hours required to devel-
Monkey op the Monkey. Since the Monkey is diary
Monkey
independent, our return on investment
Droppings
MakeDot will continue to grow the more we use the
Monkey.
Flow Diagrams
Graphviz Anatomy of the Monkey
The monkey is a collection of Perl and
other scripts (see Table 3), open source
tools and minor testability enhance-
ments to ePRO-LOG.

22 • Software Test & Performance JANUARY 2009


QA MONKEY BUSINESS

TABLE 3: SIMIAN SCRIPTS LISTING 2


Storing image as: ../images/FormLogin.png
chunkyMonkey.pl A Perl script that implements the Eat,Think,Watch, and event::name="FormLogin":type="GraphicButton":
name="Button1"
Push Monkeys. This script also creates the Monkey event::name="FormLogin":type="GraphicButton":
Droppings. name="Button1"
event::name="FormLogin":type="GraphicButton":
launchMonkey.sh A Bash script used to invoke chunykMonkey.pl using the name="Button1"
monkeyChow.txt as input, and redirecting output to event::name="FormLogin":type="GraphicButton":
monkeyDroppings.txt name="Button1"
event::name="FormLogin":type="GraphicButton":
makeDotFile.pl A Perl script which processes monkeyDroppings.txt, and name="ButtonOkay"
creates a GraphViz dot file Storing image as: ../images/FormHome.png
event::name="FormHome":type="GraphicButton":
makeDot.sh A Bash script which calls GraphViz (dot.exe) to convert name="ButtonTools"
a dot file into a BMP, GIF, JPEG, PDF, PNG, or SVG file Storing image as: ../images/FormTools.png

Collectively, the ePRO-LOG applica- from the Chunky Monkey. The output
tion and the scripts described in Table consists of the current form, whether a LISTING 3
3 implement the system described in screen shot was taken, and any actions digraph studyFlow
{
Figure 1. taken by the Think Monkey. In the exam- FormLogin [label = "", shapefile =
Let’s take a look at examples of the ple in Listing 2, we started on the login "images/FormLogin.png"];
three main types of documents that make screen, pressed Button1 four times, hit FormHome [label = "", shapefile =
"images/FormHome.png"];
up the Monkey’s anatomy. ButtonOkay, then selected ButtonTools
FormTools [label = "", shapefile =
Monkey Chow describes the form and on FormHome. Screens shot where also "images/FormTools.png"];
all of the widgets belonging to the form. taken along the way.
Figure 2 shows some examples of Monkey This data can also be used to create a FormLogin -> FormTools;
FormLogin -> FormHome;
Chow corresponding to FormHome. dot file for the Presentation Monkey. }
White space was added to make the data FormTools was added to the dot file for
more readable. purpose of illustration. Listing 3 shows
To use this data to hit ButtonTools, we a sample GraphViz dot file.
would pass in the form handle=
"0x001502FA", lparam="0x001304A8", FIG. 2: THE MONKEY’S GUTS
and controlId="0x5" to the Push Monkey.
Additional data is used to provide insight
to the Think Monkey and to make the
Monkey Droppings more descriptive.
The subroutine in Listing 1 was
extracted from the Push monkey. The
print statement at the end will become
a single entry in the Monkey Droppings.
Monkey Droppings record the output

LISTING 1
sub hitGraphicButton
{ ready:
my $formContainer = shift;
my $widgetParams = shift; form:handle="0x001502FA":objectGuid="21":type="1":
name="FormHome":x="0":y="0":width="320":height="320":
my $handle = $formContainer->{"params"}->{"handle"};#
form:handle="0x001502FA":
my $message= "0x000111"; # widget:lparam="0x001A0496":controlId="0x1":objectGuid="22":type="6":
WM_COMMAND message name="ButtonExit":x="0":y="232":width="75":height="34":formGUId="21":
my $wParam = $widgetParams->{"controlId"};
# controlId="0x5"
my $lParam = $widgetParams->{"lparam"}; # widget:controlId="0x2"
lparam="0x001304A8":
widget:lparam="0x001804A4":controlId="0x3":objectGuid="24":type="6":
my $result = `postmsg.exe -p -h $handle $message
$wParam $lParam`; name="ButtonMainMenu":x="20":y="105":width="200":height="30":formGUId="21":

print "event" . widget:lparam="0x000B0408":controlId="0x4":objectGuid="25":type="6":


':name="'.$formContainer->{"params"}->{"name"} .'"'.
':type="'.'GraphicButton'.'"'.':name="'.$widgetParams- name="ButtonSendData":x="20":y="140":width="200":height="30":formGUId="21":
>{"name"}."\"\n";
# widget:lparam="0x001304A8":controlId="0x5":objectGuid="26":type="6":
event:name="FormHome":type="GraphicButton":
name="ButtonTools" name="ButtonTools":x="20":y="175":width="200":height="30":formGUId="21":
}
formEnd:

JANUARY 2009 www.stpmag.com • 23


QA MONKEY BUSINESS

Figure 3 displays the result of FIG. 3: THE MONKEY SHINES which does not adhere to customer
Presentation Monkey using GraphViz to requirements.
render the dot file into a screen flow
image. What’s Next for the Monkey?
We plan to scale our usage of Monkey
The Monkey’s Hidden Powers labor to perform long term software
The monkey has a latent capability that reliability testing. By using a large num-
we have not yet used—the ability to ver- ber of PCs or a Monkey cloud, we could
ify the actual screen flows against the simulate tens or even hundreds of thou-
requirements specification. This is par- sands of hours of operation in as little as
ticularly important in an FDA-regulated a week. This will allow us to produce sta-
environment where complete coverage tistically valid software reliability esti-
of requirements are mandated by 21 mates for the ePRO-LOG.
CFR and other regulations. For compa- We also intend to introduce scripting
nies that are operating in regulated capabilities into the Monkey. This will
environment, maintaining the required allow for a pre-determined decision about
level of documentation can be a signifi- screen flows (rather than a random deci-
cant operating cost. sion) during scripted tests.
Figure 4 shows a comparison of spec- Creating a Monkey with simple archi-
ifications with screens and test screen flow. spec-based screen flow. The output is fed tecture allowed us to address our risks while
Let’s work our way around this figure, to the Presentation Monkey, which pro- saving time and money. Using open source
starting with the sequence originating on duces a comparison like that shown in components and minimal software devel-
the right side. Figure 5. opment effort, we created a custom testing
The Presentation Monkey can pro- Figure 5 highlights the differences application that provides far greater ben-
duce a screen flow diagram from the between the screen flow described in the efits than existing commercial products.
Monkey Droppings file as shown previ- specification and what was observed dur- The Monkey has already paid for itself
ously in Figure 3. This diagram shows ing testing. For example, the requirements many times over in time saved, and gives
what screens where observed during specification called for the screen flow to the company a competitive advantage by
Monkey testing. proceed from FormT4 to FormT5 prior improving our documentation and testing,
However, we can also produce a screen to entering FormSave, but instead we went and allowing for faster turnaround time.
flow diagram using our requirements straight from FormT4 to FormSave. In Also, it should be noted that no mon-
specification instead of the Monkey addition, the requirements specification keys where harmed during the develop-
Droppings file. Our testers can use this called for the screen flow to proceed from ment of this application. !
diagram to show the expected function- FormI2 directly to
al flow of the application. FormSave, but instead FIG. 5: PRIMATE PATHS
Now, that capability alone would be we went from FormI2
exciting enough, but would still leave to FormI3 before pro-
the tedious and error prone task of com- ceeding to FormSave. FormHome Requirements Application
paring the two screen flows. However, This capability great-
we also have a comparator that can com- ly reduces the risk of
FormMainMenu
pare the test-based screen flow with the releasing a product

FIG. 4: CHIMP CHOICES FormQuestionnaires FormTraining

FormInjections
Monkey-Ready Monkey
Comparator FormQ1 FormT1
Specification Dropping

FormQ2 FormT2
Presentation
Monkey
FormT3 FormT1
MakeDot FormQ3

FormT4 FormT2
Graphviz
Requirements Only Application Only

FormT5 FormT3
Spec-Based Difference-Based Test-Based Requirements Only Application Only
Flow Diagram Flow Diagram Flow Diagram
FormSave

24 • Software Test & Performance JANUARY 2009


How To Scale
Mt.Automation

By Lawrence Nuanez

H ave you ever stood at the base of a mountain best for your project. To narrow the field, the focus here will be
on commercial tools.
and looked up? Staring up the face of a
mountain can make you dizzy, and the thought of Know Your Needs
climbing it can strike fear into your heart. Yet its majesty can Like most projects, it all starts with requirements. To choose
leave an indelible memory. You may have had similar feelings the best tool for your project, it’s essential to begin with a firm
if you’ve thought seriously about automating your tests. knowledge of what you need the tool to do. This requires you
Standing before Mt. Automation can be a dizzying experi- to look at the applications under test with automation objec-
ence, yet conquering its efficiencies can be extremely satisfying. tives in mind. It’s highly unlikely that you’ll be able to automate
This article will help you gear up for the journey. There are everything, and you probably don’t even want to. You might
numerous tools for test automation, each with its challenges, begin by focusing on parts of the application that are new or
capabilities and rewards. Here’s how to figure out which will be mission-critical.
When thinking about automation, your goal is to identify por-
Lawrence Nuanez is senior consultant with ProtoTest, a software QA tions of your application that are “automatable” and would help
process consultancy.
you achieve higher quality. Given enough time and money any-

JANUARY 2009 www.stpmag.com • 25


SCALING MT. AUTOMATION

thing can be automated, but it is much been there a long time and are firmly To get to know the tool, the salesper-
easier, for example, to automate a stan- entrenched. Others are overgrown and son might recommend going through a
dard implementation of a Web service all but forgotten. Still others are newly tutorial using a sample application that
than a highly customized application created, and still a bit bumpy. Your can be installed with the tool. This can be
developed using Ajax that relies only on options for selecting a tool are similar. beneficial if you are unfamiliar with the
select configurations. Any custom-built but selecting the most popular path might tool or with automation in general.
parts also could present challenges. This not be the best for you. However, you should limit the amount of
often requires talking to the development Once you know what you need the time you spend with the sample applica-
team to determine how the application tool to do and which operating systems tion and quickly turn the focus to your
was developed. It may be necessary to and other technologies it must support, app. After all, if it doesn’t do what you need
answer questions like the following: your choices should be narrowed to a with your application, it doesn’t matter
• For a Web product, SSL being used? handful. Now is the time to perform how cool the tutorial is, and there’s bound
• Is data being encrypted? proofs of concept on each. This is an to be a limit to how much time companies
• Are ActiveX controls being used? important part of the process and there will devote to evaluation support.
• What type of database is being used? are no shortcuts. As you perform your evaluation, be
You will need to break up your appli- I recommended that you dedicate at sure to fulfill and check off your require-
cation into logical partitions. It is likely least one a machine to be used only for ments as you go. Create a matrix with all
you have already done this as your test this purpose. This will let you conduct the the requirements down one side and the
scripts may be broken out by functional- proof of concept on a machine that oth- tools to be evaluated across the top. Take
ity. For example, if you have an order ers are not using and if the need arises to notes on how each tool satisfies each
entry and delivery system, your logical wipe the machine and start over, it will requirement. Note is how easily each tool
partitions at a high level could be the not be a huge loss. Unless you have sep- satisfies each requirement, perhaps in a
order entry system, the shopping cart, the arate machines that you can devote to scale of one to five. Two tools may each
payment system, fulfillment functionali- each tool you are evaluating, I recom- be able to support a requirement but one
ty, shipping functionality, and order mend performing your proof of concepts tool may do it out of the box while anoth-
returns functionality. When evaluating one at a time. Many automation tools er requires you build a custom library to
these areas, you come the conclusion that don’t play nice in the same sand box. And perform the same actions. Or one tool
automating the order entry system, shop- some tool makers will not support proofs may be able to natively connect to your
ping cart, and payment functionality of concept when they’re performed on a test management system while another
would be easiest and would help reduce system with that’s not completely “clean.” doesn’t support it at all.
the time it takes to regression-test the If you need to support Internet
entire application. The remaining areas Proof of Concept Explorer 6.x and 7.x and Firefox, create
are still important and could be candi- Most commercial tool makers offer a script and see if it works. Do you have
dates for automation down the road. They free versions of their software that you to create a separate script for each ver-
also should be included in the proof of can download for trial use. Some even sion or can one script be used for both?
concept, covered later. offer support if you go through their If you need support for SQL Server 2005
You also need to think in terms of sup- sales department. This is an important ensure that you can create a connection
port for operating systems, Internet factor in your evaluation, because even to your database and perform the
browsers, databases etc. Start by listing if you have an automation expert on required actions.
all the operating systems, browsers, data- staff, it’s helpful to receive assistance Any sales person will push for a deci-
bases, etc. that your application uses or from the ultimate domain expert while sion as soon as possible. It is best to be up
supports. After you have that list, deter- you perform the proof of concept. It front and let them know what your deci-
mine which ones are “must haves.” For also frees up your automation person sions will be based on and when those
example, if you support Internet or eases their job of learning. decisions will be made. Let them know
Explorer 6.x and 7.x, Mozilla 1.x and 2.x, In any event, it’s also helpful to have you will not rush through the proof of
Safari 3.x, and Opera, of those you might an initial exploratory conversation with concept stage and will not make a deci-
decide that only Firefox and IE are the tool maker to go over what you are sion until you have evaluated all your
absolutely essential. Adding support for looking for and what will be expected of selected tools.
Safari will greatly impact your choice of the tool. A good sales person will be hon- If you need more time to evaluate the
tools. Only you can know what your est on what their tool can realistically do tool ask the sales person for an extension
needs and wants are. and not do. You might even eliminate of the trial license. Most tool makers are
some tools based on that initial conver- happy to give you more time. Conducting
Tool Evaluation sation. Or, if it only supports a subset of full and thorough testing will provide the
Once you have gone through the process what you need, you can drop it the end information you need to make the right
of evaluating your application and what or revisit it later if your requirements decision. Resist the urge to select a tool
needs to be supported, you can begin change. before you have evaluated all the tools on
looking at tools. This is where the fun After you determine that a proof of your list. You may miss out on a perfect
begins, but this stage also requires some- concept would make sense with a partic- tool due to impatience.
what of a commitment from you; the ular tool, install it on the dedicated
process can be somewhat long. machine. It is imperative that your appli- Sage Advice
Returning to our analogy, there are cation be on that machine and be used Few individuals would think of embark-
many paths up the mountain. Some have for the proof of concept. ing on an arduous mountain expedi-

26 • Software Test & Performance JANUARY 2009


SCALING MT. AUTOMATION

ual editing and modification?


• Does the tool allow you to batch
scripts and run unattended? Does
it require additional software or cus-
tomization?
• What is the tool provider’s reputa-
tion among customers?
• What is the cost for each license?
• Does simple test execution require
the purchase of a full license?
• Does the vendor require you to pur-
chase additional software to support
different environments (i.e. ActiveX,
Oracle, Citrix, or SAP)?
Making that final decision might be
tough, especially if you have multiple tools
that are very close and you like them
equally. That is actually a good problem
to have since it increases your chances of
finding a tool that will be a good fit. In
that situation it might come down to fac-
tors such as cost, your comfort with the
supplier and their reputation.
What if you’ve conducted extensive
proofs of concept and still don’t find a
tool that totally meets your needs? Then
it might be necessary to take a closer look
at your requirements. How realistic are
they? How many of your needs and wants
are met by any tool? You also might ask
one or more of the commercial tool mak-
ers to provide an engineering resource
to help you determine whether their tool
tion without doing some research. One trek many times before and their sage wis- will work and if you’ve been using it as
the best sources of information is peo- dom can guide you to the decision that intended.
ple who have made the climb before— is best for you. One thing to keep in mind Failing that, you might also need to
perhaps several times. Before you make with consultant companies is to make sure expand your search to include tools not
a decision on the tool, talk to as many they can be objective in their tool selec- considered in the previous round. This
people as you can about the tools you tion. Many companies have alliances or is an area where a consultant can provide
are considering. Ask what their experi- partnerships with particular tool makers. some guidance if you hit a wall. The
ences have been like. Have they Companies that are tool-agnostic are not answer might be that there is simply no
received competent and prompt sup- under pressure to satisfy a partner rela- tool out there that can do what you need.
port? Are they happy with the tool’s tionship; their only objective is the help This rare situation usually happens only
performance? Does it help them the client. with proprietary or highly-customized
achieve their goals? Any regrets in applications.
choosing that tool? The Decision If you’ve done the necessary work up
Many commercial tool makers also Regardless of the path you take—well front, you can have confidence that the
have local user groups in major cities. worn, overgrown or new and bumpy— tool you select will be a good fit for your
These can be excellent sources of infor- the ultimate decision rests with you. All product and objectives. Patience is not
mation, and most people are happy to the work you’ve done to gather your only a virtue, but it will also help you make
share their experiences. If there are no requirements, understand your goals a better decision. Don’t rush. Run through
user groups in your area, you can usual- and objectives and conduct comprehen- all the various parts of your application
ly find blogs where people discuss the sive proofs of concept, will provide the during your testing so you’re sure how the
pros and cons of any tool. information to make your selection easy. tool interacts with your application. If time
Another source of information is con- As you weigh each tool consider the allows, you might even run through it
sultants. There are companies that spe- following: more than one time, just to make sure.
cialize in automation, with automation • How many of your needs does it sup- Tackling Mt. Automation might seem
experts on staff that can be an invaluable port? How many are unsupported daunting at first glance, but to those will-
source of information. Think of them as and are any critical to your success? ing to do the necessary prep work, select-
a mountain Sherpa, like those who guide • How easy is it to create scripts ing the best possible tool is a relatively
mountaineers up to the heights of Mt. beyond record and playback? Does easy climb. And the view from there is
Everest. They have made the automation the scripting language permit man- spectacular. !

JANUARY 2009 www.stpmag.com • 27


ST&Pedia
Translating the jargon of testing into plain English

Stop the Cycle, I’m Getting Off


One ring to rule them all, one ring to find Version Control Software creates a vir-
them, one ring to bring them all, and in the tual library, allows developers to safely
darkness bind them. check out code and other artifacts,
— J.R.R. Tolkien change them, and check them back in.
ALM is the ‘one ring’ of software devel- Change Control Software takes a for-
opment. It promises to provide informa- mal process of approval, review, docu-
tion at all levels in one integrated pack- mentation, and audit and automates it
age, from technical details in every dis- through software, which may include noti-
cipline, to metrics, summaries, and proj- fications as each step progresses.
ect plans for management. In theory, any-
one can drill down from high level to low, Matt Heusser and Chris McMahon
SERVICE ORIENTED ARCHITEC-
trace requirements to tests to code, track TURE (SOA) / Recent years have seen
which tests have run and when, for which ed, the term “wiki” is sometimes defined significant discussion of SOA without
versions on which source code. There are as an acronym for “what I know is.” significant agreement on the exact defi-
a number of approaches and patterns nition of the term. Even so, SOA is
to ALM; we'll introduce some of the more COLLABORATION SUITE / becoming an important approach to
popular ones here. Similar to Facebook or Myspace but for ALM and CM.
business, modern collaboration suites A typical enterprise will have dozens
APPLICATION SUITE / An applica- take implicit information about soft- or hundreds of software applications
tion suite combines features listed ware projects and people and make that running in the service of the business.
above, and may include requirements, information explicit by means of blogs, These applications share information
feature management, modeling, design tagging, and widgets. A popular collab- among each other, typically by point to
tools, build and configuration manage- oration suite is offered at 37signals.com. point transfer, where one application
ment, release management, issue track- produces information in a singular,
ing, monitoring, reporting, and work- CHANGE MANAGEMENT / Any "hard coded" fashion for another par-
flow. This means that developers, testers, system change involves some risk, ticular application to consume. This
project managers, and even designers whether it be new software, new architecture becomes increasingly diffi-
can all work entirely within one tool. process, new management, or even a cult to maintain as the number of appli-
The Rational suite of tools and Visual new hard drive on a server. Change cations grows.
Studio Team System, are examples. Management is a broad term with at By contrast, architecture that is serv-
least two distinct meanings: there is a ice oriented dictates that this sharing
APPLICATION HUB / Instead of "soft" sense of the term that describes occur through services ("functions") that
providing a specific set of tools, some managing people and processes in are standardized, defined, and publicly
ALM frameworks allow users to choose order to minimize disruptions to the accessible. Because the functions (and
and "plug in" applications. Using this business as transitions happen; there is interfaces) are public, they can be altered,
approach, the customer decides which a more technical meaning also, having upgraded, retired, and replaced system-
bug tracking tool, which test manage- to do with tracking and managing actu- atically. SOA dictates critical information,
ment tool and which source control al artifacts as they are added, as they are not critical applications. As long as any
tool to use. Eclipse is an Integrated removed, and as they evolve. given application supplies information in
Development Environment that sup- Impact Analysis is an example of the the correct fashion, the nature of the
ports this kind of architecture. first meaning: the process of determin- application becomes irrelevant to its "serv-
ing the possible risks involved in chang- ice consumers". ALM and CM can fit into
WIKI / Literally "quick" in Hawaiian, a ing a system. As in the example, chang- a SOA as tools built out of other Web serv-
Wiki is a website where any page can be ing a hard drive could take down a ices. These composite, SOA based
created or edited by anyone at any time. Website for several hours. Impact Analysis approaches to ALM and CM are increas-
Using tables and links, and using more dictates managing such changes, for ingly popular. !
advanced features like tags and APIs, example by scheduling disruptions appro-
users can create and track plans, priately, or by advising users in advance Matt Heusser and Chris McMahon are career soft-
requirements, tests, metrics etc. Most of such disruptions. ware developers, testers and bloggers.They’re col-
modern wikis save a history of changes In the more technical sense of the leagues at Socialtext, where they perform testing
and quality assurance for the company’s Web-
made to pages, a useful feature in ALM term, here are a couple of tools essential
based collaboration software.
work. Since wikis are often user-generat- to Change Management:

28 • Software Test & Performance JANUARY 2009


Best Practices

Size Matters er context with line-of-business people.


As for tackling the granularity issue,
Locks says it’s a tough question with no
simple answer. The nature of the project

In Unit Testing dictates the unit testing parameters.


“As you consider the job ahead of you,
you’re looking at either newer code that
is more componentized, or legacy code
Brian Buege, head of test business context in which the that you’re attempting to leverage,” says
center excellence at British application will run and be Locke. Keeping IBM’s decades of main-
communications giant BT, used, something that should frame legacy in mind, Rational often
works continuously with be part of any developer’s job, works with ancient code, literally millions
unit testing efforts, both says Buege. And while build- of line of COBOL code that work per-
large and small in scope. ing an automated test frame- fectly, but which are now being tugged in
BT is enormous: 110,000 work that reflects this context new directions their coders could never
employees supporting com- is important, drilling down have imagined.
munications services to mil- too far—the equivalent of A common example is banking appli-
lions of customers in 170 testing for sodium and chlo- cations that for decades ran within the
countries. That means get- rine while forgetting that the known confines of a green-screen 3270
Joel Shore
ting every line of code method is about NaCl—salt, environment. “Today, we’re now exposing
right. But, listen to Buege and you get is a common mistake. “Don’t go so far into that functionality to end users doing their
the impression he believes the testing details that you’re automating tests that banking online with rich interfaces. In
pendulum should not be allowed to don’t have a lot of relevance.” developing tests, it’s not enough to test only
swing too far in either direction. Similarly, says Buege, fail to adopt a the new code; we have to go all the way
“We learned early on that although full lifecycle approach when writing the back and test to make sure that what we’re
total automation should be the ultimate unit-testing code, and the automation doing today doesn’t break code that was
goal, getting there is a process of con- becomes “brittle,” in that small changes written 35 years ago.” And that could
tinuous evolution, not one of taking giant in the system can render the automation encompass security, databases, storage, data
steps. And it’s essential to know when irrelevant. “Then you incur the cost of validation, transaction journaling, and gov-
you’ve crossed the threshold into the rebuilding it, which destroys the original ernment-mandated regulatory reporting.
realm of diminishing returns.” In other investment.” Even for an operation as Regarding the increasing componen-
words, it’s important to remember that sophisticated at BT, Buege admits this tization of software, Locke says if you look
the job of IT as a group is to build and aspect of unit testing is still “a progress- at Web services or SOA, for example, you
implement actual shipping, revenue-gen- ing best-practices journey.” may be relying on highly distributed code
erating products. Certainly, those small changes can often from people you don’t know. With the
Buege has a nifty analogy. If it’s a car be killers, but neglecting to understand the source code often unavailable, the unit
you’re designing, you could build a robot bigger picture isn’t smart, either. The prob- test becomes an essential part of docu-
that can perform a complete test drive. lem is that while developers understand menting how the component is used or
But it’s only after you get deeply involved everything down to an individual method how it is supposed to work.
that you suddenly realize building the test on a class, they rarely are given adequate At BT, testers are reminded to be wary
robot has become more complex than insight into the data the system will see in of thinking that their tests at any point in
building the car. “This extends to test real life or how it will co-exist with other time are complete. “Developers think
automation also, where you can find that systems. “Writing the test is only half the they’ve written their tests and they’re
it’s more complex to build the testing work, getting the data is the other big done, but requirements change, or refac-
automation than the application itself. piece,” says Buege. “The developer is often toring occurs in agile projects that may
You have to know where this threshold is.” not positioned to know if it’s business-rel- knock on some of your unit tests,” says
So, while Buege embraces the ideal of total evant data. That’s a big lesson we learned.” Buege. There’s a danger of starting to see
automation, he’s quick to take a step back, For David Locke, a director at IBM false negative results—tests that don’t fail
acknowledging that in the real world it’s Rational, the view is only slightly differ- but which should have. “That gets us into
neither reasonable nor justifiable. ent. “With all the pressures being thrust the realm of testing the test.” But that, he
Related to knowing where that thresh- upon development teams through dead- says, is a topic for another day. !
old is, is the risk of, for lack of a better term, lines, budget cuts, and staff reductions,
over-granularization—especially important developers are spending more time writ- Joel Shore is a 20-year industry veteran and
has authored numerous books on personal
when you’ve got up to 3,000 employees and ing more code to test the code they’ve
computing. He owns and operates Reference
contractors worldwide performing testing written.” He agrees that those in the Guide, a technical product reviewing and doc-
simultaneously. It’s all part-and-parcel of trenches writing or testing code need to umentation consultancy in Southboro, Mass.
understanding IT infrastructure and the see the bigger picture and work in a broad-

JANUARY 2009 www.stpmag.com • 29


Future
Future Test
Test

Eliminate
ed against the target environment of the
appliance, without cycles being spent on
how things may have changed at the cus-
tomer site.

“What if”
Despite the benefits of a more efficient
testing process, add-on software still can
increase unpredictability. This is anoth-
er area in which the purpose-built appli-

From Testing
ance can provide significant benefits.
Some appliances offer a secure phone-
home capability for remotely installing
encrypted manifests and patches to appli-
ances in the field. They can automati-
cally provide compressed and encrypted
If you’re thinking about When applications fail to updates for dark sites and deliver secure
deploying your application work as expected in pro- and comprehensive upgrades for the
on an appliance, you’ll also duction, the user’s first operating system as well as the resident
need to consider the impact response is to view it as your application and drivers. Furthermore,
it will have on established problem. Even though rea- they offer advanced image backup man-
test/QA practices. In many sons have nothing to do with agement techniques used to automate
cases, the decision to use a your application, you’re left the backup of the full software partition
software appliance boils to diagnose the problem, of appliances. Thus you can ensure that
down to the fact that no restore proper operation an image backup is created automatical-
matter how business-critical and suggest safeguards ly prior to the update process. Should the
it may be, your application against future issues. It’s not appliance fail, it can be rolled back to a
Gregory Shortell
is just one piece of a com- enough to say that your pre-failure image and quickly restored for
plex puzzle. application runs brilliantly in the lab and proper operation.
Storage, security or communication “please don’t change anything because Information captured during the
applications all typically interact in some we just can’t guarantee it will still work.” update process can then be delivered to
way with other applications, management A better approach is to the testing organization to
software and/or middleware. As we move use dedicated appliances ! help determine when and
into the future, the typical enterprise envi- that provide a self-con- why the upgrade did not go
ronment will host even more operating tained, locked-down appli- As applications as planned and provide
systems and hardware platforms - each cation that includes your insight into how to fix the
requiring secure and seamless interop- specific code paired to a become ever problem in the future.
erability. Maintaining the quality of your defined operating system, While most discussions
software and the integrity of the appli- matched to application driv- more complex , of purpose-built appliances
ance will become increasingly critical. ers and shipped on a known focus on ease of deploy-
When applications are deployed on piece of hardware. The efficiency will be ment, integration and use
general-purpose “white box” servers, you integrity of the delivered in the enterprise, signifi-
lose control of the hardware. With these product is assured with this
paramount. cant benefit to the QA
open servers, modifications can be made approach. The integrity of ! process also exist. Cost,
to the platform at any time and for any the platform is assured and time-to-market and testing
reason. Hardware vendors make changes the additional work of programming and efficiency are all byproducts of control-
to the BIOS, interface cards and disk testing for unlimited use cases goes away. ling the integrity of the platform on which
drives as they work to lower costs or adjust The same goes for the QA process. your software application will be deliv-
to supply chain shortages; enterprises The “What if” scenarios no longer exist, ered. In my experience, building brand
oftentimes “tweak” the application for nor does testing against every conceivable loyalty always starts and ends with prod-
performance, to cite just two examples. permutation of what the application may uct quality. As applications become ever
Such changes can create major prob- encounter in the customer’s enterprise. more complex and mission-critical, effi-
lems. Tightly timed I/O interactions Your testing organization is free to ensure ciency will be paramount to the future of
between software and hardware elements that the application performs as expect- testing. !
break down and cause the application to ed in the target environment of the pur-
exhibit errors, or worse, to be unavailable. pose-built appliance. Equally important, Gregory Shortell is president and CEO
of NEI, which offers vertical-market
Such unpredictable production envi- the QA process becomes significantly
hardware and software appliances,
ronment scenarios couldn’t possibly have more streamlined as the application is platforms and services.
been addressed in the testing process. upgraded. New code only needs to be test-

30 • Software Test & Performance JANUARY 2009


Working with SharePoint?
Want to learn more? Attend

SPTechCon
January 27-29, 2009

Hyatt Regency
The SharePoint San Francisco Airport

Technology Conference Burlingame, CA

Check out this list of classes! 702 Integrating SQL Server 2005
Reporting Services With
SharePoint

W-1 Getting up to Speed 203 SharePoint Search Configuration 405 Create an Electronic Form Solution 703 SharePoint Custom
As a SharePoint Administrator And Administration Using InfoPath and SharePoint Navigation Solutions

W-2 Success With SharePoint, 204 Getting Started With 406 Successfully Implementing 704 Search Engine Optimization
From Start to Finish SharePoint Workflows New Solutions In SharePoint

W-3 Mastering the Art of Customizing 205 Administering SharePoint 407 A Deep Dive: Rich Clients And 705 A Simple, Out-of-the-Box
The SharePoint User Experience From the Command Line SharePoint Web Services Project Management Solution
With STSADM.EXE
W-4 Share and Ye Shall Find: Deliver- 501 Fast Track to SharePoint Feature 706 Optimizing Information Security
ing Content That Users Need Generation In SharePoint
206 Office and SharePoint:
Better Together 502 Into the Wild: TheChallenges
W-5 Creating an Information 801 Using Custom Actions
Architecture Of Customized SharePoint Apps
207 Working With SharePoint Designer And Application Pages
In Release
To Manage Issues
W-6 Getting Started With 301 To Code or Not to Code:
SharePoint Development SharePoint Customization 503 SharePoint Directory Management
802 Excel Services As a Business
Vs. Development 504 Protect and Defend Your Data Intelligence Solution
W-7 Leveraging SharePoint
For Project Management 302 SharePoint Security Management 505 SharePoint Information Rights 803 ECM, Extranets And
For the Business User Management Customization
W-8 Leveraging SharePoint
In a SOA-based Infrastructure 303 How to Build a Change Control 506 Administering SharePoint Using 804 A Bridge Not Too Far: Linking
System in a SharePoint PMIS PowerShell Oracle ERP to Requirements
101 Teaming up to Deliver Complex
SharePoint Apps 304 Building the Platform As a Service 601 SharePoint Content Types: 805 Best Practices in SharePoint
Keys ToManaging Information Backup and Recovery
102 Planning for a Successful 305 Planning, Designing And
SharePoint Project Customizing SharePoint Search Taxonomy
806 SharePoint and Search Server:
103 Building Composite Office 306 Social Networking and User 602 10 Quick Wins with SharePoint— Getting the Right Results
Business Applications Profiles for Business And No Code! Every Time

104 SharePoint Best Practices: 307 Scaling With SharePoint 603 Customizing SharePoint Search
Doing It Right the First Time 604 Tuning Memory
401 Customizing the SharePoint User
105 Moving to SharePoint: Experience, Revisited Management LAST CHANCE
In SharePoint
“Won’t Everyone Need Training?”
402 10 Checkpoints for SharePoint- TO SAVE!
106 SharePoint Planning based Document Management 605 SharePoint With Windows
And Governance
403 SharePoint Administrators:
2008 and SQL 2008
REGISTER by
Jan.14
107 Working With SharePoint APIs The Reluctant SQL Server DBAs 606 Case Study: How Energizer
Trained Its Users to Change
201 Getting to Know the SharePoint 404 How to Balance Web Apps,
701 Building Scalable, High-Perfor-
Object Model

202 Building Business Intelligence


Application Pools and Site
Collections for Optimal Use
mance SharePoint Apps SAVE $200!
Portals

For more information, and to download the full course catalog, go to


PRODUCED BY
www.sptechcon.com
BZ Media
7 BJ ; H D 7 J ? L ; J > ? D A ? D = 7 8 E K J 7 F F B ? 9 7 J ? E D B ? < ; 9 O 9 B ; C 7 D 7 = ; C ; D J0

9ecfkj[hi:edÉj Hkd Oekh7ffi$


F[efb[:e$
7bj[hdWj_l[ j^_da_d] _i beea_d] X[oedZ j^[ Z[l[befc[dj YoYb[ WdZ
\eYki_d]edYkijec[hiWj_i\WYj_ed$8[YWki[j^[h[WbWffb_YWj_ed
b_\[YoYb[_dlebl[ih[Wbf[efb[ÄWdZj^[Ykijec[hÉif[hY[fj_ed_i
Wbbj^WjcWjj[hi_dj^[[dZ$

>F^[bfioeki[[j^[X_]f_Yjkh[WdZcWdW][j^[Wffb_YWj_ed
b_\[YoYb[$<hecj^[cec[dj_jijWhjiÄ\hecWXki_d[ii]eWb"je
h[gk_h[c[dji"jeZ[l[befc[djWdZgkWb_jocWdW][c[djÄ
WdZ^[h[_ij^[Z_\\[h[dY[ÄWbbj^[mWoj^hek]^jeef[hWj_edi
m^[h[j^[Wffb_YWj_edjekY^[ioekhYkijec[hi$

>F7BCe\\[h_d]i^[bfoek[dikh[j^WjoekhWffb_YWj_edidej
edbo\kdYj_edfhef[hbo"Xkjf[h\ehckdZ[h^[WlobeWZWdZWh[
i[Ykh[\hec^WYa[hi$9WdÉjoek`kij^[WhoekhYkijec[hiY^[[hdem5

J[Y^debe]o \eh X[jj[h Xki_d[ii ekjYec[i$ ^f$Yec%]e%Wbc


ž(&&.>[mb[jj#FWYaWhZ:[l[befc[dj9ecfWdo"B$F$

Das könnte Ihnen auch gefallen