You are on page 1of 20

Welcome geeks!!! to the world of software testing.

Here you will get to know everything you wanted to know about Software Testing. Most
importantly, you will get to know this information from the practitioners, from the people
working in the field, from people like you and me.

Ever wondered why I named this site as TestingGeek? Care to know that? Drop
TestingGeek an email, or just enjoy learning. Anyways name is not a big deal or is it?
Think Again.

So lets start learning this art; this science or just Software Testing and start with its
definition. What is Software Testing?

New Series of techincal articles by


Patrick Martin
Read his introductory article
Guerrilla Testing Tips: the inside track from a developer's perspective.
and his Case Study
One CPU is better than two
According to Wikipedia "Testing is a process of technical investigation, performed on
behalf of stakeholders, that is intended to reveal quality-related information about the
product with respect to the context in which it is intended to operate. This includes, but is
not limited to, the process of executing a program or application with the intent of
finding errors."

According to the classic definition of Myers "Software Testing is the process of executing
a program or system with the intent of finding errors."

According to the definition given by Hetzel, "Testing involves any activity aimed at
evaluating an attribute or capability of a program or system and determining that it
meets its required results"

In simple words, software testing is the process of finding deviation from the
requirements and user expectations. As a tester, you will be the first person to look at the
product from a user point of view and the last person to give objective information about
its quality prior to its release.

So Geeks, Alright!! Lets talk about how you can contribute to build this knowledge base
and get recognition for your spirit and hard work.

The motto of TestingGeek is to "Learn, Share and Keep Learning"

Learn - On this site, you can learn about software testing, different types of testing,
topics related to research, what is happening in the field, testing related news, blogs of the
experts in our field, certification.
Do you think something is missing? Its your own platform, why not bring it up and we
can try to address that.

Share - Ever thought of sharing

• Something challenging you have done in testing?


• Some interesting project you have worked on?
• Tips and tricks for testing applications related to a specific domain?
• Interesting automation you accomplished?
• Puzzle related to software testing? or an interesting problem?
• Testing Humor?

If Yes, then this is YOUR place.

Keep Learning - Because learning is a continuous process. TestingGeek learns all the
time from people like you and that will be reflected here. You will see TestingGeek
changing with every submission & suggestion you make.

Folks, Learn, Share and Keep Learning....

Remaining part of this page will give you an overview of what this site offers.

Testing Types - In this section you will get information about various types of testing.
You will find categorization of testing based on the system knowledge, time it is executed
in SDLC and purpose.

Testing Tools - This section will give you information on the tools, that can make your
life easier as a tester. Here you will get information about the tools that can be used for
Testing. Apart from core test planning, management and execution, tools related to the
requirement management, software designing, Configuration management and other
useful tools are also covered.

Testing Measurement - In this section you will get information on various measurements,
that you can use in your project. Information about various metrics', their importance and
their applicability are also discussed here.

Testing Case Studies - Best way to learn is to learn from the experience of other people.
This section will have information about how people are testing real applications. You
will have information on wide range of applications. You will get information on how to
test Web based applications, Desktop applications, Web Services etc. .

Testing Certification - TestingGeek has consolidated all the information related to Testing
Certifications or tool specific certifications. If you find any certification which is not
listed here, Let TestingGeek know.
Testing Research - So you are passionate about software testing and want to work on test
cases generation from software design, Program slice to generate test cases, want some
innovative feature in the automation tool. You can get information on some of the
research topics related to testing here.

Testing Patents - Ever thought of what kind of patents are present in software testing?
This place can be used to find out and get a feel of what can be patented in this field. Idea
is to motivate you so that you can start building your intellectual property.

Testing Challenge - If you ever thought that this job is not challenging, think again and
visit this section.

Learn, Share and Keep Learning..

Testing Type
Have you ever thought why do you need to categorize
software testing into different types? What is the benefits of
dividing software testing in different types? One of the main
purpose of software testing is to identify defects in the
software. Defects in software testing can be defined as
variance from requirement or user expectation. Based on this
simple definition, it is very easy to categorize defects. For
example:

• If system is not functioning properly, its a functional defect.


• If system is not performing well, its a performance defect.
• If system is not usable, its a usability defect
• If system is not secure, its a security defect
• and so on..

Identify these different defects require different skill set, different techniques and
different type of test cases. Testing is divided into different types to reflect, what kind of
defects can be uncovered by those activities. This division also helps management in
managing these activities effectively. Also, it is very rare to have someone with skills in
all the types of testing and this division helps in getting proper resources for team.

Hope you understand importance of this categorization and also how important it is to
have understanding of different types. This understanding will enable you to spot more
defects which in turn will improve quality and make you more effective software tester.

There are many ways in which software testing can be categorized. Some of them are
described as follows:
Categorization of testing based on the knowledge of system

• Black Box Testing


• White Box Testing
• Gray Box Testing

Categorization of testing based on the time it is executed in the Software Development


Life Cycle

• Unit Testing
• Integration Testing
• System Testing
• User Acceptance Testing

Different types of testing can be categorized based on the purpose of testing. This can be
classified further into Functional Testing and Non Functional Testing.

• Functional Testing

In functional testing, the focus of testing activities is on functional aspects of the


system. In functional testing, test cases are written to check the expected output.
Functional testing is normally performed in all the test phases from unit to system
testing.

The following types of test activities are normally performed under Functional
Testing

o Installation Testing
o Regression Testing
o Upgrade and backward compatibility testing
o Accessibility testing
o Internationalization and localization testing
o API Testing

• Non-Functional Testing

In non-functional testing, the focus of the testing activities is on non functional


aspects of the system. Non functional testing is normally carried out during the
System Testing phase only. The focus of non functional testing is on the behavior
and user experience of the system.

o Performance, Load and Stress Testing


o Usability Testing
o Security testing
o more to come..

Testing can also be categorized based on how it is executed. Execution could be in the
form of verification or static analysis or it could be validation or dynamic analysis.
Verification and validation can be categorized further according to how it is done.

• Verification

In very simple terms, verification is the human examination or review of the work
product. There are many forms of verification which ranges from informal verification to
formal verification. Verification can be used for various phases in SDLC and can be in
the form of formal inspection, walkthrough or buddy-checking.

• Validation

Validation or dynamic analysis is the most frequent activity that as a tester you
perform. Whether you are doing black box testing, non functional testing or any
type of testing, chances are that you are performing validation or dynamic
analyses. Validation or dynamic analyses is associated with the execution, and
could be related to the execution of test cases or testing in general. There are
many ways in which testing can be executed, for example

o Manual Scripted Testing


o Exploratory Testing
o Automated Testing
o Model Based Testing
o many more..
Testing Tool
For test engineers, tools are essential for every testing activity.
It will be very difficult for any one to perform all the testing
activities without help of appropriate tools.

Fortunately, tools are present for every activity related to


testing from Test Management, execution to reporting. As a
test engineer, you need to know not only core testing tools but
also tools which can improve your efficiency multi fold.
TestingGeek has divided tools based on the activity they perform

• Requirement Management

In the recent time, people have started realizing that testing team should be
involved in the project from the inception. Early involvement of test team in the
project can be very beneficial for the project, but it require test team to be familiar
with the tools which are used to manage requirement of the project. Tools like
Rational Requisite Pro, Telelogic help people in managing requirements in a
better way. You should try to make yourself familiar with these tools. As a tester,
if you participate in requirement gathering process or analyze requirement for
testability, maintainability, ambiguity etc., having a good understanding of
requirement management tools can make your life easier.

o User Stories

• UML or software design tools

More and more people have started realizing the value of UML and software
design. Modeling tools gives you functionality of designing your whole system,
use cases, sequence diagram etc. As a test engineer you should be familiar with
the use cases, class diagram, sequence diagram and how it can be used to increase
your understanding of the system. Good understanding of use cases and system
design can help you in writing more efficient test cases and help you in finding
design flaws as well. Familiarity with tools like Rational Rose, Rational Software
Architect can go a long way in doing that.

• Test planning and management tool

Tools mentioned in the above section can be treated as good to have, but these
tools are essential. You should try to get expertise in the tools like Rational Test
Manager, Mercury Quality Centre etc. These tools can be used for managing test
assets, creating test plan and cases, tracking execution, reporting and executing
automated test cases as well. Some of the tools covered on TestingGeek are
mentioned below.

o Mercury Quality Centre.

• Test execution tools

This is what most of the test engineer use for Test Automation. Most of the tools
in this category support the playback kind of functionality. These tools can be
used to automate and execute automated test cases. Tools like Rational Functional
Tester, Rational Robot, QTP, WinRunner and SilkTest can be used for this
purpose.

o Skill Test
o Test Complete
o Rational Functional Tester
o Rational Test Suite
o Fitness
o Selenium IDE
o Selenium Remote Control

• Unit Testing tool

Though unit testing is mostly done by development team, but now a days test
team also assist development team in writing and defining unit test cases.

o JUnit

• Performance testing tool

Performance testing is mostly used for web based applications. But in some case,
memory profiling can be used for desktop applications as well. Tools like Load
tester, JMeter can create virtual hosts and can simulate the real time load on the
system.

• Useful Tools
Apart from the tools mentioned above, there are some more tools which are
always good to have for your use. Specially, tools like VMWare, NortonGhost

VMWare - A Tester's Best Friend : In this article, author explains what is


virtualization, and how to create and use VMWare in your testing. It explains, in
simple steps how to create virtual images, how to create snapshot and how to use
it.

So you must be wondering what is Testometer? Well Testometer is a new term coined by
TestingGeek :), TestingGeek uses it to measure your testing skills.

Basic idea behind Testometer is to give you an indication on what areas you can improve
upon. A Testometer can be anything, from a simple problem to a puzzle which can help
you measure your testing skills against a scale. This scale is nothing but a set of pre
identified categories against which your input is checked. For example given a problem
what are all the possible categories in which you can write your test cases. Take tests
given below to find out more :).

As of now this Testometer is in it's infancy, it will evolve with your feedback &
suggestions.

• On Off Test - If you think boundary values has to do with only integer values,
think again. This test will make you think differently with respect to boundary
values. You will also understand the concept of powerful test case and what king
of errors can be expected from developers.

• Line Distance Test - Have you forgotten how to calculate distance between two
co-ordinates? Well do not worry, formula is given on the test, but what kind of
data would you use to test function which will give you length of the line if you
give co-ordinates?

• TicTacToe Test - This test will check your ability to create test cases for the
TicTacToe game. It will be very different exercise for you because you will need
to think about various conditions in which game can be tested.

• Sine Wave Test - This test will check your knowledge of the boundary value
analysis. It also gives you information on how and why output boundaries are also
important while testing any application for boundary conditions.
• Triangle Test - Purpose of this test is to assess and give you information on the
various classes of data which can be used in any given problem. TestingGeek has
seen this question being used in many interviews to check how good test cases
you can write for any given problem.

Our special thanks to people who are identifying weakness and defects in Testometer and
giving their constant feedback to improve Testometer. As a token of our appreciation, we
are mentioning their names in the relevant test where they found defects or helped us in
improving test.

we already know and understand, different types of software testing, different software
testing techniques then what is the need of a section like case studies? Why can't we just
follow, already defined processes and best practices? Because.. problems are different,
every project is unique, and since we are humans and not machines we are also different.
Every tester is unique, in terms of how he or she observes, judges and behaves in a given
situation. We are not programmed and our actions are based on a lot of interesting things.

In most cases, effectiveness of our actions is dependent on how much knowledge is


behind those actions, what was the thought process before those actions. It can be said
that your effectiveness increases with knowledge. Our actions are different, because
probably our knowledge level is different. Contextual information about the problem
determines our thought process. Effectiveness can be improved if you are aware of more
and more interesting problems, domains or contexts.

WOW, Very Geeeky, but lets talk software testing now. This section takes TestingGeek's
philosophy of sharing knowledge further by giving you an opportunity to:

• Learn By learning from other people's experience (That's wise :) ).


• Share Your own experience, expertise of testing a specific application, or
applying a different software testing approach in the context of application or
domain, or automation framework or virtually anything which you feel will add
value to other testers. Do not under estimate your work, your challenges, you have
a 'TestingGeek' inside you find it out and share your experience with other
testers.
• Keep Learning.. Learn from experiences of fellow testers, share your own
experience and learning will follow. So 'Geeks' or rather 'TestingGeeks', Keep
Learning, as it is an endless journey.
Are you thinking 'How can I share my experiences?'.
Here is TestingGesk's easy Step guide to share your knowledge on TestingGeek.Com.

• Start with the projects you have worked on, software test automation you
completed and start writing about it.
• Think of it from the testing interview point of view, what kind of questions any
interviewer will ask for example, Describe the application you are working on?
What kind of challenges you faced? What were the risks associated? Did you
follow any strategy? Can you give us sample test cases? Did you do any software
test automation? Were you preparing any matrixes? What kind of skills as a tester
you need to test this type of application?
• Tell us some thing about yourself.
• If you are done, send it to webmaster@TestingGeek.Com

We will publish your experiences, as we feel every experience is worth sharing. If you
want to make it more interesting and personal

• You can send your photographs as well and your experience will be published
along with your photograph.
• Give us your manager's mail ID, friend' mail ID and we will let them know
whenever your article is published.

Your application might fall in any of the domains suggested below. Feel free to suggest
TestingGeek new domains, where your application should go as it is not an exhaustive
list.

• Desktop Application
• Web Application
• Financial Application
• Retail Application
• PDA and mobile application
• Web Services application
• Health care application
• IT Infrastructure management
• Your application and domain.
Testing Research & Patents
Software testing is an engineering subject and similar to any
other engineering field testing also have immense
opportunities for researching and inventing new things. On
this section of the website, TestingGeek will try to give you
some information on the research happening in software
testing field and patents or intellectual property filed in the
software testing field.
Before dwelling deep into the subject, lets discuss what is research and patent. According
to Wikipedia "Research is an human activity based on the intellectual investigation and
aimed at discovering, interpreting and revising human knowledge on different aspects of
the world. Research can use the scientific method, but need not do so"

If you relate this definition of research to software testing, their are plenty of aspects in
software testing which require further research, which require revision of our existing
knowledge. This could be how we look at the process of testing or how do we perform
testing. You can even research skills required to become a better tester.

More information on various topics for research in software testing, and


people/organizations working on this can be found on Software Testing Research page.

Similarly patents can be defined as "A patent is a set of exclusive rights granted by a
government to a person for a fixed period of time in exchange for the regulated, public
disclosure of certain details of an invention. The person applying for a patent does not
need to be the inventor who created or authored the invention"

There are many organizations, who invest millions of dollars in research to generate
intellectual property rights or patents for themselves. Software Testing is relatively new
field and offers many opportunities to do research and generate intellectual property for
you or your organization. Most of the time in Software Testing, it is difficult to find out
whether particular activity, approach or solution can be patented or not. To help you
decide whether something is patentable or not, TestingGeek is working on compiling a
list of patents related to software testing. This list should give you good information on
what is already patented and most importantly what can be patented.

More information about patents are available at Software Testing Patents page.

Hope this section gave you good information on Software Testing Research & Software
Testing Patents. You can leave your feedback on these topics at feedback section. You
might find Testing Article and Testing Blog section useful as well.
esting Article

On this page, Testing Geek will gather and publish some very
informative articles. Along with giving articles, TestingGeek
will also give you an insight on what is the key message of
the article. Of course, this will be based on how TestingGeek
understood the article and if you do not agree with that, you
can always send an email.

TestingGeek will also try to be selective in terms of what is


published or available here. You should be able to find articles
for novice testers as well as for veteran in software testing
industry.
Feel free to add your articles to this repository, suggest good article you would like to see
here or topics you feel are missing here.

• Guerrilla Testing Tips - This is an introductory article in the series of technically


focused articles. In this article the author Patrick Martin is talking about what he
intends to cover in his articles.

• One CPU Better than two - This is a very interesting real life example of a classic
concurrency issue and very neatly illustrates the abstract process of fault finding a
race condition. What makes it particularly interesting is that rather than involving
high performance multi-threaded code it is in an automated user interface test. In
this article the author Patrick Martin is presenting a developers perspective of an
issue faced by the testing teams.

• TG Tips for Automation - In this section Testing Geek will give some simple tips
which could help you solve the common problems faced during automation. This
section is a 'MUST VISIT' section for all the testers who are into automation or
planning to automate their testing. This Week TestingGeek is giving you a tip on
how to wait for long processing operations and pause script execution till then.

• Is It Really Done? - If you have worked in an Agile and Scrum environment, you
might have wondered why definition of done is different for everyone. This article
will attempt to highlight problems associated with a ill defined 'Done' in Scrum. It
also emphasize the benefits of well defined done and how it can be implemented
in any team.

• Identifying Test Cases from Bug Patternn - In this article, Vivek discuss how test
cases can be identified from general bug pattern. In his own words, "In this
article, I explain about how more meaningful test cases can be extracted out of the
bugs which have been identified in the software. The article provides a practical
approach of identifying test cases by analyzing the bugs."

• Equivalence Partitioning - In this article, Anjali discuss the concept and key idea
behind the test case design technique, Equivalence Partitioning. She also explores
why Equivalence Partitioning us needed? How it is applicable in the white box
testing? and what are the different types of equivalence classes?

• Software Test Automation - This article on Software Test Automation is


contributed by Mr. Vivek Sharma from CA. In this article, he explains how to get
started with Software Test Automation projects and what are the things that
should be be taken care of while involved in automation. Vivek has five years of
experience in functional and automated testing and he can be reached at
contactsharma@gmail.com

• Web Application Security Testing - Part 6: In this part we will explore the security
issues related to Authentication and Web Services. Authentication is the core of
many web applications, since in the WWW world, we need to check connection
from every client to make sure that it is not from a malicious user. Similarly Web
services are common place these days, and most of the common applications that
you use on daily basis, might be using web services. Threats associated with the
web services are very much different from what we have already seen.

• Web Application Security Testing - Part 5: In this part we will establish the
importance of securing our environment as well for providing complete security
to web application. Web application is hosted in the environment, which is
accessible from the out side world. Client interact with the server and database, if
proper care is not taken vulnerabilities in the environment can be exploited and as
a result security will be compromised. We will discuss, different vulnerabilities
related to the environment on which web applications are hosted like stored
procedures, command injection, fingerprinting and Denial Of Service.

• Web Application Security Testing - Part 4: Language based vulnerabilities which


can be exploited by malicious users are one of the oldest and well known security
loophole. Attacks related to buffer overflow, canonicalization and null strings are
explained briefly in this article.

• Performance Testing Part 2: In this article, author explains what are the different
types of performance testing. After reading this article, you will be able to
understand meaning of load, stress, endurance, spike and capacity testing. You
will also be able to appreciate the concept of transaction mix.

• User Stories in Agile : Have you encountered this term before and thought how it
is different from something you already know? From use case or from traditional
requirement document? What are these and what makes them better than use
cases? Read this article to know more about this.
• Bayseian Theorem in Testing Maps : This article explains how Bayseian classifier
library available in Ruby can be used to classify your data. Classification like this
can be used to test complex applications like Maps.

• Web Application Security Testing - Part 3 : This article explains how data
supplied by client can be used to attack web application. It gives detailed
information on SQL Injection, Cross site scripting and Directory Traversing.

• Performance Testing Part 1 : This article explains why do we need performance


testing, what are the different aspects involved in collecting performance
requirements and what steps are involved in performance testing.

• Using HTA in VBScript for Interactive Test Automation : This article explains
how VBScripts can be used along with the HTA (HTML Applications) to make
your automation interactive. This article was submitted in response to our Geek of
the Week competition.

• Web Application Security Testing - Part 2 : In continuation with our first part, this

article explores what kind of information is present on the client with respect to
web application security testing. It also gives information on how to make sure
that loopholes present in the information easily accessible by clients are identified
and addressed.

• VMWare - A Tester's Best Friend : In this article, author explains what is


virtualization, and how to create and use VMWare in your testing. It explains, in
simple steps how to create virtual images, how to create snapshot and how to use
it.

• Web Application Security Testing - Part 1 : This article is the first part of the
article written by TestingGeek. This part explain, how web application testing is
different from traditional client-server testing. This also builds the platform for
why security testing is important for web application is important.

• Joel on Elevators - In this very short article, Joel explains a new elevator system
being used in WTC. Catch here is to find the usability defect in the system.

Interesting Question & Conversation


TestingGeek has mentioned it many times about its
philosophy of Learn, Share and Keep Learning. We feel that
it is very important to learn from the people who are expert in
the field, interact with them and think about how they
approach a given problem, question or suggestion.
Fortunately, with so many usenet and e-groups around, you
can get in touch with most of the experts in the field. You will
be surprised with the level of discussion and interaction
happens on some of the e-groups.
Some time conversation on some of the seemingly trivial questions bring you very good
insight on the subject that you feel, Aha glad I came to know that. Best part of these
conversations are different point of views that you get to know and different skills you
acquired.

TestingGeek has learnt tremendously from these discussions, some time as a participant,
and some time as an observer of the different type of problems, different types of
questions and solutions offered or suggestions given by various experts. On this page,
you will find interesting conversations which can give us some new insight, on the topics
we think we know and understand well. If you have some interesting question or came
across some interesting conversation, share with us.

Questions

• What is the future of testing ? Is it doomed ?


• Software Testing is a creative field or not ?
• What are the advantages and disadvantages of Scripted Testing?
• What are the different challenges and approaches for doing installation testing?
• Is Six Sigma Applicable in Software Industry?
• How usefulness of testers can be increased as QA is becoming less valued?

Following example will give you hint on what you can expect in these pages.
Happy Learning.

This example was given in response to the question that what should we do if it
is not possible to test the system we are building.

There is the known story of Dr. Parnas, who refused to build a defense system
software against nuclear missiles, stating that "The inability to test a strategic
defense system under field conditions before we actually need it will mean that
no knowledgeable person would have much faith in the system.". He was right,
the developers/testers would be able to test and simulate some parts of the
system, but the final system as a whole would be impossible to test until a real
war was in course and you had nuclear ogives being shot at you. (You can not
even test in at a desert location with test-intended- nuclear-bombs, because the
Nuclear Test-Ban Treaty prohibits.)
While Parnas is right about the ability to test the system, I think he kind of missed
the point. IOW, a variant of Pascal's Wager applies. If somebody is going to be
throwing nukes at me I would rather have a defense system up that will work with
0.0 < P < 1.0 than have no system
up that will work with P = 0.0.

Testing Challenges

It is human nature to respond to any challenges thrown upon


them. But what do we mean by a challenge? Well one of the
definition of challenge is 'a demanding or stimulating
situation'. A challenge could be 'a call to engage yourself in a
contest' As a tester we face different challenges in our
profession. These situations can be handled in a better way if
we have the skills to analyze the problem and off-course by
understanding how our fellow testers are tackling a particular
problem in their unique context.
As a tester, we have some challenges which are very unique to our profession and some
challenges are more generic in nature. TestingGeek has classified these challenges into
two broad categories:

Analytical Challenges - These challenges are not unique to our profession and most of the
professions require some degree of analytical skills. Analytic can be defined as "Having
the ability to analyze" or "Ability to divide into elements and principle", given the nature
of testing it is very important for testers to have good analytical skills. Like any other
skill, analytical skill can also be improved by practice. This skill can be improved by
practicing different Puzzles, taking challenges or reading different books to improve your
aptitude. Best mechanism of improving this skill is to exercise your brain. In this section
TestingGeek will give you an opportunity to exercise your brain by providing you mind
stretching challenges and puzzles. Along with the puzzles related to our domain, you will
also find interesting puzzles which will make you think out of the box and help you in
developing lateral thinking.

Professional Challenges: Every profession has its own challenges. This section explains
the different challenges faced in this field and how you can overcome them. These may
be the interaction with the developer, attitude of Management towards testing,
identification of tools, their usage and training , interaction with the customers,
acceptability and entry-exit criteria for the tests and many more. TestingGeek will try and
explain a few professional challenges and suggest how these should be addressed. We
might not be able to provide you solution to your problem, but if you are aware of the
challenges that as a tester you can face, it helps.

Like everything else on TestingGeek, this section is also open for you to share the
challenges you faced, or interesting puzzle you feel every tester will enjoy. Its very easy
to share anything on TestingGeek, just write whatever you wish to share and send an
email at webmaster@TestingGeek.Com

More On Testing
Reason we have this section is because it is not enough if you
just understand and practice various concepts and
methodologies of software testing. You need to be aware of
what is happening around you in testing world, what are the
latest news, what are the trends, what skills you should have to
become better tester and how to tell some one a good joke
related to software testing :)

It is important, since our field is changing so fast now that if


you do not follow what is happening around you, you might
have knowledge which is not relevant or have lost its context.

TestingGeek has combined all the sections related to news, blog, humor and trait in one
section called More On Testing.. This is TestingGeek's way of saying, there is more to the
world of software testing, there is more for us to share and there is more for us to learn.

• Testing News

• Testing Blog

• Testing Humor

• Testing Trait

Do let us know, how you feel about this classification by leaving your feedback and
comments.

Testing Measurement
Someone has rightly said that if something cannot be
measured, it can not be managed or improved. There is
immense value in measurement, but you should always make
sure that you get some value out of any measurement that you
are doing. You should be able to answer the following
questions:

• What is the purpose of this measurement program?


• What data items you are collecting and how you are
reporting it?

• What is the correlation between the data and


conclusion?
Value addition

Any measurement program can be divided into two parts. The first part is to collect data,
and the second is to prepare metrics/chart and analyse them to get the valuable insight
which might help in decision making. Information collected during any measurement
program can help in:

• Finding the relation between data points,


• Correlating cause and effect,
• Input for future planning.

Normally, any metric program involves certain steps which are repeated over a period of
time. It starts with identifying what to measure. After the purpose is known, data can be
collected and converted in to the metrics. Based on the analysis of these metrics
appropriate action can be taken, and if necessary metrics can be refined and measurement
goals can be adjusted for the better.

Data presented by testing team, together with their opinion, normally decides whether a
product will go into market or not. So it becomes very important for test teams to present
data and opinion in such a way that data looks meaningful to everyone, and decision can
be taken based on the data presented.

Every testing projects should be measured for its schedule and the quality requirement for
its release. There are lots of charts and metrics that we can use to track progress and
measure the quality requirements of the release. We will discuss here some of the charts
and the value addition that they bring to our product.

• Defect Finding Rate

This chart gives information on how many defects are found across a given
period. This can be tracked on a daily or weekly basis.
• Defect Fixing Rate

This chart gives information on how many defects are being fixed on a
daily/weekly basis.

• Defect distribution across components

This chart gives information on how defects are distributed across various
components of the system.

• Defect cause distribution chart

This chart given information on the cause of defects.

• Closed defect distribution

This chart gives information on how defects with closed status are distributed.

• Test case execution


• Traceability Matrics
• Functional Coverage

• Platform Matrics
Testing Video
With so many new mechanisms to learn and interact with the
experts in our field, TestingGeek takes it opportunity to deliver
video lectures of some of the experts in the field of software
testing from various sources and present it to you for
consuming at your own pace. TestingGeek will also give you
some information on what should be expected in these videos,
so you can view videos of your interest.
You are welcome to suggest new videos that have come across on Internet. If some of the
links are broken we will appreciate you telling TestingGeek about it.

Happy Learning.

• Tutorial on Regression Testing


• Impossibility of complete testing & bug advocacy
• FitNesse overview and mobile application testing with FitNesse
• Specification Based Software Testing
• Scripted Testing - Worst Practice of Industry?
• Requirement Analysis of Test Documentation and Functional Testing

James Bach - Becoming a Software Testing Expert

In this video, James Bach talks about the secretes of becoming software testing expert. It
gives you information on what makes you testing expert ? He also talks about why it is
important to question and even questioning the base of questions. His famous definition
of perfect testing " Testing is the infinite process of comparing the invisible to the
ambiguous so as to avoid the unthinkable happening to the anonymous " is also explained
in this video.