PDC-C.
S
Department
SOFTWARE
TESTING
SEE6B
UNIT-I
PDC-C.S Department
TESTING
SOFTWARE
SEE6B
What is software testing?
The purpose of debugging is to find
the error (or) misconception that lead
Software testing is a process of executing a
to programs failure
program or application with the intent of finding
the software bugs. It can also be stated as the
Testing
Starts with known condition,
Debugging
Debugging starts from
program or applications or products: Meets the
user predefined procedures
unknown initial condit
business and technical requirements that guided
and
predictable
end cannot be predicted
its design and development.
2.
outcomes
Testing is a demonstration of
Debugging is a deductiv
error or apparent correctness
Testing
proves
a
Debugging is the pro
programmers failure
Much of testing can be done
vindication
Debugging is impossib
without design knowledge
Testing can and should be
detailed design knowled
The procedure for and
planned,
debugging
process of validating and verifying that a software
1.1. PURPOSE OF TESTING:
Testing is the process to prove that software
does not work.
Aim of test engineer is to prove that the
S.No
1.
software does not work then testing process can
be considered good
Testing is the process to detect the defects
and minimize the risks associated with the
residual defects.
Testing starts once the software product has
has
designed
and
scheduled
Testing can be done by an
constrained
Debugging must be d
outsider
insider
reached a mature stage of development
What do we do?
Keep track of the number of bugs
detected
Keep correcting the software
Finally conclude that software isgood
enough to be released into the market
1.2. TESTING VS DEBUGGING:
The purpose of testing is to show that
a program has bugs.
Prepared by, L.Vaishnavi
Page 2
cannot
1.3. MODEL OF TESTING:
1.3.1. The project:
Test methods are characterized by the
following model project.
a) Application
b) Staffs
c) Schedule
d) Specification
e) Acceptance Test
f) Personnel
g) Standards
h) Objectives
i) Source
PDC-C.S Department
TESTING
SOFTWARE
SEE6B
required criteria for delivery to
the end users
f) Personnel:
The staffs should be professional
and experienced in programming
and in the application
g) Standards:
Programming and tests standards
a) Application:
The specifics of the application are
exists and are usually followed
h) Objectives:
The system will have many
similar systems that will be
not important
It is a real time system that must
implemented in future
No 2 will be identical, but they
provide timely response to user
request of services
b) Staffs:
The programming staff consists
i)
have 75% of code in common
Source:
One third of code is new and one
third extracted from previous,
of twenty to thirty programmers
c) Schedule:
The project will take 24 months
reliable but poorly documented
The process starts with a
from the start of design to formal
program
acceptance by the customers
Acceptance will be followed by 6
months cutover period
d) Specification:
The specification is good
Its functionally detailed
e) Acceptance test:
The system will be accepted only
whether the software system has
met
the
an
, an OS or a calling program
Human errors lead to create
3 models: a) a model for environment
b) a model of the program
c) a model of the expected bugs
From these models we create a set of tests and
executed
requirement
specifications or not
The main purpose of the test is to
evaluate the systems compliance
with the business requirements
and verify if it has met the
Prepared by, L.Vaishnavi
in
environment , such as a computer
after a formal acceptance test
The customer will intend to
design the acceptance test
It is a technique to determine
embedded
Page 3
The result of each test is either expected or
unexpected
1.3.2.
The Environment:
PDC-C.S Department
TESTING
SOFTWARE
SEE6B
A programs environment is the hardware
d. Lingua salator est-The hopeful belief
and software required to make it run
It also includes all programs that interact
that language syntax and semantics
with and used to create the program under
test, such as OS, loader, linkage editor ,
compiler, utility routines
1.3.3. The program:
Most programs are too complicated to
understood in detail
We must simplify our concept of the
program in order to test it
eliminate most bugs
e. Correction abide-The mistaken belief
f.
that a corrected bug remains corrected
Silver bullets-The mistaken belief that
language, design method, representation ,
environment grants immunity from bugs.
g. Angelic testers: The belief that testers are
better at test design than programmers are
at code design
Different types of bugs:
1.4. BUG:
1. Show Stopper/ Critical Bugs:
The core dumps, products abnormally
A Software bug is an error, flaw , failure or fault
shutdown and no work around will be
in a computer program or system that causes it to
found out, like OS automatically freezing
2. Major Bugs-The work around is found
produce an incorrect or unexpected result or to
but implementation can be done, like
behave it unintended ways
A bad specification may lead us to bugs
performance dependency
3. Medium Bugs- These bugs include DB
Some belief about bugs,
errors, link errors, low response time
4. Low/Minor Bugs-These are simple GUI
a. Benign bug hypothesis:
The belief that bugs are nice,
tame and logical
Subtle bugs have no definable
pattern-they are wild cards
b. Bug locality hypothesis:
The belief that a bug discovered
with a component affect only that
components behavior
errors
A bug occurs when,
A
bug
caused
because
of
not
understanding requirement
Null pointer exceptions
Access violation exceptions
Incorrect format of dates
Bugs due to incorrect syntax
1.5. LEVELS OF TESTING:
c. Control bug dominance-The belief that
errors
in
the
control
structures
of
Levels of testing include different methodologies
that can be used while conducting software
programs dominate the bugs.
testing. FUNCTIONAL TESTING:
Prepared by, L.Vaishnavi
Page 4
PDC-C.S Department
TESTING
SOFTWARE
SEE6B
What is Functional Testing?
Unit
testing
is
performed
by
the
respective developers on the individual
Functional Testing is a testing technique that is
used to test the features/functionality of the
units of source code assigned areas.
The developers use test data that is
system or Software, should cover all the
different from the test data of the quality
scenarios including failure paths and boundary
assurance team.
The goal of unit testing is to isolate each
cases.
part of the program and show that
Functional Testing Techniques:
individual parts are correct in terms of
requirements and functionality.
There
are
two
major
Functional
Testing
Limitations of Unit Testing
techniques as shown below:
Testing cannot catch each and every bug
in an application.
It is impossible
execution
path
to
in
evaluate
every
every
software
application. The same is the case with unit
testing.
There is a limit to the number of scenarios
and test data that a developer can use to
verify a source code.
After having exhausted all the options,
there is no choice but to stop unit testing
and merge the code segment with other
units.
The main levels of software testing are:
1.5.2.Integration Testing:
1.5.1.Unit Testing:
Integration testing is defined as the testing of
This type of testing is performed by
developers before the setup is handed
over to the testing team to formally
execute the test cases.
Prepared by, L.Vaishnavi
Page 5
combined parts of an application to determine if
they function correctly.
Integration testing can be done in two ways:
PDC-C.S Department
TESTING
SOFTWARE
SEE6B
a. Bottom-up integration testing
b. Top-down integration testing.
The
application
is
tested
in
an
environment that is very close to the
production
Integration Testing Method
environment
where
the
application will be deployed.
Bottom-up integration: This testing begins with unit testing, followed by tests of
System testing enables us to test, verify,
progressively higher-level combinations of units called modules or builds.
and validate
both the
business
requirements as well as the application
architecture.
Top-down integration : In this testing, the highest-level modules are tested first and
1.5.4.Regression Testing:
progressively, lower-level modules are tested thereafter.
Whenever a change in a software
application is made, it is quite possible
1.5.3.System Testing:
that other areas within the application
System testing tests the system as a
whole.
Once all the components are integrated,
the application as a whole is tested
rigorously to see that it meets the
have been affected by this change.
Regression testing is performed to verify
that a fixed bug hasn't resulted in another
functionality or business rule violation.
The intent of regression testing is to
ensure that a change, such as a bug fix
specified Quality Standards.
This type of testing is performed by a
should not result in another fault being
specialized testing team.
uncovered in the application.
System testing is important because of the
Regression testing is important because of the
following reasons:
following reasons:
System testing is the first step in the
Minimize the gaps in testing when an
Software Development Life Cycle, where
application with changes made has to be
the application is tested as a whole.
tested.
The application is tested thoroughly to
Testing the new changes to verify that the
verify that it meets the functional and
changes made did not affect any other
technical specifications.
area of the application.
Prepared by, L.Vaishnavi
Page 6
PDC-C.S Department
TESTING
SOFTWARE
SEE6B
Mitigates risks when regression testing is
Cloudy Directions
The Application will be tested on
performed on the application.
Test
coverage
is
increased
without
machines with the lowest specification to
compromising timelines.
test loading times and any latency
problems.
Increase speed to market the product.
1.5.7.Beta Testing:
1.5.5.Acceptance Testing:
This test is performed after alpha testing has been
Acceptance tests are not only intended to
point
out
simple
spelling
successfully performed.
mistakes,
cosmetic errors, or interface gaps, but also
In beta testing, a sample of the intended audience
to point out any bugs in the application
tests the application. Beta testing is also known
that will result in system crashes or major
as pre-release testing.
errors in the application.
By performing acceptance tests on an
Users will install, run the application and
send their feedback to the project team.
application, the testing team will deduce
how the application will perform in
production
Typographical errors, confusing
application flow, and even crashes.
1.5.6.Alpha Testing:
Getting the feedback, the project team can
This test is the first stage of testing and will be
fix the problems before releasing the
performed amongst the teams (developer and QA
software to the actual users.
teams).
The more issues you fix that solve real
Unit testing, integration testing and system testing
user problems, the higher the quality of
when combined together is known as alpha
your application will be.
testing. During this phase, the following aspects
will be tested in the application:
Having a higher-quality application when
you release it to the general public will
Spelling Mistakes
Broken Links
Prepared by, L.Vaishnavi
increase customer satisfaction.
Page 7
PDC-C.S Department
TESTING
SOFTWARE
SEE6B
STRUCTURAL TESTING:
Reveals errors in "hidden" code
Spots the Dead Code or other issues with
respect to best programming practices.
What is Structural Testing ?
Structural testing, also known as glass box
testing or white box testing is an approach where
Disadvantages of Structural Box Testing:
the tests are derived from the knowledge of the
Expensive as one has to spend both time
and money to perform white box testing.
software's structure or internal implementation.
The other names of structural testing includes
missed accidentally.
clear box testing, open box testing, logic driven
testing or path driven testing.
Every possibility that few lines of code is
In
depth
knowledge
about
the
programming language is necessary to
perform white box testing.
Structural Testing Techniques:
IMPORTANCE OF BUGS:
Statement Coverage - This technique is
aimed at exercising all programming
statements with minimal tests.
The importance of bugs depends on frequency ,
correction cost, installation cost & consequences.
(i)
running a series of tests to ensure that all
How often does that kind of
branches are tested at least once.
Frequency:
Branch Coverage - This technique is
Path
Coverage
- This
bug occur?
technique
Pay more attention to the
corresponds to testing all possible paths
more frequent bug types
which means that each statement and
(ii)
branch are covered.
Correction Cost:
What does it cost to correct the bug
Advantages of Structural Testing:
after it is found?
Forces test developer to reason carefully
about implementation
Prepared by, L.Vaishnavi
Page 8
PDC-C.S Department
TESTING
SOFTWARE
SEE6B
The cost depends on sum of 2
Eg: credit card declared invalid
factors:
5.Serious: It loses track of its transactions
(a) The correction cost
Eg: Accontability is lost
(b) The Cost of discovery
6.Very serious: The bug causes the system to do
(iii)
Installation Cost:
the wrong transactions
Installation cost depends on
into another account
the number of installations:
Fixing
one
bug
and
distributing the fix could
exceed the entire systems
development cost
Importance=Frequency*(correction
Eg; Instead of your pay check, the system credits
7.Extreme: The problem once affects a single
user can be spread to other users.
8.Intolerable:
Long
term
unrecoverable
corruption of the database occurs and the
cost+
corruption is not easily discovered & system has
installation cost+ consequential cost)
to be shut down
CONSEQUENCES OF BUGS:
9. Catastrophic: The decision to shutdown is
taken out by our hands because the system fails
1.Mild: The symptoms of bug offend us gently, a
THE TAXONOMY OF BUGS:
misspelled output or misaligned printout
2.Moderate:
Outputs
redundant. The
are
misleading
bug impacts
the
or
systems
Bug taxonomies help in providing fast and
effective feedback so that they can easily identify
possible reasons for failure of the software. Using
performance
bug taxonomy, a large number of potential bugs
3.Annoying: The systems behavior can be
can be grouped into few categories. At the end of
annoying due to bug because of human behavior
testing, testers can understand the type of
categories of bugs that frequently occurred and
Eg: Names are truncated or modified
thereby in successive rounds of testing he can
4.Disturbing: It refuses to handle legimate
transaction
Prepared by, L.Vaishnavi
Page 9
focus on writing more test cases that would help
to detect such bugs.
PDC-C.S Department
TESTING
a)
SOFTWARE
SEE6B
Requirements, Features, and Functionality
Bugs
Even when there are no bugs like
ambiguous, unclear or incomplete
requirements, we may expect new
b) Structural Bugs
c)
type of bugs because of changing
features are new change requests.
Data Bugs
ii)Feature Bugs:
d) Coding Bugs
e)
f)
Each requirement is made up of
Interface, Integration, and System Bugs
many features.
Whenever there are specification
Test and Test Design Bugs
related bugs, corresponding to
that there will be feature related
g) Testing and Design Style
a) Requirements, Features, and Functionality
bugs.
Corresponding to bugs related to
requirement specification, there
Bugs:
will be feature related bugs like
Requirements expressed by client and
wrong feature, missing feature,
user are captured by requirements study
or
team and then they are segregated,
feature is relatively easy to
documented, reviewed, and approved so
identify and also, to address.
In case of wrong feature, based
as to formalise into a requirements
extra
feature.
Missing
on the phase where we detect that
specification.
the particular feature is wrongly
i) Requirements and Specification related
Bugs:
implemented,
the
may be deep.
In order to
implications
address
wrong
The bugs in requirements are a
features, one needs to change all
contributing cause to the failure
earlier documents till that phase
of many projects.
Ambiguous,
unclear
incomplete
requirements
or
are
serious problems but they are not
the sole source of requirements
bugs.
Prepared by, L.Vaishnavi
Page 10
where wrong feature is detected
and
also,
addressing
wrong
features may include changes in
design and code.
PDC-C.S Department
TESTING
SOFTWARE
SEE6B
iii)Feature Interaction Bugs:
Required
software
b)Structural Bugs:
functionality
is
an
in
outcome
of
In
structured
composition
of
each
of
structural
elements
Each feature is not independent
statements, loops and their nesting play an
but interdependent.
Though many a times feature
important role in ensuring better quality
unambiguous,
implementable,
traceable, and testable even then
statements,
the
interaction of many features.
specification is clear, correct,
like
programming
compound
structure.
Also, while structuring, one shall ensure
no redundancy in logic, computation,
representation and declaration.
the system may not be showing
required functionality.
The possible reasons may be
i) Control and Sequence Bugs:
because of incorrect interaction
Control flow specifies a sequence in
among features that are grouped
which instructions (events or paths) are
together or because of incorrect
executed in a component or system.
Control flow and sequence are the most
interaction between feature in a
particular group with another
feature in the other group .
common but can be easily found during
unit testing. These bugs are less in old
software.
Control flow bugs include unreachable or
iv)Functional Bugs:
dead code, improper nesting of loops, un-
Requirements, Features, and Functionality
tested paths, loop-back and loop exit
Bugs can be detected by using functional
criteria, incorrect or missing process
testing techniques, namely, transaction
steps, duplicated processing, un-necessary
flow testing, syntax testing, domain
processing, use
testing, logic testing, and state testing.
Also, formal technical reviews which are
of
Go-TOs
without
justification and so on.
part of static testing are capable of finding
Example
bugs in requirements and also, traceability
Unreachable or Dead Code, Redundant
related issues
Conditionals
ii)Logic Bugs:
Prepared by, L.Vaishnavi
Page 11
PDC-C.S Department
TESTING
SOFTWARE
SEE6B
Logic bugs are related to misunderstanding on behavior of case
statements and logic operators either singly or in Example
combination and also,
misunderstanding of the semantics of the order in which
Boolean- Execute malicious code
Buffer aoverflow
expression is evaluated for specific compiler.
Examples of logic bugs include- improper lay-out of cases improper
c) Data Bugs:
negation of Boolean expression, improper simplification and combination
Data is represented in code as: data types,
of cases etc.
constants, variables, and records.
Data bugs arise while selecting
Example
Switch Case with No Default, Empty Conditional
appropriate
Statements, Enumerated Data Types
specifications, their formats, the number
These bugs include- arithmetic bugs, algebraic
bugs, wrong evaluation of mathematical formula,
and inappropriate selection of algorithm, ignoring
over-flow, improper use of logical and relational
operators.
types,
the
values.
In addition, data representation in the
form of data bases and normalization also
plays a very crucial role.
i)Dynamic Vs. Static Data
Dynamic data are
Examples:
outside
proper
of such data objects, and their initial
iii)Processing Bugs:
Value
and
created
during
the
transaction and stored in the shared
the
domain,
Buffer
Exceptions,
memory.
At the end of the transaction, dynamic
Wrong Assumptions on Operator Precedence,
data has no relevance and shared memory
Overflow/Underflow,
Arithmetic
is released back to the system.
If the results are not as per our
String Handling Errors
expectation, it is hard to locate the cause
iv)Data Flow Bugs and Anomalies:
Data flow is a representation of the
sequence and possible changes of state of
data objects, where the state of an object
is any of creation, usage, modification or
destruction..
behind these bugs and as such bugs
produced by dynamic data are hard to find
and also, performing root cause analysis
is not easy.
Roles:
Parameter,
Information
Bugs like referencing a variable with an undefinedExample:
value and variables
that are never used , initialization bugs, modifying data and not using
the result, attempting to using the variable without defining it, double
initialization are some example of data flow anomalies and bugs.
Prepared by, L.Vaishnavi
Page 12
Control,
and
PDC-C.S Department
TESTING
SOFTWARE
SEE6B
Memory leaks(related with freeing the memory),
Freeing the already freed resource, NULL
Content: Content of data at the lowest level is in the fo
While accepting to store or accessing to process, the da
hardware or software processor before storing it or pro
dereferencing
program.
While doing so there can be data bugs that may
ii) Parameter, Control, and Information:
encryption and decryption of one form to another.
Parameter Data: Parameter is the input and out data to characterize a particular
well-defined function/procedure in a component.
Structure: Structure of data is about organization of the data. I
While passing parameters, care shall be taken to ensure
that exact
typethat can be stored in the structure.
and number
of items
Attribute: This part specifies meaning or semantics associated
and required number of data for inputs and outputs are defined and also,
structure.
the same shall be provided in a defined order.
For example, integer, string, alphanumeric etc.
Control Data: Control Data (Reference Data) is stored to support the business
rules for the maintenance of the information
Data testing focuses on selection of appropriate and proper type
Examples of control data are: in a payroll application, it would be the
for storing data for a specified usage.
d) Coding
Bugs:
data stored on the government tax rates for each pay
scale and
the date
the tax rate became effective; in a retail shop, item-wise rate. Control
The internal structure of the code consists of process an
data contains business rules telling the application whatto While
do or how
to
performing
testing, one need to specify execution
behave.
based on program logic, coding standards, programm
check for complexity of code using techniques like cycl
Information Data: Information type of data is usually
dynamic
it may include- non-conformance of
Codingandbugs
frequently changes in response to changes in processing, external functional
standards; programming style; syntactical bugs; sem
processes and/or business rules in the form of control data.
code; mathematical and logical mistakes in the code;
Information data is produced by the code by using parameter data and
that is too complex to manage; failure to execute all in
processing it using control data.
least once; non-fulfilment of single entry and sing
translation errors in converting design into code; docum
iii)Contents, Structure, and Attributes:
Data in code can be specified as: data
types, constants, variables, and records.
By
selecting
appropriate
data
specification, we ensure correctness in
accepting, providing, processing, and
storing the data.
When data specification is done, it
addresses three parts: contents, structure,
and attributes.
Prepared by, L.Vaishnavi
Page 13
e) Interface, Integration, and System Bugs:
We need to build the software by using appropriate soft
and also, build capability to show required behaviour by
level control and right sequencing to manage resources.
While ensuring this, we can come across many bugs a
integration level, system level, or interoperability level.
PDC-C.S Department
TESTING
SOFTWARE
SEE6B
External Interfaces:
Operating system related bugs have origin
The software has to interface with many
external applications and hardware in
in hardware architecture and interfaces.
Operating system itself may be having
order to carry out its operations and also,
some bugs.
In addition, there can be missing device
to perform its intended functionality.
However, the information about these
drivers because of which interface related
external applications and hardware may
bugs may crop up.
These bugs can be controlled by having
not be available and also, even if
interface specialists to provide solutions,
available may not be complete.
The type of bugs may include- wrong
and also by understanding and defining
protocols; synchronization related bugs;
input and output data inappropriate
formats;
unavailability
of
serves;
restricted access or no access etc.
system level configuration.
Software Architecture:
There can be bugs like failure to support required num
concurrent users; slower response time during peak pe
Internal Interfaces:
to support some other languages; interoperability related
All these types of bugs can be addressed at software ar
Internal interface of software involves establishing interconnectivity
providing solutions like multi-layered architecture;
among different components that are within the boundary
of software
support;
providing loose coupling etc.
application that is under consideration and also, nature and type of these
C
components is known to developer. Also, developers
have control over
ontrol and Sequence Bugs
these components.
protocol
Systems design;
level controls and sequencing play a ver
Some of the bugs that may occur include- wrong
systems, real time systems, telecom syst
inappropriate input and output data formats; failure to embedded
recover against
systems.
wrong data; wrong sub-routine calls; synchronization computing
and sequencing
However there can be bugs like- failure of executio
related bugs; wrong parameter passing to initiate and also to exit.
required sequence; no activation of any event at th
process initiation even when pre-requisites are not fulfi
Hardware Architecture
Knowledge about particular hardware and its architecture
is very
even
whenmuch
pre-requisite conditions are satisfied etc.
essential so as to perform intended functionality.
most of the bugs are related to synchronization.
There can be many bugs like I/O device operation or
errors; bugs are hard to find bugs with a majo
instruction
Synchronization
inadequate buffer space; I/O device address error; no compatibility
among
occur where
multiple threads are accessing some co
hardware devices; failure to access the device and so on. Synchronization bugs are of three types: Deadlocks, Ra
Live lock.
Operating System:
Deadlock
Prepared by, L.Vaishnavi
Page 14
PDC-C.S Department
TESTING
SOFTWARE
SEE6B
Deadlock is a situation in which one or more threads mutually
Systemlock
Bugs
each other,
System bugs cover all types of bugs including both
more frequently because of inconsistent locking sequence.
functional.
Some of the bugs are missing functionality; wrong
Race Condition
functionality;
This is an error which results when two threads try to access the same
resource failure to meet required performance; fa
and the result depends on the order of the execution of the threads. volumes of information; failure to handle peak volu
inappropriate documentation; system that is not
Live Lock
frequently fails etc.
These bugs are directly related to customer and user sat
This type of error results from in consistent synchronization, incorrect
initialization of static field, and method spins on field. These
are explained
f) Test
and Test below.
Design Bugs:
Inconsistent synchronization: Error related to inconsistent synchronization may
Testers and testing can be bug prone.
happen because of mix of locked and unlocked accesses in shared variable where
In testing, especially in business applications, exhaust
some are locked accesses and some other accesses are unlocked.
possible because of many reasons that may include lack
Incorrect initialization of static field: During synchronization, connection and
time, effort, test resources and so on.
release semantics are established by initializing a volatile static field. If a nonTest Criteria
volatile field that is shared by different threads are improperly
initialized
Testingthen
helps to detect as many bugs as possible so as to
there can be a synchronization problem.
testing does not prove that system is bug free.
If testing does not report bugs means it does not indicate
Method spins on field:
does not have bugs.
Control and sequence bugs can be addressed at design level. Using
path performing
testing
After
good enough testing, system will be rel
made
operational
in a production environment. Here sys
with the help of transaction flow graphs, one can detect system level
control
and
can cause many problems related to performance, stabili
sequence bugs.
so which were not seen during system testing.
Integration Bugs:
Resource Management Problems:
Remedies
and
As inter-modular
software
systems
more
more
there is anm
Integration bugs are related intra-module
interfaces.
Test bugs
canarebebecoming
addressed
by and
using
anycomplex,
of the remedial
Integration bugs can detected by integration
which verifies
inter- resources that include memory
ever testing
increasing
manage
debugging,need
test to
quality
assurance, test execution and automa
module interfaces, critical external interfaces
and availability
user and of
business
management,
links
and bandwidth, availability of server,
automation.
workflows and scenarios that would be helpful
into
evolving
the system.
access
other systems
through gateways, and so on.
Integration testing includes Functional
Testing.
Some of
resource
management
related is
bugs
of
Test Debugging: Test debugging
all are
aboutunavailability
finding any issu
Functional Testing at integration level focuses on verifying components that
requiredcases,
resource;
usage of wrong
resource;
resource
already
test coverage
and trying
to address
these
issues in
in use;
orde
are basically small groups of interdependent units that are functionally or
race conditions
efficiency. in getting resources; unavailability of server;
logically related.
unavailability
required
bandwidth;
failure;good
denied
to
of
Test
debugging
allows uslink
to perform
test access
design so
Function Test also exercises the behavior of
the component
based
on specific
server.
efficiency.
input including new functionality and that bug conditions
are properly
Some of the practices like collaborative approach invo
handled.
development
Test methods used in integration testing and functional testing at
integration team
level to strategise testing; review of test
include domain testing, syntax testing, data flow testing.
Prepared by, L.Vaishnavi
Page 15
training on system and domain would be of certain h
PDC-C.S Department
TESTING
SOFTWARE
SEE6B
good test cases, scenarios ad coverage.
g) Testing
and Design
Test Quality Assurance: Model based Test Maturity Models
(TMM)
is in Style
Bad design and bad code lead to bugs.
practice which is of use in test quality assurance.
Bugs that have origin in design are hard to find and add
Thus,
order to carry out effective testing, good de
Matured test related processes, building skills and competency
in intesters,
incorporating test automation, monitoring and controlling test practices
test
code using
is a prerequisite.
If testing is being done on bad design and bad code, the
metrics, measurements, and statistical process controls are the means by which we
stream of bugs in every round of testing showing ever
can bring in test quality assurance.
bugs and never ending testing.
of reporting more and more bugs will
Test Execution Automation: Whenever there is a need to carry outThis
manytrend
rounds
of testing on ensuring stable product with le
of testing on the same system, we can sense the possibility of objective
test execution
also increased confidence on using it.
Thus good testing requires good design and good code.
Here, by selecting appropriate commercial or open source testing
thatnot only inhibit or filter the bugs before
tools,
Goodtests
designs
are designed by testers can be recorded in these tools and the same thereby
can be played
reduce overall effort of software developme
automation.
back so as to complete testing in a shorter period.
rework effort.
In brief, it is always good recommend redesigning rath
Test Design Automation: Slowly but steadily more and more tools are getting
testing on bad design and code.
into test design automation. These tools are of use in automating test design at
code level and also, at system level.
Prepared by, L.Vaishnavi
Page 16