Software testing methodologies.
This page is under construction.
Software testing methodologies
we are moving from geocities.com/xtremetesting
Software testing methodologies.
Below are just some personal notes on the topic.
Information is not complete, verified and systematised. Some references will be provided in future
"You can fool all the people some of the time, and some of the people all the time,
but you cannot fool all the people all the time."
Test Methodologies: classification of the ways we are going to approach testing
from it’s effectiveness side. This classification will include
descriptions of some popular testing methodologies.
The purpose of any testing methodology is to use a certain approach for
software testing. This approach has some selected methods and techniques
that will be used for software testing and solving all upcoming problems.
Any testing methodology must describe the production, execution, and maintenance of the test
suite. Test methodology must be adjusted for the potential users of the test suite.
I will try to give an overview and describe all new/well known software
testing methodologies. I will attempt to introduce guidelines for choosing
All definitions will be taken from accepted and identified sources.
methodology defined the way to select test cases and analyze test results.
Formal Specification based
White-box testing techniques are also called structural testing
techniques, whereas black-box testing techniques are called functional testing
Evaluation-Oriented methodology (Lifecycle Validation, Verification, and Testing)
white box or structured testing methodology
Black box or functional methodology
Grey (gray) box methodology
Agile testing methodology
Rapid software testing by James Bach, a complete testing methodology designed for a
world of barely sufficient resources, information, and time.
Mutation testing - A testing methodology in which two or more program mutations
are executed using the same test cases to evaluate the ability of the test cases
to detect differences in the mutations.
Orthogonal array methodology
Decision table–based and category partition–based testing methodology.
Conformance Testing Methodology.
Pareto testing methodology.
In the BIT [Built-in Testing] methodology.
The CPM is a systematic, specification-based methodology
that uses an informal functional specification to produce formal test specification.
[T. J. Ostrand and M. J. Balcer. The Category-Partition Method for Specifying and Generating
Functional Tests. Communications of the ACM, June 1988,]
Category Partition: The category partition methodology requires a test
engineer to divide the functional specification into independent functional
units that can be tested separately [SOFTWARE TESTING
AND QUALITY ASSURANCE Theory and Practice. by KSHIRASAGAR NAIK and PRIYADARSHI TRIPATHY, 2008]
Orthogonal defect classification (ODC) methodology [R. Chillarege, I. S. Bhandari,
J. K. Chaar, M. J. Halliday, D. S. Moebus, B. K. Ray, and M. Y. Wong.
Orthogonal Defect Classification—A Concept for In-Process Measurement. IEEE Transactions on
Software Engineering, November 1992,]
Test Driven Development: Testing methodology associated with Agile
Programming in which every chunk of code is covered by unit tests, which must
all pass all the time, in an effort to eliminate unit-level and regression bugs
during development. Practitioners of TDD write a lot of tests, i.e. an equal number
of lines of test code to the size of the production code.
metamorphic testing methodology for service-oriented software applications
Software testing methodologies and techniques.
There is no formally recognized list of all successful testing methodologies.
1. structured testing methodology also known as basis path testing
Category Partition testing: testing methodology that requires to divide the functional
specification into independent functional units that can be tested separately.
Developed by Motorola. Uses statistical tools and the DMAIC (Define, Measure, Analyze,
Implement, Control) process to measure and improves processes.
Analytical Problem Solving Very critical for testers because problem decomposition and root
cause analysis are key to driving quality upstream.
Test Methodology : It is the way we are going to handle a project. It is
nothing but a tactic we are following during a project cycle.
The term "methodology" became popular in information systems in the early 1970's,
initially as a response to the question, "What is it?" Milt Bryce first applied
the term to systems development in 1971, to describe his Information Systems
Bryce referred to "methodology" as a process which ends
with the delivery of a product or a completely defined result.
at MBA define a methodology as, "a process which ends with the delivery
of a product or a completely defined result." Under this perspective,
a methodology defines the "5-W's"; it defines WHO, is to perform WHAT work,
WHEN, WHERE, and WHY
As opposed to the "5-W's" interpretation by MBA, a methodology supported
by the software design people defines HOW a particular task is to be performed.
For example, the forte of design techniques such as "object oriented programming,"
"structured programming," or "information engineering" is on HOW to accomplish
specific activities of work. From this context, the term "methodology" is a
misnomer which should be replaced by the term "technique," a more apt description.
A true methodology addresses the effectiveness side of the equation
(Who, What, When, Where, Why), and a technique addresses the efficiency side (How to).
Whereas a methodology defines the work environment, the technique defines how
the work is to be performed. The two are obviously complementary and one does
not eliminate the need for the other. But comparing one with another is like
comparing apples with oranges, they are simply not the same.
LINEAR "WATERFALL" METHODOLOGY and SPIRAL DEVELOPMENT
by Tim Bryce
The author, Tim Bryce, can be reached through his company's web site at: http://www.phmainstreet.com/mba/
Comments and questions are welcome.
Testing methodology is a general documented procedure
followed during software development life cycle of the specific project by the development
and the testing teams. This defined methodology will specify the general testing
techniques for projects. These methodologies might be customized for example
from a spiral, V - type or extreme testing methodology.
Chaos software development
Most design methodologies are based on the top-down approach.
waterfall model from 1970
Models vs. Methodologies: The process of gathering and analyzing an application's
requirements, and incorporating them into a program design, is a complex one and
the industry currently supports many methodologies that define formal procedures
specifying how to go about it. One characteristic of UML - in fact, the one that
enables the widespread industry support that the language enjoys - is that it
is methodology-independent. Regardless of the methodology that you use to perform
your analysis and design, you can use UML to express the results. And, using XMI
(XML Metadata Interchange, another OMG standard), you can transfer your UML model
from one tool into a repository, or into another tool for refinement or the next
step in your chosen development process. These are the benefits of standardization!
[OMG Object Management Group]
Software Development (design) methodologies
One of the earliest models in which phases are executed sequentially so that each stage
will start only when all tasks identified in the previous stage are completed.
A software development model in which individual modules of the system are developed at
different times and integrated at different time intervals depending on their completion.
A software development model in which developed modules are reviewed and new functionality is added to improve the system. (RAD, Spiral, RUP,Agile)
RUP (Rational Unified Process) is a framework for constructing methodologies for individual projects.
TDD [test-driven development] methodology.
Test first Software development methodology in which the programmers write unit tests before the code.
V-model - A software development model in which testing activities are performed in parallel with development activities.
Component assembly development model
Extreme programming (XP) is one of the most popular and
well-known approaches in the family of agile methods.
OO (object-oriented) design methodology.
Lean Development Methodology - developed by Taiichi Ohno of the Toyota, based on the following
seven principles: eliminate waste, amplify learning, decide as late as possible, deliver as
fast as possible, empower the team, build integrity, and see the whole.
The Six Sigma methodology, consisting of the five steps define, measure, analyze, design, and verify.
Total quality control is a system for integrating the quality development, maintenance, and improvement efforts
developed and published [Total Quality Control, by Armand V. Feigenbaum, 1951]
Shewhart cycle - a continuous improvement cycle known as plan, do, check, and act (PDCA). also known as the Deming cycle.
Scrum is an iterative incremental framework for managing complex work
(such as new product development) commonly used with agile software
Structured Design Methodology: partitions the system under design at the very top level
into various self operational subsystems.
There are 4 major steps in the methodology:
1. Restate the problem in a data flow diagram
2. Identify the output and input data elements
3. First-level factoring
4. Factoring of all output, input, and transform branches
SYSTEM INTEGRATION TECHNIQUES
Placing people over processes is a priority declared in the agile manifesto.
Manifesto (from the agile website):
• Individuals and interactions over processes and tools
• Working software over comprehensive documentation
• Customer collaboration over contract negotiation
• Responding to change over following a plan
(Agile manifesto has 12 principles)
Agile life cycle has 6 phases’ (iteration 1, iteration 0, construction, release, production, retirement.)
Agile development model - A software development model that uses both iterative and incremental methods to
develop software (XP, Scrum, crystal clear (light), adaptive software development, lean development, Feature driven
development (FDD)- is suitable for very large projects, Dynamic systems development method (DSDM)
An agile development methodology that focuses on small development teams with as few members as possible and follows
twelve practices for effective development.
An agile software development methodology that employs iterative and incremental development by using the
time boxed approach and laying importance on teamwork.
Crystal Clear (light ) is an agile methodology for projects with small teams, less than about 10 people in size.
Adaptive Software Development
Adaptive Software Development is a variation of the agile methodology that is normally used to develop
large and complex software systems. It advocates incremental development of software through constant iterations and
by developing prototypes when it is necessary.
Lean Software Development
A software development methodology based on the Lean manufacturing methodology that enables developers to
develop robust software applications at low cost.
Kanban is a lean approach to agile software development.
(Visualize the workflow; Limit WIP [work in progress]; Measure the time to complete one item;)
Feature Driven Development
Feature Driven Development an iterative and incremental software development methodology that is typically used
for large software projects.
Feature Driven Development (FDD) is an iterative and incremental software development process. It is one of a
number of agile methods for developing software and forms part of the Agile Alliance. FDD blends a number of
industry-recognized best practices into a cohesive whole. [Wiki]
Dynamic Systems Development Methodology
A software development methodology based on the Rapid Application Development (RAD) model.
In the BIT [Built-in Testing] methodology, testability
is incorporated into software components, so that testing and maintenance can be
eXtreme Programming (XP) software development methodology. In the XP methodology,
the customer closely interacts with the software development group and conducts
acceptance tests during each development iteration
[K. Beck and C. Andres. Extreme Programming Explained: Embrace Change, 2nd ed.
Addison-Wesley, Reading, MA, 2004.].
On this site you can find information about software testingand automated software
testing tools, recommendations forsoftware testing training course, list of books about
softwaretesting with recommendations and books suggested for softwaretesting
certification, online software testing quiz, interviewquestions for software testers,
software testing dictionary,samples of software testing documentation including test
casetemplate, jokes about software testing and testers, software
testing techniques and more ...
eXtreme software testing Main Page
Copyright © 2009
eXtremeSoftwareTesting.com All Rights Reserved.