Documente Academic
Documente Profesional
Documente Cultură
Test ng
India’s 1st Software Testing Magazine
April’08, Issue
Cover Story
Pg
21
Risk based
Testing
will cover diverse topics. Keynotes, Tutorials, and Paper presentations by renowned speakers known nationally
and internationally will be one of the highlights of the conference.
Let’s mark the conference program in our calendar today itself.
will offer opportunities to the partners to associate themselves with this endeavor and showcase their
products in the conference.
Do visit us at http://www.test2008.in
Issue1: Vol 1: April 2008 Contents
Other Stories
44 FROM DEV DESK: Some Things I’ve Learned in Software Testing
by Jonathan Kohl
50 CONTROVERSY CORNER: QA is More Challenging than Development
by Mrityunjay
53 Is scripted testing bad?
by Vipul Kocher
57 Putting the “Test” back in Test Plan
by Paul Carvalho
WhatIsTesting.com 1
Tea testers look at
aspects of dried & brewed
tea leaves and the liquor
India • USA • UK • NZ
www.puretesting.com
+91 (120) 4621010; info@puretesting.com
WhatIsTesting.com 3
From Daily LifeIdeas
Morning
the
Morning
Desk
Ideas
Though a good design is key for a good and reliable
product, a robust test and evaluation of the product
only ensures that the product meets all-explicit and
implicit requirements and is ready for deployment and
usage.
O
ne morning when I was engrossed bags had torn almost at the same place.
in my newspaper, my daughter
Since it was not possible to repair the bag
created panic as her school
in ten minutes, thus she carried her stuff in
bag had given way at one of the
another bag but this episode left me thinking.
shoulder belts.
I realized that the bag was made to meet
I was annoyed at her letting
the functional requirements of the student
me know only when I was
such as adequate space to carry stuff,
completely torn while she would
compartments for lunch box, pencil box and
have seen this happening over
water bottle. The bag was also providing a
the last few days but my bigger
good aesthetics but lacked the robustness
reason of annoyance was due
in terms of handling the stress that comes
to the fact this was the 3rd or
on the bag with daily usage....
4th time the different school
4 WhatIsTesting.com
by Sunil
by Gupta, Head of Testing Practice : Flextronics Software Systems
Two things emerged when I extended my thought • Identify the tools required for testing
process further. • Look at the FOUR views:
One, product making whether it is a school o User view
bag or a large and complex telecom product
o Maintenance View
requires good understanding and research in
terms of features, stress areas, usability, etc o Functional/Operational View
without which the product would give numerous o Performance View
problems to the user as the school bag gave to In order to achieve a good understanding of
my daughter. the product before the exhaustive test cycle
Second, testing plays a very crucial role to commences, a few people from the test team
ensure that the product meets all requirements need to be dedicated to carry out the Test
including the ability of the product to handle Engineering tasks (as defined above). This set
normal and abnormal stress conditions. of people should have the mandate to carry out
the verification and validation tasks.
If we take the school bag example, it is very
important for the product manufacturer to In the school bag example, the User View would
ensure that the various be to look at all the ways in which the school
stitches in the bag take up bag would be used by a user. There would be
the full bag load else there several user scenarios such as:
are going to be numerous • Student lifting the bag from one belt
dissatisfied customers like
me. • Student lifting the bag using the side belt
and loading on its back
Though a good design is key
for a good and reliable product, • Student fully loading the bag with books but
a robust test and evaluation weight may not be too much
of the product only ensures that the product • Student
meets all-explicit and implicit requirements and partially
is ready for deployment and usage. loading the
It is seen across the IT and software industry books but
that the organizations give a lot of focus to hiring the weight
and developing software development teams may have
but do not focus enough on developing testing exceeded the
teams. The test team is put in place either very
late on the programs or the test teams are not
organized well enough to provide the vital value
expected from the Test team.
WhatIsTesting.com 5
Morning Ideas
6 WhatIsTesting.com
Neilsoft is a specialist engineering services & solutions
company focused on helping our clients enhance their
product engineering efficiency.
Our services in the software product engineering domain
span the entire product lifecycle including development,
testing, and localization engineering.
T E S T I N G E X P E R T I S E
Glo
e ba
e rtis Compatibility l de
p Testing liv
ex e
n
ry
ai
In Te
mo
in on
m
st st
st ti
Do
al in
Te gra
g
de
la g
tio
te
l
In
n
rage
Sto S
Partnerships with ind
ec
uri
C AE
Performance
Functionality
ty
Testing
Testing
M
CA
PL
M
C AD
ustr
y le
s
M Tes
sse
in ed
ul ti
st at
ad
ti- ng
ce
g
Te tom
by
ers
te
ro
u
A
p
st
bu
Certification ro
Testing
ven&
Pro
testing@neilsoft.com | www.neilsoft.com/testing.htm
Process
Software
Corner
Testing
~ a Field Par Excellence
8 WhatIsTesting.com
by Sudhir & Anjan, Product Testing & Documentation : Accelrys, ITPL,
Bangalore
WhatIsTesting.com 9
Software Testing: ~ A field par excellence
espoused within the IT-geeks eagerness towards human life such as Insurance, Healthcare,
“checking before delivering” approach. On the Banking, Financial services, Pharmaceuticals,
contrary, there was time when products were logistics etc. What this means is that, software
released without or with minimal testing done. developed in each of these Industry verticals
Of course, many a time, these are dictated by need testing – some rigorously and some which
how the market wants them. Time-to-market can give adequate confidence in the product. At
was probably more important than quality the end, software testing too is spanning across
of the product. But, time has changed post all these Industry verticals. When it comes to
dotcom crash era and software quality has the domains, the field looks even more lucrative
maximum thrust in the market today, be it by the amount of challenge each one of them
consumer products, electronics, manufacturing provide to the individuals involved in testing.
or software. And quite rightly, software testing Therefore, as software testing started to support
is enjoying its share of this quality conscious the development activities in these domain
market. areas, it became increasingly necessary for the
test engineers to gain knowledge and specialize
Testing as a field has now been more
within each of these domain areas. This is
strategic and approach-centric
another area where there is a huge potential
thus adding new dimensions as
for test engineers to grow and make an impact.
well as many challenges to it.
This led to different teams being formed, some
Previously testing used to be an
heterogeneous and some homogeneous groups
afterthought activity in the post
to cater to testing software in these domains.
release phase when the clients
The requirements of the client keep on
call and say “we found something wrong in
growing and we as organizations need to meet
your delivered software”. But with time, it is no
the demands of the end users to stay in this
longer the case. Any small error today is a big
business. This translates to the whole gamut
issue from a client perspective. With more and
of technology issues starting from software,
more third party software testing companies
hardware to third-party products. Software can
grooming overtime, the availability of a talented
be legacy application running on a mainframe
resource pool, making timely deliveries and the
or the latest technologies such as .NET, J2EE
commitment to meet the quality expectations
etc... Technology as we know has advanced from
of the customer has added many feathers to
the days of mainframes to today’s applications
India’s software testing market. Needless to
running on a PC based Linux systems. However,
make a note that Software testing as a field
at the same time, applications developed on the
within IT/ITeS has now emerged as a strong
legacy technologies have not gone away or have
area of business solutions and a source of
not been replaced with new technology; they are
major revenue generator and emerging more as
still being used in Banks, Insurance companies
a serious business goal as well an intrinsic part
within the IT/ITeS organization culture.
Future Challenges
There is software in almost
every aspect of human life....
Domain and Technology Perspective
software developed... need
The growing demand from within the customer
groups as well the growing demand of the
testing -- some rigourously
organizations to meet and extend their client and some which can give
support has made software testing as a field adequate confident in the
nothing but a paramount knowledge pool.
There is software in almost every aspect of product.
10 WhatIsTesting.com
by Sudhir & Anjan, Product Testing & Documentation : Accelrys, ITPL,
Bangalore
WhatIsTesting.com 11
Team Are You Ready?
Mana-
gment
Are
You
Ready?
With a little preparation and
teamwork, you can pave the way
for a new team member.
Use a checklist to make sure you have everything
ready before the new team member arrives.
● Compile all necessary documents into one binder
that can be given to any new arrivals.
● Be sure to provide some context about the company
and the team to help the newbie get acclimated.
12 WhatIsTesting.com
by Michael Bolton, DevelopSense, a Toronto-based consultancy
and training firm.
I
f your company is typical, it is hiring agreement. Make sure this, too, is prepared
more and more temporary workers while in advance, and that all agree on each of its
scrambling for every bit of efficiency and points before the contractor’s first day. If your
value. Hiring a contractor to help with human resources department has policies and
temporary problems can be cost-effective, but procedures manual appropriate for your hire,
wasting his or her time undermines the purpose make a copy available to the contractor early
of the exercise and costs hundreds of dollars in the game. Human resources will typically
per day. Moreover, people simply don’t work as require various kinds of information from
well when they feel uninformed, frustrated, or your new hire. Be sure to ask in advance what
stymied. On the other hand, a contractor who information they’ll need so that you can pass
can hit the ground running will make better on any questions to the contractor prior to
relationships, will be more effective, and will her arrival. Human resources or security will
use your time and hers productively. typically supply ID badges, pass cards, access
codes, and keys to the office, restrooms, or
This article describes ways to prepare
other secure facilities. These items should be
for a new contractor; however, the tips here
available and tested.
could just as easily be applied to a temporary
employee, a new permanent employee, or in If the contractor is arriving from out of the
some cases, a transfer into your department. I country, make sure that your human resources
don’t assume any particular job description or department and the contractor have fulfilled all
title for the person, nor do I assume anything requirements related to visas, work permits,
about the person’s technical skill in any given and the like. The accounting people will need
category. Neither should you make such to deal with administrative and taxation issues.
assumptions. A crackerjack developer may be Make their jobs easier by coordinating and
completely oblivious to network configuration relaying the required information in advance,
issues — especially in a new environment both from your staff and from the contractor.
— and a brilliant documentation writer might Issues related to eligibility, tax numbers, tax
be flummoxed by a cryptic voicemail system. forms, and withholding information should be
Your contractor’s time is best used to solve the sorted out concurrently with the contract.
problem for which you’re hiring her, not her
own infrastructural or contractual issues.
WhatIsTesting.com 13
Are You Ready?
14 WhatIsTesting.com
We challenge you.
Lines of Business
Business Solutions
Technical Support
16 WhatIsTesting.com
by Michael Bolton, DevelopSense, a Toronto-based consultancy
and training firm.
WhatIsTesting.com 17
Are You Ready?
to explore their surroundings. Survey your people she’ll need to know. An introduction
staff for a number of interesting— and possibly from you is likely to carry more significance
undiscovered— places to visit in the area. If than one from a subordinate, so be prepared
those places are somewhat off the beaten path, to do this yourself. Even if you are routinely
ask the person making the recommendation to busy, getting your employees and contractors
provide a link to one of the several useful Web- to work together is a tremendously worthwhile
based mapping services. If everyone pitches in a investment. A contractor’s effectiveness often
suggestion or two, compiling them into a helpful depends upon being able to meet and connect
guide shouldn’t be burdensome. When you’re with other people. Most contractors meet their
finished, you should have a complete package new colleagues in business meetings, but more
of general information that can be passed to informal circumstances can lead to friendlier
any new employee or visitor on paper, via email, relationships. On the introductory tour, take
or on an internal Web site. Ask the new arrival your time. Cover the important places and people,
frequently for feedback on the checklist, and but be relaxed and try to avoid a hard-and-fast
refine it accordingly. agenda. Spend a few moments introducing the
new contractor to each staff member. Explain
On the Job quite generally what the new arrival is there
Make sure that you schedule some time on to do, and describe your staff member’s role,
the contractor’s first day for introductions and how each may be able to help the other.
and a tour of the essentials. You should be Don’t just concentrate on peers and colleagues.
prepared to walk around for at least an hour Spend a few moments chatting with other useful
with the new arrival, introducing her to the contacts with whom your new arrival will need to
interact—people in network services, reception,
the mail room, and accounts payable. As you’re
The kitchen or lunchroom walking around, show the new person all of the
is not only the place useful and necessary places around the office.
for refueling but also a An early stop should be the restroom. If keys
or pass cards are required, make sure that the
good place to meet and
contractor is given them upon her arrival. The IT
converse with others. department should have set up a default printer
Linger for a while and and informed you which one it is. Include this
encourage chatting, even on the tour, along with specialty printers and
other equipment that might be useful. Also
if it’s not directly related to the task on the tour, include visits to the office supply
at hand. Spend a little petty cash cupboard, the photocopier, the first aid kit, and
on group lunches, outside coffee the lunchroom. For the duration of the contract,
the contractor is a member of your company
breaks, or visits to the pub with your
and your department, and thus should be
contractor and the rest of your staff. accorded at least the same kind of assistance
If these informal approaches seem and respect given to your permanent employees.
of questionable value, consider that If you are the contractor’s supervisor, you must
be prepared to go to bat for her, and the rest of
productivity and effectiveness are your organization should be prepared to take
often based on personal relationships the same approach.
and rapport—do what you can to foster No matter what the task, there’s nothing worse
them. than having to research and answer the same
questions over and over again. Keep a list of
18 WhatIsTesting.com
by Michael Bolton, DevelopSense, a Toronto-based consultancy
and training firm.
frequently asked questions, their answers, and complete, can be reused and refined, but rarely
where someone can go for more information. In will you have to start it again from scratch.
many cases the FAQ information can be posted You’ll need to review things periodically, but
on an internal Web site, captured in a database the benefits will be immediate: happier, better-
within workgroup software, or collected in a prepared, and—most importantly— more
piece of email. If you don’t have such things set productive workers.
up, consider making the collection of FAQs a
task for the contractor, making such a document
part of the contractor’s package of deliverables,
since your contractor will have plenty of insight
on what’s important for a new arrival to know.
WhatIsTesting.com 19
CORPORATE OVERVIEW
Hexaware is a leading global provider of IT and BPO services. Over 40 of our clients are Fortune 100 companies. We
enable clients achieve competitive advantage by co-developing innovative IT/Process capabilities delivered through
flexible business models. We focus and have achieved leadership positions in domains such as HR, Banking and
Financial Services, Insurance, Leasing and Transportation. On the technology front we specialize in Business
Analytics, Enterprise Applications, Application Modernization/Management and Independent Testing. Founded in
1990, we are a US$ 153 Million company with over 4000 employees in 16 locations worldwide. We are currently ranked
as No. 11 Software Company in India.
TECHNICAL EXPERTISE
Our Key Offerings Technology – Legacy
Systems, Client Server, J2EE
BR / FS/SR Specification
Industry
Industry Specific
Specific
Business Requirement
Analysis
Gap Analysis
Functional Support
and .NET.
Solutions
Solutions Operating Systems –
Airlines Software Testing Existing Methodology Review
Existing Tools Evaluation
Multiple Virtual System
Process Consulting Process Recommendations
Manufacturing & High (MVS),
technology
System Integration Black Box - Functional Testing UNIX variants and Window
Banking & Securities White Box - Interface Testing
Testing (SIT) Grey Box - Regression Testing based.
Insurance
Performance
Load Testing
Stress/Volume Testing
AUTOMATION TOOLS
Technology
Technology Practices
Practices Testing Analysis and Interpretation EXPERTISE
Application Management
Test Management
Win Runner, Load Runner
Enterprise Application Test Automation Functional Automation
Load Test Automation
and Test Director - Mercury
Integration
Interactive.
People Soft
UAT
UAT Preparation & Execution
Roll Out / Production Support Functional, Performance
Oracle User Training
Siebel
Support
and Test Management Tools
E-Business solutions Fail Over / Availability Multi-tier Availability - Rational Software.
Low Resource
Testing Endurance Tests Silk Test and Silk Performer
from Segue Software.
Hexaware Technologies
Hexaware Towers, Bldg. No. 152, Millennium Business Park,
51/3, G.N Chetty Road, TTC Industrial Area,
TN S 3 "A" Bl k M h
Cover by Rex Black, President, RBCS, Inc., Bulverde, TX
Story
Is bad testing
eating your
Pr fits?
Using Quality Risks to
Guide Testing Effort
Testing should focus on mitigating specific risks to the
quality of the system. Sequence of test execution should
be driven by associated risk...
S
ince the 1980s, when Bill Hetzel Categories of Quality Risks
and Boris Beizer published their
Computer software, hardware, and systems can
influential books on software testing,
fail in the most amazing and various ways. Some
we have known that testing should be
bugs are not functional problems, but fall into
risk-based. Testing should focus on mitigating
other quality risk categories. We’ll take a look at
specific risks to the quality of the system. The
some categories of quality risks to stimulate our
sequence of test execution and the total effort
thinking about what to test.
expended on any given test should be driven by
the level of risk associated with that test. In the
Functionality
1990s, people like Rick Craig, Paul Gerrard, and
I independently created some ways to achieve The most obvious quality risk category is that
systematic risk-based testing, often by adapting of functionality. There’s always a chance that
ideas from other forms of engineering, such as the system does not provide some function it
insurance and medicine. In this article and the should. The function can include a capability,
next one, we’ll talk about ways to perform risk feature, processing, input or output.
based testing. For example, if you’re testing a calculator
21 WhatIsTesting.com
WhatIsTesting.com 21
Using Quality Risks to Guide Testing Effort
4
Unacceptable performance
load above 500
Transaction Processing Time
Unacceptable performance at
2 any load
Unacceptable performance
degeneration above time
1
Acceptable performance
program, the lack of an add capability would fall performance. The shaded area at the bottom of
into this category. So would a situation where the figure represents the required performance,
the add capability was implemented, but the “+” which is one second or less transaction
key didn’t cause the function to be activated. processing time at a load of up to 1,000
The add capability might be implemented and transactions per minute.
accessible, but might work only on integers, not
Risks to system quality in the area of performance
real numbers. The add operation, when carried
include the possibility that the system responds
out, might give the wrong result, as in 2+2=5.
to input, produces output, or
Or there could be some strange side effect
processes data too slowly under
where the operation is handled but the
all levels of load. The straight
result is not at all as expected, as in a
dashed line shows this possibility.
divide function where 2 divided by 2
The system might perform fine up
returned one, but in Roman numeral
to some level of load, but have an
format.
unacceptable non-linearity in the
performance curve, as shown by the
Performance and Reliability steep curved dotted line. Finally, the system
In Figure 1, you see a graphical representation might perform within specifications during an
of three types of quality risks in the area of initial test run, but subsequent tests—when the
22 WhatIsTesting.com
WhatIsTesting.com 22
by Rex Black, President, RBCS, Inc., Bulverde, TX
WhatIsTesting.com 23
Using Quality Risks to Guide Testing Effort
A small change, even one line of code, can affect So, data quality poses a major category of
the behavior of the rest of the system. A small quality risks for many systems. The system
change can cause incompatible data to enter might corrupt or lose data. The system might
shared data sets, including dynamic dataflows store bad or nonsense data in a database
and static databases, resulting in bugs that without integrity constraints. Databases shared
across multiple systems can allow data which is
24 WhatIsTesting.com
by Rex Black, President, RBCS, Inc., Bulverde, TX
valid for one system to be accessed by another Of course, if the system does not support the
system which does not know how to handle character sets used by the local language, we
that data, resulting in failures that are removed have a localization problem. Those languages
in time and feature space from the source of the that use the Roman alphabet, such as English,
problem. German, and Spanish, have single-byte
character sets. Some languages that use other
Further complicating these situations, it is
alphabets, such as Russian and Hebrew, have
sometimes difficult to restore the system to
single-byte character sets, too.
working state after a badly-handled error
condition. In some cases, the system, in the Localization also has operational implications.
course of succumbing to the error, damages For example, time zones and time formats vary
configuration files or static data stores in a way based on locale. Does the time change in the
that’s hard to fix later. The data quality bug in the summer? (In the United States, this is called
expense reporting package I mentioned earlier “daylight savings times,” but it goes by different
is an example of this kind of misbehavior. names around the world.) If so, when does
adjusted time begin and end? Are
Date and Time Handling dates written “month-day-year” (as
In addition to having to handle in the United States) or in the more
common errors, many systems must logical “day-month-year” format (as
also handle dates. This has created in much of the rest of the world)?
significant information-technology
problems, including the infamous Configuration and
“Y2K bugs” that consumed huge Compatibility
proportions of company and government
IT budgets in the late 1990s and contributed to Quality risks related to
the depression in the high-technology sector in
the early 2000s. In addition to having to handle
Localization may be in
once-in-a-hundred-lifetimes type of events like the categories of GUI or
a new millennium, systems must frequently operations.
handle events like leap years.
Many systems must deal with expiration dates.
Another family of risks to system quality lives
Licenses expire. Credit cards expire. Insurance
in the areas of configuration and compatibility.
policies expire. After some period of time, the
Different users configure both the hardware
right of a bank to disqualify a borrower based on
and software of systems differently. A family
a derogatory like a bankruptcy can also expire.
of systems may support various hardware
Failure to handle such expiry events properly
configurations. Often, the number of potential
can expose a company to serious financial and
combinations of configurations is huge and
legal risks.
testing inappropriate combinations can result
in risk of failure in the field.
Localization
Localization refers to the ability of a system to Standards and Regulatory
support local customs, languages, norms, and Compliance
laws. There are two broad categories of quality
More risks to the quality of the system exist
risks related to localization. One category
in the areas of standards and regulations. A
relates to the user interface, and the other to
system can work properly but be excluded from
operations.
the market by failing to meet standards, either
WhatIsTesting.com 25
Using Quality Risks to Guide Testing Effort
Documentation
For many people the quality of the documentation
significantly affects their experience of quality
when using the system. Documentation quality
problems include being technically incorrect, of
course, especially the examples. The user can
find the documentation insulting or offensive,
teeming with grammatical or spelling errors, or
afflicted with distracting cosmetic or formatting With a quarter-century of software and systems
problems. engineering experience, Rex Black is president
and principal consultant of RBCS, Inc., a leader
Documentation refers not only to hard copy, but in software, hardware, and systems testing.
also to electronic documentation. Help screens,
installation instructions, error messages, and
wizards are a form of documentation. This article is based on an excerpt from Rex
Black’s book, Pragmatic Software Testing,
published by Wiley
26 WhatIsTesting.com
That Have I got a deal for you?
Time
of Year
Have I got
a DEAL
for you …?
A
s this is our first issue, we are in a unique giving something up – time, money, energy, or
place—: This issue will set the ground effort, in exchange for something we value more.
rules for every issue that follows. Future If you don’t think it’s like that in the world of
issues will build on this one, so we have to lay software testing … think again.
the right foundation. I would like to start that
Having an independent test group splits
foundation with a simple assertion:
management attention and costs money, but it
also decreases risk and provides an impartial
The methods and extend of our testing are assessment of the quality of the software.
all choices; you could even say they are Using bug-tracking software costs money and
creates the risk of “information overload”, but
trade-offs.
also ensures that every incident is logged and
tracked. With a complete list
Life is all about trades. We trade of incidents, a change control
a “work week” of our lives for a board (CCB) can determine
pay check, then we trade that which defects should be fixed
pay check in for a home, for food, in the next release, by priority,
and utilities or clothing. We trade but that invariably slows down
some of our freedom for a family. bug fixes and decreases the
personal touch.
At each stage of the game, we are
28 WhatIsTesting.com
by Matthew Heusser, Socialtext, California, US
Documented test cases are to enter into the equation, and that worries me
great, right? We couldn’t a bit.
live without documented test
Okay, more than a bit. It worries me a lot. It’s
cases, could we? Well, maybe.
downright irresponsible to suggest that there is
Time spent documenting test
cases is time that could be spent testing. There
is also some evidence to suggest that following Not all trade-offs are equal;
the same test scripts again and again leads
to thinking about problems in the same way,
the trick is to carefully weigh
which could cause a miss. Many times, finding the pros and cons before
a bug (or a repeatable error condition) is like making a decision....
playing a game of twenty questions; how likely
are those scripted test cases to get the right
answer if they lack feedback?
one single way to do it – a single one-dimensional
Requirements-driven testing requires written scale for goodness. The real suggestion that the
requirements, and “locks in” the feature set at “Best Practice” crowd is that you listen to them,
the beginning of the cycle, when we have the doing things the way they suggest, instead of
least information about what the users actually thinking for yourself. The trade-off is your brain
need and how the software will support them. for their brain. Keep in mind, the guru never set
Reviews and Inspections of documented test foot in your office and doesn’t even know what
cases slow down the test process, again taking product you make.
time away from test execution. Exploratory
When pressed on this issue,
testing requires talent and practice; exploratory
most gurus admit that, of
testing in the hands of someone without
course, “best” doesn’t really
experience could just be a waste of time.
mean “best.” To them, “Best
How can your team get “better?” Mentoring, Practice” is just a short way of
Coaching, and Skill Development are all very saying “A practice that is good
hard to measure and hard to evaluate. Test enough for enough people enough of the time
Process Improvement is easier to measure, but that it’s probably worth considering.” If that
also of more questionable value. were really the case, then there are a number
of alternatives; James Bach of Satisfice recently
Not all trade-offs are equal; the trick is to
listed several on his blog, which you can find at
carefully weigh the pros and cons before making
www.satisfice.com:
a decision – to consciously realize what you are
trading away, what you are trading for, and if • “Here’s a practice I find interesting”
the switch is worth it. The question is, what
• “Here’s what I would recommend for this
do you value more? Which outcome is “better”
situation”
for your company, with your customers, selling
your product, at this point in time? • “Here’s my favorite practice for dealing with
{x}”
I’m harping on this point for a reason. Not
because it’s so blatantlyzing obvious (it is), • “Person {x} attributes Practice {Y} for his
but because so few people are talking about success. Maybe you’d like to learn about
it. Instead of talking about trade-offs, they it”
are talking about “Best Practices”, which,
Notice that all of those examples included
apparently, always solve all of your problems
conditionals, and that best practices are free of
without introducing any new problems. The
all conditionals. When someone consistently
fact that this defies common sense doesn’t seem
WhatIsTesting.com 29
Have I got a deal for you?
30 WhatIsTesting.com
Learn by Hans Schaefer, Cairman : Norwegian Software Testing Qualifications Board
How To
Test
What a
Tester
Should
Know, even
After Midnight
WhatIsTesting.com 33
What a Tester Should Know, even After Midnight
to do so. If they are told to get the job done (and Another definition of testing is trying to create
explicitly or inherently passing the message confidence in the product. Confidence, however,
that defects delay the progress), people will try is best built by trying to destroy it (and not
not to find defects, or they will overlook many. succeeding in doing so). It is like scientific work:
Someone proposes a new theory, and all the
Thus the first problem is to clearly define the educated specialists in the area try all they can
purpose of testing, and make the purpose to show that it is wrong.
perfectly clear to the testers.
Second problem relates to change. Software
products are growing more and more complex. Defects clump together: they
The focus of the requirements is changing, are social!
for example emphasizing more security, Defects often have a common
interoperability and usability. This leads to cause!
changes in the requirements on the testing job.
Thus, a tester should continuously try to learn Try to find common causes,
more. and then follow them!
The next problem is the mindset of testers. Where you find defects, dig
As one of the purposes of testing is finding deeper!
34 WhatIsTesting.com
by Hans Schaefer, Cairman : Norwegian Software Testing Qualifications Board
After trying this for some time, unsuccessfully, input and misuse.
the new theory is slowly adopted. This view
There are three kinds of tests: The good, the bad
supports Myers’ definition of software testing:
and the ugly tests: Good means everything is
Find defects! The approach is a pessimist
fine, all inputs are right. Bad means inputs are
approach. The pessimist believes «this probably
wrong. The ugly tests is where all wrong things
does not work» and tries to show it. Every defect
happen simultaneously: Someone restarts the
found is then a success.
server while you do your reservation and at the
People function by motivation. The definition same time sets the machine date wrong, …
of testing as actively searching for bugs is
Another way to look at risk is to asses the possible
motivating, and people find more bugs this way.
damage of the failure. This may be difficult to
It works in two ways: One is by designing more
analyze but one can make a beginning by asking
destructive or just more test cases. The other
“what is the worst thing that can happen if this
one is by having a closer look at the results,
function, feature or request fails?”
analyzing details a not-so-motivated tester
would overlook. In the latter case this may Better tests forces developers to do better work,
mean to analyze results that are not directly inform management about risks, and lead to
visible at the screen, but are deep inside some lower cost of software creation. Testers bring bad
News, but that is their job. Nobody loves speed
checks on the motorway! But speed checks
A tester should try to find make our roads safer, and we all benefit.
defects!
Continuous Learning
Defects may appear at places Continuous learning is required in nearly any
where you do not see them job. But for testers it is absolutely essential.
easily, i.e. not on screen output!
WhatIsTesting.com 35
What a Tester Should Know, even After Midnight
A tester needs programming experience. There your colleagues, and go to testing conferences!
are lots of programming bugs, even after unit
testing by programmers. The tester should A Critical Mindset
have an idea of problems posed by a particular Don’t believe anything!
programming language. Most testers who have
tested software written in C or C++ know that As a tester, don’t assume anything. It
they should check for memory leaks or memory may be wrong! Designer, specifiers, and
overwriting. Those who used early versions of programmers assume a lot. It may be
MFC (Microsoft Foundation Classes) know that difficult to ask because you may look
the program would crash for any date greater stupid asking. Someone who could answer
than a particular date “We need to check may be far away or not easily available.
what that date was and with which version You wouldn’t even realize that there may be
of MFC” another interpretation. Sometimes people
you ask also don’t know, or you get some
The tester needs design experience. Much design sarcastic answers.
is about contracts and communication amongst
various modules. If the tester has no idea about Using the pessimist view, you may as well assume
architectures and their inherent problems, she that any assumption is probably wrong.
will have trouble planning integration tests. There are ways to overcome the trouble that you
The tester needs domain experience. System may seem stupid. Learn how to deal with people,
testing is about implementing the right solution, learn how to interview, learn how to be self-
doing what the domain requires. Can you test confident. Ask someone else. Read, review, sleep
a railway interlocking system? (Eh, what does over it, and try to find different interpretations.
interlocking mean, by the way...?). At least some You may need a lawyer’s mindset.
domain experience is a must to test the system If you don’t get an answer, have it on your issues
and communicate with different stakeholders.
The trouble is that this may not be enough. Don’t assume! Ask!
Testing for today’s stakeholders may definitely
If nobody else asks the right
be not enough. There are totally new ways a
question, you might do so!
system may be used or interfaced with other
systems and a tester should try to anticipate at Think about new possibilities,
least part of this! A tester should always try to unknown problems, and the
find new ways to look at the object under test, stuff you learn.
new approaches, and new viewpoints.
Think «out of the box»!
And finally: testers should try to use the newest
approaches and technology. You have to learn list. But don’t just assume anything! Don’t take
them. Read testing books, look for and learn things for granted! And especially don’t believe
tools, study journals, participate in discussion that the system is probably right
groups, special interest groups, discuss with
Defects
Learn more, about everything!
Nobody loves the messenger with bad News!
Programming, architecture, As a tester, most of what you report is bad news.
new domains, users, tools, The bad News is the bugs, or issues to call them
anything! in a neutral way. Textbooks generally handle this
area well. There is issue reporting, registration,
36 WhatIsTesting.com
by Hans Schaefer, Cairman : Norwegian Software Testing Qualifications Board
handling, removal, retesting, regression testing. The second problem is worse: Sometimes we
We know all this. But there is something extra experience failures, and we cannot recreate
to it, and that is not there in the books: them. These issues are called intermittent
bugs. They are especially difficult if they
1 - An issue is only interesting for a tester if
introduce system crashes. Upon restarting the
it is accepted as a defect and repaired.
system, any corrupted data in the memory may
2 - There are defects, which are the result of be deleted, destroying the evidence. In many
running many test cases in a row in some cases, intermittent bugs are the result of long-
very special order. term corruption of some resource or memory.
The first problem is one of salesmanship and An example is memory leaks. Some function in
discipline. As a tester, one has a sales job. the program does not return unused memory
Nobody is interested in spending any money on when finishing. But because there is a lot of
repairing defects. They will only be repaired if available memory, this can go on for a long time,
they are important enough. Thus, as a tester you until the memory is depleted. Other resources
have to report an issue in such a way that the may also be depleted. As an example, the Mars
developer understands that it must be repaired. Explorer ceased working after 18 days due to
The damage must look big, the probability of it too many files accumulated. In many real time
occurring must look big, and the issue must be embedded systems, the tasks are restarted at
easy to repeat. certain intervals, in order to cancel out possible
corruption of resources.
Thus the tester should not just write an issue
on the issues list. The tester should think: Are The trouble is that ANY shared resource can
there any other related scenarios, which would be corrupted. It comes down to checking the
make this problem worse? Are there any more not very easily visible outputs such as files,
stakeholders interested in this? Is this really memory pointers, buffers, databases, messages
the whole problem or is there more to it? It may to remote systems, registry and many other
also mean to invent and run some more test resources. It could even be the result of a race
cases. Cem Kaner has presented some excellent condition, which depends on the exact timing
material on this cause which is available at of some parallel tasks. And intermittent bugs
his website at http://www.kaner.com/pdfs/ normally require a whole sequence of test cases,
BugAdvocacy.pdf not just one input and output.
Finally, there are the human issues, about However, if intermittent bugs occur, it is a good
diplomacy, politeness etc. A tester should idea to be able to rerun the same sequence of
make sure not to hurt anyone personally when test cases, maybe even with the same timing,
reporting an issue. and do more checking than before. James Bach
has a good guide to investigating such problems
available at http://blackbox.cs.fit.edu/blog/
james/archives/000197.html.
For every issue (or bug),
One final problem: You may be wrong yourself.
research more about it!
Humans err. Testers are humans. This means
Make sure you report it as a you overlook problems; you misunderstand
risk, and as the whole risk! outputs, and some of the problems you think
you have found are actually not problems.
Defect reporting is a sales job! Be self-critical: Sometimes it is your fault.
Mistrust your memory. It is restricted. This
Be diplomatic when reporting means it is better to take notes, to log
issues!
what you did, what the system did, what
WhatIsTesting.com 37
What a Tester Should Know, even After Midnight
example, a control flow diagram, a data flow effort. Also remember that the defect may not
diagram, a state transition diagram, a call be in the object under test, but in the test data
graph, system architecture or a use case. or the output analysis. Be self-critical!
• Basic coverage is executing every box. And finally, there is test automation. Running
tests using automated tools helps regression
• The next level is testing every connection. testing. But test automation is more than that:
• This should be the minimum when testing. If
there is more time, the next level is combining
things, for example pairs of connections. Equivalence partitioning is a
good basic technique!
Next, a test should follow the usage profile. This
is difficult, especially in module and subsystem Remember combination testing!
testing. But as a tester, one should at least try
to get some idea about how the object under
38 WhatIsTesting.com
by Hans Schaefer, Cairman : Norwegian Software Testing Qualifications Board
Tools may read specifications and automatically • ISEB: Information Systems Examinations
generate test cases. Tools may automatically Board of British Computer Society.
create or restore test environments. Tools may http://www.bcs.org/BCS/Products/
be used to manage the testing effort and the Qualifications/ISEB/ has run a certification
test material. Remember that automaton can scheme for software testers since 1999.
be applied to any part of the software testing
• ISTQB: www.istqb.org International Software
life cycle and not just test execution.
Testing Qualifications Board. Develops
and runs an international software tester
certification scheme.
Test the test environment – well
before test execution! • ISTQB Glossary: www.istqb.org/fileadmin/
media/glossary-current.pdf
Check you test data!
• Kaner 99: C. Kaner, J. Falk, H. Q. Nguyen,
“Testing Computer Software (3rd ed.), John
Wiley, 1999.
WhatIsTesting.com 39
Take Control Of Your Quality
Virtusa
4 uality Assurance Services
Enterprises know well that quality can make or break customer loyalty and brand reputation. However, the growing complexity,
constantly changing market needs, and time to market pressures make software quality an elusive challenge.
Virtusa QA lifecycle services allow you to take control of your QA processes, projects, people, and priorities, while strengthening
your QA capabilities, minimizing risk and reducing cost.
QA Assessment
QA Offerings
- QA Outsourcing Evaluation
- Tools Evaluation
- Quick Wins Workshops
QA
Ass ess men t
QA Process optimization
QA Outsourcing
About Virtusa
Virtusa is a global provider of custom IT solutions and outsourcing services to Global 2000 enterprises and software vendors in
the financial services, insurance, media and communications, high technology and other industries. Our deep domain strength,
custom solutions and services, and a unique platforming methodology enable our clients to reduce costs, improve business
performance and accelerate revenue generation. We deliver these results by integrating a consultative approach with our global
delivery model.
2000 West Park Drive, Westborough, MA 01581
Phone: 508 389 7300 Fax: 508 366 9901
© 2006 Virtusa Corporation. All rights reserved. www.virtusa.com Contact: info@virtusa.com
Learn by Erik van Veenendaal, Improve Quality Services BV : The Netherlands
How To
Test
Finally
Usability
Testing?
will it finally happen?
A
new testing magazine that has chosen software code that is being developed world-
web testing as its central theme for wide is directly or indirectly related to the user-
the first issue! I assume that this also interface, we still only dedicate a minimum
means attention is provided to one of percentage of our test effort to usability
the most critical success factors for websites: testing. Yet, there are many so-called best
usability and thus usability testing. In fact practices available. Last week I was involved
usability has been identified in various surveys in a usability test that very clearly showed that
as one of the main reasons for project success thorough attention for usability throughout the
in any IT project! For a number of years I’ve development process (requirements, standards,
been lecturing on this topic at test conferences. expert reviews, usability testing) can deliver
At EuroSTAR, I have received the best tutorial great results. The users were enthusiastic
award for Discount Usability Testing and regarding the new system that supported their
our company, Improve Quality Services, tasks in an efficient, effective, and user-friendly
regularly runs courses on Usability Testing. manner. This is also possible in real-life IT-
Yet, I don’t have the impression that all this projects!
pioneering work has had much impact on the
As far as I’m concerned every (senior) tester that
testing community. During the last EuroSTAR
operates at system level should, in addition to the
conference, an usability expert from South
conventional functional test design techniques
Africa stated that “usability (testing) will only
(boundary value analysis, equivalence
start to be performed and receive the right level
partitioning, decision tables etc.), also have the
of attention, when testing for
level of knowledge and skills
functionality is under control”.
that allows them to apply a
An interesting thought, which
number of relatively easy to
as far as I’m concerned, is very
use usability test techniques.
much true. Perhaps we were
The first things that come
just not ready for it, but are
to my mind in this context
we ready now…?
are the Heuristic Evaluation
It remains strange that when technique developed by
no less than 40% of the Jacob Nielsen (www.useit.
WhatIsTesting.com 41
Finally Usability Testing? Will it finally happen?
com) and the SUMI questionnaire method (www. During a recent conference, a number of
improveqs.nl). Both techniques are relatively enthusiastic former participants of my
easy to learn, do not require more than one or usability courses told me they were now using
two days of testing effort and therefore have a the techniques mentioned above in their test
great cost/benefit ratio. Recently, the British projects with good results. Usability testing,
Computer Society (BCS) Special Interest Group will it finally happen?
in Software Testing developed a testing standard
For queries or comments you can contact Erik
in the area of usability testing that is certainly
van Veenendaal (eve@improveqs.nl)
worthwhile to get acquainted with (www.
testingstandards.co.uk). Sufficient possibilities A paper on discount usability testing can
exist, therefore, to make a good, low-cost but be downloaded from www.improveqs.nl
thorough start with usability testing; preferably
in co-operation with developers. Prevention is
always better than cure.
42 WhatIsTesting.com
Canarys Automation Pvt. Ltd, # 135, 7th Main, 4th Block Jayanagar, Bangalore – 560011
Ph: +91-80-26539915, +91-80-26642922
marketing@ecanarys.com; info@ecanarys.com
Canarys is glad to inform that we are Partners to Radview Software, providing Sales & Support
Services to customers in India. Please find a brief on the Black Box Testing Solutions offered by
Radview:
Only RadView provides software-testing tools that feature JavaScript test-agenda creation for
performance testing, load testing, and functional testing of website applications. Throughout the
web application development lifecycle, the seamless integration between RadView's performance
testing / load testing products (WebLOAD and WebRM) and functional testing product (WebFT)
provides you with the necessary tools to make certain your web application is scalable and
robust.
Award-winning WebLOAD can help companies deploy high performing e-business applications
by modeling and anticipating the real-life demands on their applications. By accurately
simulating Internet user behavior and predicting capacity requirements, WebLOAD reports
bottlenecks, constraints, and weak links within an application – before they cost you downtime,
lost sales, or more importantly, lost customers.
WebFT is the industry's first Web-centric testing solution that efficiently verifies the functional
accuracy of Web applications and ensures applications perform as expected.
Speed implementation time — use of open standards scripting language reduces the amount of
staff training required
Improve quality — resulting from higher quality Web applications
Reduce test script development costs — leverage single transferable scripts for fast, easy reuse
of test scenarios between development teams
Speed Web application deployment — streamline the testing process through the use of single
transferable scripts.
Canarys Automation Pvt. Ltd, # 135, 7th Main, 4th Block Jayanagar, Bangalore – 560011
Ph: +91-80-26539915, +91-80-26642922
Some Things I’ve Learned in Software Testing
Some Things
I’ve Learned in
Software
Testing
S
everal years ago, when I started out as that any error messages that appeared were
a software tester, my goals for learning due to mistakes I made using the software.
software testing were clear. I needed Then, a senior tester encouraged me to follow
to learn how a software company my instincts: he told me that if something
operated, learn about the software I was bothered me, I should log it as a potential
assigned to test, and learn how to test software. problem instead of letting it go by. As I tested,
After a while, I enjoyed finding and reporting I learned that when I had a nagging feeling
difficult-to-reproduce bugs; I felt pleased that that something was wrong, there usually was
we were finding and fixing issues that could a problem in the software. Sometimes it was
negatively affect customers. a usability issue, or an awkward spot in the
application that needed more investigation, but
How did I go from a nervous student to becoming
whatever the issue, it was almost always worth
a confident tester? At first, I read everything
taking the time to investigate further. Even
I could about testing, the product we were
now, it is tempting not to listen to that voice
working on, and the systems we used. When
inside that tells me something is wrong with
I couldn’t find anything to read,
the software, but every time I don’t pay
I asked coworkers to teach me
attention, I miss at least one bug that I
things. I also learned a lot through
regret later. Occasionally, my instinct is
mentoring from more senior
wrong, but more often than not, that
developers and testers.
sense of feeling uncomfortable with
In the end, I learned the most by the software helps me uncover
doing. (I still do.) When I first started important information.
out in testing, my view of what a bug looked
I also learn a lot from my
like was quite narrow. Like many users, I felt
44 WhatIsTesting.com
by Jonathan Kohl, Software Consultant, Kohl Concepts Inc : Calgary, Canada
mistakes, especially when I try something, fail I also read statements like: “Quality Assurance is
and try something else. Do you learn from your much more than software testing.” In this line of
mistakes and from trying new techniques? Who thinking, it is common to suggest that QA should
can you talk to in the organization that can help be responsible for the development process, that
you learn more about testing? quality is only as good as the process it follows.
However, in my testing experience working for
There is More Than One Way to small companies whose survival depended on
Test Software satisfying paying customers, the process took a
It didn’t take long for my experience to show back seat to the product. We strove for product
me that much of popular software testing excellence over process excellence. If a process
information is really folklore. It was interesting helped us deliver a product that met business
to read, but I soon discovered that when I tried to goals, we followed it. If a process got in the
apply popular testing wisdom (frequently called way of those business goals, we scrapped it.
“Quality Assurance”) on real projects, Everything we did needed to be aligned with
my efforts failed. One practice involved the goals of the business if we were to survive.
writing all the test cases first (pre- This key lesson shaped my thinking as
scripting test cases) based on the a software tester.
project documentation, and then My desire to learn more about software
testing using these procedural test testing grew because I learned the most
scripts later. Trying this practice and provided the best business results
caused me a lot of problems. I from actually using and testing software.
found that testers would run out of time I wanted to find more techniques
to actually test because they were so compatible with what I was learning about
busy writing about what they were software testing. So I reread the first book I’d
going to test. As things changed over the life ever read on software testing: Testing Computer
of the project, we got bogged down maintaining Software by Cem Kaner, Jack Falk and Hung
documentation. And, when we started testing, Nguyen. Again it resonated with me, and I began
these pre-scripted test cases really narrowed to read everything I could find that was written
our focus, often making us miss entire classes by Cem Kaner. Through him, I discovered
of tests. James Bach and later Brian Marick. That was
In the software start-up I was working for, it when I found my niche. These were people who
was important for each member of the team thought about testing the way I did. My own
to provide value to the goals of the business. experiences and ideas were echoed in their
A development manager then complained to work. Their writing was true to the point and
me that we spent so much time developing backed by experience, but most importantly,
and maintaining test cases that we didn’t do when I tried what they recommended, it worked.
nearly enough actual testing. Once I took that These three testing thinkers, along with Bret
to heart, the business was pleased with the Pettichord, went on to found the Context-Driven
results I provided by using exploratory testing Testing School1.
to focus on what was important to the business The Context-Driven Testing School has identified
and to the customer. Previously, I had focused different schools of thought in software testing.
on writing lots of documentation (test plans Bret Pettichord has outlined four of them in his
and test cases) before testing. At first it felt a bit Four Schools of Software Testing2 presentation:
wrong, like we weren’t following “the rules,” but
the development team and our customers were • Analytical School
happier with our results. That carried more • Factory School
weight with me.
WhatIsTesting.com 45
Some Things I’ve Learned in Software Testing
46 WhatIsTesting.com
by Jonathan Kohl, Software Consultant, Kohl Concepts Inc : Calgary, Canada
general systems thinking, history, software that influence me, and provide enormous
development, construction, law, psychology, possibilities for learning. My background in
family therapy, adult education theory, writing, music and sports, and my education also
writing and performing music, experimental influences the way I approach learning and
science, among others. Older, more established testing. What are your influences in life, and
disciplines have often already dealt the same how much do you draw on these other influences
kinds of problems we are trying to deal with when testing software? What other disciplines
in software development. Applying successful remind you of your work in software testing?
principles from other disciplines can be a
rewarding source of learning. Testers Can Learn From Other
I often explain software testing ideas by
Roles
using an intersection of ideas from different I’ve worked in roles other than software tester,
fields. Three that I think of frequently are and each of these taught me something
philosophy, business and technology. Testing, important about software testing.
like philosophy, involves asking questions. Not Working as a programmer, I learned how to
only do I question the assumptions made in the look at applications differently. Understanding
product I’m testing, in our development efforts, the application from a source code perspective
and in the process we adhere to, but I constantly helped me develop a catalogue of potential areas
challenge my own assumptions about testing. in a particular programming language that are
Studying philosophy and practicing critical more susceptible to bugs. It also provides a
thinking skills especially help me when I’m better understanding of where to find useful
generating test ideas. information for reporting a bug. For example,
Business considerations help me focus the work web applications usually have a server log
I’m doing. Am I adding value on a team? Is that may have debugging information useful
what I’m doing helping or hindering the for reporting problems. As a tester
goals of the organization? Is my testing wearing a developer hat, I was the
focusing on what is important to the recipient of bug reports, rather
goals of the company, or am I blindly than a generator. It helped me
following a process? Understanding understand how a poor bug report
how businesses work, how they can frustrate developers.
market themselves, and how they stay In a technical writing role, I learned about
functioning is important to testing. design and how design (UI or architectural)
Technology and testing are related because we can affect the quality of a product. I noticed a
use tools, and interact with designers, developers correlation between complicated designs and
and users in order to test. We rely on computer the amount of bugs found. I learned that if I
technology not only in software development, had trouble writing user documentation for a
but in most businesses situations. As testers, particular feature, it would likely be a source
we must have a certain level of skill to be able of bugs. Writing down requirements and design
to use technology. Since technology moves so ideas from the point of view of a user exposed
quickly, it is difficult to keep up and it seems complexity.
like there are infinite technological areas to Working in sales taught me about the big
explore as testers. We might specialize in testing picture, about how a software tester can serve
a particular technology, or we may depend on the business goals of an organization. A company
certain tools for our testing. does not necessarily survive because they are
Philosophy, business and technology are areas such-and-such CMM level, or follow the 12
practices of Extreme Programming, or because
WhatIsTesting.com 47
Some Things I’ve Learned in Software Testing
Understanding how an application works from a • Reading error messages in the server logs
technical perspective, and being able to describe
• Changing the level of logging to get more
that in a document helps me test more effectively.
information on the server
It helps me ask questions that people I work
with find useful. Working directly with potential • Saving relevant information and talking
and existing customers has helped me focus on about possible causes with administrators
their needs in my testing. Understanding the and developers
goals of the business helps me prioritize my
Because I practiced, when I next tested the web
mission in testing on a particular task.
application, gathering relevant information from
What other jobs have you had other than in server logs to use for a bug report was second
software development and testing? What have nature. It took much less time to do after I had
you learned on those jobs that you could apply practiced those skills.
to testing? Are there specific skills you developed
This is just one very simple example, but it
in other jobs that give you an advantage as a
helped my testing effectiveness. There are many
tester?
skills we can develop, and many techniques
we can practice. What specific skills you rely
48 WhatIsTesting.com
by Jonathan Kohl, Software Consultant, Kohl Concepts Inc : Calgary, Canada
on as a tester? Can you name them? Can you Learning software testing is a rewarding,
identify technical skills, investigation and career-long journey. We all learn differently,
problem-solving skills and softer skills related and I encourage you to try different ideas and
to communication, and working with others? see what works for you. Don’t be afraid to fail
when you try something new; we often learn
Conclusion more from our failures than successes. Quality
At the end of each section of this article, I have guru W. Edwards Deming said: “Drive out fear.”
posed questions for you, the reader. If you would Don’t be afraid to try something new, if you
like to learn more about software testing, I urge have an open mind, you are guaranteed to learn
you to answer these questions as best you can. something from it.
Take out a pencil and paper, and write down
your answers to the questions. Read them over,
and see if there are any new areas for study for About the Author
you to pursue in testing. You should have some
Jonathan Kohl is the founder and principal
new ideas about software testing you’d like to
software testing consultant with Kohl Concepts
learn more about. Do you want to learn more
Inc., based in Calgary, Alberta, Canada. A noted
about testing techniques? How about different
testing thinker, Jonathan is recognized as a
schools of thought or definitions on testing? Are
leader in the exploratory testing community. He
you interested in developing your technical or
is a popular author and speaker who believes
programming skills? Would you like to learn to
that testing is a challenging intellectual craft.
use a test automation tool? How about learning
Jonathan’s blog on software development and
more about the end users of your software?
testing issues is one of the most well-read testing
With software testing, there are many avenues
blogs in the industry. Jonathan is a regular
for learning, and the more you learn, the more
contributor to Better Software magazine, as an
you realize how much more there is to learn.
author and technical editor. Check out other
I constantly learn more about software testing writings at www.kohl.ca.
and I hope I have spurred your thinking on how
you can learn more about software testing too.
Even though I am no longer a beginner I still do
the following:
Notes
1
Kaner, Bach, Pettichord, Marick. The
• Read about software testing and other Seven Basic Principles of the Context-
disciplines Driven School http://www.context-driven-
• Attend and contribute to workshops and testing.com/
conferences on software testing 2
Pettichord, Bret.(2003-2007.) Four Schools
• Identify skills and techniques I am of Software Testing http://www.io.com/
using when testing, and explain them to ~wazmo/papers/four_schools.pdf
colleagues 3
Kohl, Jonathan. (2005) TDD - A Fifth
• Participate in mailing lists, forums and other School of Software Testing http://www.
communities of practice related to software kohl.ca/blog/archives/000087.html
testing
• Work with others skilled practitioners who
constantly challenge me to do better
• Practice, practice, practice
WhatIsTesting.com 49
Sierra Atlantic Testing Competency Center
Our Testing Competency
With over 12 years of experience, Sierra Atlantic is an established offshoring services company
using CMM Level 5, ISO 9001:2002, and BS7799 certified process. Using our testing competency
center SATIN (Sierra Atlantic Testing Intelligence), we create speedy, low cost and high-quality
software. This in turn is delivered through our well-defined engagement models and process
methodologies and incorporates the industry’s best practices.
State-of-the-Art Facilities
Our state-of-the-art Interoperability Lab provides compatibility / interoperability testing services
to software product companies. The scope of this service includes:
x Hardware / OS platforms
x Enterprise Applications
x Middleware platforms
x Application Servers
x Web Servers
x Databases
x Browsers
With over 250 person years of experience in software testing services, our resources have in-
depth understanding of various testing methodologies and technologies. The following graph
illustrates this:
7% 8% Only manual testing
7%
WinRunner
10% Test Director
28% QTP
LoadRunner
Silk Test
Rational Robot
23%
17%
QA
is More
Challenging
than
Development
I
come from a background in product product functionality and issues first hand, and
development and have been in QA for about delivering a complex product to the market. I am
a year or so, that too in a senior management very convinced that in a real world, it is easier
capacity and not necessarily an engineer. to don a developer hat than a QA hat. In this
It saddens me when I interview some good QA article, I attempt to show in a very simplistic
engineers and they seem almost apologetic way what I mean by this statement.
about the fact that they are into testing, and
Of course I say real world, because in an ideal
more so when they are into manual testing and
world, a Dev will be much more like a QA and
not automation. This probably stems from the
QA will be much more like a Dev, and they have
fact that writing code is considered as the best
joint ownership of quality of the product. The
(and smartest) aspect of software development
company I work in doesn’t claim to be the ideal
and anyone not doing that is considered less
company, but I find it much closer to it than
smart.
many other companies I have seen.
I started thinking about whether this is really
Let me start with an example. We are given
the case, that writing code is the smartest part
a functionality to implement: List all prime
of the software development lifecycle and what
numbers between two given numbers X and Y.
I came out was the reverse; that writing code
Now here is what a developer has to deal with:
is probably the easier part of the development,
it is testing and Quality Assurance (QA) which ● Find/implement an algorithm to check if a
is tougher. This is based on my discussions given number is a prime number.
with the QA engineers and leads, looking at the
● Implement a logic which cycles through
WhatIsTesting.com 51
QA is More Challenging than Development
Test Entry
Design
Test Entry F
I
Functional
Requirement
G
Test Entry
U
Design
R
Test Entry
E
Product
Requirement -
Test Entry 1
Design
Test Entry
Functional
Requirement
Test Entry
Design
Test Entry
every number between X and Y, and apply risky since some of the options are being left
the algorithm in #1 above. out and hence some issues may still remain.
● Unit test this with some combinations of X A QA engineer who is a white box tester may
and Y and make sure output makes sense. look at the code and decide there are 232
options only because the developer used a long
A QA engineer who relies on black box testing
variable. This is nowhere better than infinity.
and hasn’t looked at the implementation will
Some choices have to be exercised, probably
know that there are infinite inputs to this
based on decision points in the code. Again
implementation and so he/she will try to pick
a risky affair, as QA is likely to miss many,
some intelligent inputs which are more likely to
including non-function, parts, like dependency
produce issues (think equivalent partitioning,
on CPU and memory, impact of running on say
boundary values, etc). However, this is decidedly
52 WhatIsTesting.com
by Mrityunjay :
Japanese OS, etc. in the given time and money through various
heuristics and techniques, none of which are
Note some of the differences in the roles in a
scientifically proven to discover all the defects.
developer and QA here:
This is decidedly tougher job than development,
● A developer decides on an algorithm and since the choices and the implications of choices
unambiguously sticks to it, implements are much better known and understood when a
and delivers to QA. For a QA, life is full of developer chooses a specific algorithm and its
ambiguities and risk-taking. A week-at- implementation. Given the fact that a functional
heart QA is not a good QA. requirement is broadly defined, it is easier for a
developer to meet those requirements and verify
● A QA has to second-guess Dev to figure
they are met, than for a QA to verify developers’
out what are the likely error scenarios if
output, since they are very precisely defined
he/she wants to avoid running an infinite-
(algorithms and code) and hence so many more
input problem. This is analogous to 20-
ways of proving failure exist.
questions game, where you think of a word
and someone has to guess it by asking only To summarize my arguments above, there are
20 questions. This is tough. two basic points I have made:
● Think of the implication if a developer ● It is easier to drop a needle in a haysack (or
or a QA goofs up. If a Dev goofs up, it is bug in a product) than to find it (discover
supposed to be caught by QA, causing bugs, defect before release). The latter requires
design changes, etc, a costly affair indeed. you to be much smarter, customer-focused,
However, if a QA does so, customers hit with good problem-solving abilities.
those defects, and this is a much higher
● QA problem is an undefined problem and
cost to the company, in terms of money,
hence solving it takes very different skills
credibility and market share. Which
and lots of smartness in addition to hard
role is easier?
work.
In a complex product, locating a bug is
However, don’t get me wrong: these
like searching for a needle in the haysack;
arguments take the example of a typical
you can apply heuristics, but it still is
developer role and a typical QA role and
a hard and challenging work, scary too,
not of individuals who play them. As I have
when you know that a missed needle can
mentioned before, a good developer indeed
cause immense customer frustration,
dons the QA hat many times, verifies the
and management backlash.
algorithms he/she has produced and only
Let’s look at it from another perspective. then allows it to be given to QA. So do not
The waterfall model of product development is use these arguments against any individual;
a tree structure. A product requirement spawns I have been a developer, and I would not love
many functional requirements, each functional to hear these arguments because I thought
requirement spawns many design and algorithm I donned QA hats many times to produce
pieces, which in turn spawn many test cases good quality code. Same goes for many of my
(see fig 1). developer friends out there.
Thus, even in such a simplified scenario Now that we know doing QA takes a lot of
(where next phase only doubles the entities), a smartness and skill, what does it take to be
product requirement generates 8 test entities a great QA? Well, the trick is to think like a
for verification. No wonder then that the QA developer sometimes, and that will be the topic
has to play the game of probabilities: trying to for a forthcoming issue.
find maximum number of high impact defects
WhatIsTesting.com 53
Is scripted testing bad?
25
20
15
10
Is 0
scripted testing
bad?
W
hen I started my testing career the bugs I caught were the result of conditions
over a decade ago, my manager that occur in the real world but are impossible
gave me two directives: to think about while designing test cases. And
there were many bugs that I did not find rather
the bugs found me. With these findings my
● Raise thirty bugs every day respect for writing test cases took a beating.
● 80% of your bugs should be coming from Exploratory testing had begun getting talked
test cases that you would have written prior about when I had formed my own philosophy
to the test execution and technique of mixing test cases and ad-
hoc testing and it struck a chord immediately.
While I was able to accomplish the task of
Exploratory testing described what I was doing
raising thirty bugs every day, I have not been
all my life. Now I had a name for it.
able to achieve the second target even after
twelve years of trying really hard. To figure out However, there was another trend that I noticed
what was going wrong I analyzed the bugs, - scripted testing, which I had been doing all my
created checklists, got my test cases reviewed, life, started getting painted as a bad practice.
learnt about various test design techniques and To set the context right, let me describe what
used them. is generally meant by scripted and exploratory
testing.
Sure, I was able to improve the percentage of
bugs being found but I never could achieve a “Exploratory testing is simultaneous
figure anywhere close to 80%. This made me learning, test design, and test execution”
question the assumption that most of the bugs www.satisfice.com/articles/et-article.pdf
can be caught by pre-written test cases. Many of
54 WhatIsTesting.com
by Vipul Kocher, CEO, PureTesting, NOIDA, India
WhatIsTesting.com 55
Is scripted testing bad?
Painting scripted testing as a • When test cases are written along with
bad practice the requirements being written, many
requirement bugs can be found and removed
Some of the arguments against scripted testing
even before any code is written.
include:
• Test cases can be shared with developers
● Scripted testing does not promote thinking
resulting in removal of bugs even before
about the problem in different ways. Scripted
they can be “created”.
test cases mechanize the act of testing,
taking intelligence away from testing. • Written test cases can be used as an aid for
training new testers.
Statements like above make people believe
that scripted testing promotes stilted • Even if requirements change, the impact of
thinking. If you define scripted testing requirement change as related to testing can
as “following the pre-written test cases be addressed in a better way with written
VERBATIM” then the statement would make test cases.
sense. If this is how scripted testing was
In my experience of testing, many complex
to be defined, I would not like to be found
products including some which are used by
siding with scripted testing. Of course, there
millions of users, review of written test cases
is no need to define scripted testing in this
has resulted in better understanding of testing
manner because that is not how most testers
and consequently better execution of testing by
test. Unless there is a client demand, most
all testers involved in the review and not only
testers do not follow the same test script
the person who reviewed the test cases.
again and again. They use test script only
as a guide and not the gospel that has to be Of course, there are situations where one
followed verbatim. Testers vary their data, does not have the time to write test cases. But
their actions, and the sequence of actions. enough people write about these contexts. My
purpose to write this article was to defend what
● Scripted testing wastes time. Time is wasted
most people today would not defend. I do not
in writing test cases whereas it could be
favor exploratory testing over scripted testing or
spent testing. Also requirements change
vice-versa. I favor using whichever style gives
often, resulting in time wastage when test
the most benefit in a given situation, rather
cases have to be reworked.
than clinging to one end or the other of the
The difference between scripted and exploratory continuum.
testing is said to be that in exploratory testing
test design, execution and learning happen at
the same time whereas scripted testing uses
56 WhatIsTesting.com
Putting the “Test” back in Test Plan
Putting the
“Test”
back in
Test Plan
U
ntil fairly recently, many people who What to do when Confusion sets
called themselves Software Testers in
came by their jobs by accident rather
I suddenly found myself in the uncomfortable
than by design. This placed many
position of not really knowing something that
of us in the difficult position of having to learn
I thought I already understood. What do I do
how to do our job while we were trying to do that
now? Where do I start?
job. One of my biggest challenges was trying to
figure out what goes into a Test Plan. I began by asking people I worked with. I
networked a bit and asked other testers for
In the first company that I worked for, the answer
advice, but most of the time no one would say
was straightforward enough. A Test Plan was
much because they thought it was confidential
simply a commonly-grouped set of test cases
to share information like that. I even went to
that was executed by a Tester. For example,
a day-long workshop on “Managing Systems
there was a Print Test Plan, a GUI Test Plan, a
Testing Projects”. While I found the workshop
Math Test Plan, and so on. No problem.
to be very insightful, I didn’t believe everything
Doubt in that definition began to creep into the instructor had said because a lot of it went
my mind when I started to network with other against what I had learned so far on my own.
Testers in town and found out that Test Plans For example, a Test Plan was not supposed to
meant different things to different people. When have any test cases in it. This just increased
I got my first Team Lead role in the next company my doubt and anxiety.
I worked for, I discovered that the Test Plan
Back at my desk, faced with an empty Microsoft
I was being asked to produce was something
Word document in front of me, I searched the
completely different. It was supposed to be a
Internet for Test Plan templates and examples.
planning document of some kind.
I needed more opinions and references than
58 WhatIsTesting.com
by Paul Carvalho
WhatIsTesting.com 59
Putting the “Test” back in Test Plan
Development is no different
Nature abhors a vacuum, When you stop creating Test Plans, you run
into all kinds of resistance, especially from
and Software Development is Management. There are some good reasons
no different to create extra documentation and there are
many bad reasons. To be clear, “Because it’s
never wanted to create a Test Plan again. expected” is not a good reason.
During the course I learned about the Project One valid reason for producing some
Management Institute2, we covered the Project documentation is to help you learn from what
Management Body of Knowledge (PMBOK), you did on a test project. Being faced with
and worked through several examples in all of the missed bugs now being reported by
order to understand how to apply the correct Customers through the Support department
knowledge, tools and techniques in order to after a product ships is a harsh wake-up call. If
successfully manage a project to completion. I you don’t have a record of the who, what, where,
highly recommend such a course for any Test when, how, or why you did or didn’t test certain
Manager. One of the most significant aspects things, it is more difficult for you to learn how
of the course for me was learning about the to improve and reduce the number of escaped
elements of a Project Work Plan: bugs in the next project.
● The Project Team It is important to note that a Project Plan doesn’t
● Project Charter completely replace a Test Plan though. While
the project plan may outline all the players,
● Scope Management Plan the general work breakdown structure and so
● Risk Management Plan on, there is at least one thing not captured to
any useful detail by a Project Manager. One
● Communications/Reportin of the single most important things that a Test
Plan Team needs to own on any project is the Test
● Work Breakdown Structure Strategy.
60 WhatIsTesting.com
by Paul Carvalho
WhatIsTesting.com 61
Accelrys has over twenty years of innovation and technology leadership in
materials science lets Accelrys serve a diverse range of clients, including some of
San Diego, CA USA the world’s leading pharmaceutical, biotechnology, chemical, nanotechnology,
Paris, France
EXPRESS YOURSELF
“WhatIsTesting” magazine is written for software and application development mangers, project
managers, team leaders and Test & QA managers. The magazine is not written for the entry
level tester running test scripts all day, but rather has a larger more strategic view of the entire
application life cycle.
The reader is a decision maker within an IT department. Articles in the magazine should provide
useful information to help him/her understand trends and emerging technologies, come to grip
with new and timeless challenges, adopt best practices and ultimately make better decisions to
improve software quality.
Presentation
Articles should be in the range of 1500 to 4000 words, and be written for practitioners in the field;
with a style that is down to earth, practical, interesting and original. Avoid jargon, speculative
theory and abstract concepts; instead, focus on practical information that can help our readers
today or in the near term.
The purpose of an article is to transfer useful knowledge to the magazine’s readers, rather than to
promote the author’s accomplishments or the products, services and technologies offered by the
author’s employer.
Don’t start the article with long fancy anecdote, a “first-the-earth-cooled” historical timeline or
an academic-style abstract that says, “This article will do such and such”. Just get right into the
subject matter. Also, don’t include footnotes or references. Refer to other sources, such as book,
magazine articles or Web sites, within the main body of the article. Be sure to define terms and
acronyms that may not be familiar to the reader; incase of doubt, define.
Include, annotated source code, only when it helps explain the concepts in the article. Also, add
copious figure, tables, listings, screen captures and other graphics to make the article easier to
understand. Please avoid bulleted points within our prose; it is hard to read such lists. If you feel
that a list can best be expressed using bullets, consider pulling it into a separate tale or textbox.
Do not assume that the reader has specialized experience or knowledge about particular
methodologies, platforms or tools. If the article is written about a specific methodology, platform or
tool, present that dependency in the initial proposal. In the manuscript, include a short introduction
or overview of prerequisite background concepts, if appropriate.
Article Reviews
All proposals and manuscript submissions should be sent to the magazine by the article’s author.
If there are multiple authors, one author will be designated as the lead author. The editors may
send article, proposals and finalized manuscripts for peer review. In some cases, the editors might
ask perform a peer technical review of the manuscript.
Once the necessary review has been completed’ the article will be sent back to the article’s author
for final approval.
Welcome to TEST 2008 agility is synonymous with the testing team’s
resourcefulness and ability to respond quickly
Test2008 is the first conference being organized to changing contexts. Organizations need
by PureConferences in India. Our conference to catch the ‘window of opportunity’ when
will provide a platform for international releasing a product to remain profitable. At the
and national test professionals to interact same time, we, as customers only want to use
and participate. Speakers from around 10 ‘quality’ products.
countries, such as USA, UK, France, Sweden,
Canada, Italy, Netherlands, including India will We are hoping to have intense discussions
deliverkeynotes, tutorials, and papers during around the theme to make it a learning
the conference. We intend to involve academia experience for all participants. The theme is
and institutions of learning with our conference. broad enough and will cover diverse topics.
We also intend to make Test2008 a ‘green’ Keynotes, Tutorials, and Paper presentations
conference as far as possible. Additionally, we by renowned speakers known internationally
will institute two test scholarships for educating and in our country will be the highlight of the
promising students unable to finance their conference.
studies. Please mark theTest2008 conference program in
Animated discussions among testers frequently your calendar. Our conference will offer partners
threw up the requirement of agility in testing theopportunities to associate themselves with
and the challenges associated with it. Creating this endeavor and showcase their products and
a balance between conflicting and changing participate in the conference.
demands of quality by customers and timely If you want to present a paper or tutorial, please
releases by organizations is a real challenge. fill in theSpeaker Submission Form. To attend
Agility in Testing is the theme of Test2008--Test the conference, please Register.
Excellence through Speed and Technology.
Agility represents nimbleness, resourcefulness, We welcome all delegates to our conference.
and adaptability. In the world of testing,