<< Chapter < Page
  Software engineering     Page 10 / 15
Chapter >> Page >

Based on the software engineer’s intuition and experience

Ad hoc testing

Perhaps the most widely practiced technique remains ad hoc testing: tests are derived relying on the software engineer’s skill, intuition, and experience with similar programs. Ad hoc testing might be useful for identifying special tests, those not easily captured by formalized techniques.

Exploratory testing

Exploratory testing is defined as simultaneous learning, test design, and test execution; that is, the tests are not defined in advance in an established test plan, but are dynamically designed, executed, and modified. The effectiveness of exploratory testing relies on the software engineer’s knowledge, which can be derived from various sources: observed product behavior during testing, familiarity with the application, the platform, the failure process, the type of possible faults and failures, the risk associated with a particular product, and so on.

Specification-based techniques

Equivalence partitioning

The input domain is subdivided into a collection of subsets, or equivalent classes, which are deemed equivalent according to a specified relation, and a representative set of tests (sometimes only one) is taken from each class.

Boundary-value analysis

Test cases are chosen on and near the boundaries of the input domain of variables, with the underlying rationale that many faults tend to concentrate near the extreme values of inputs. An extension of this technique is robustness testing, wherein test cases are also chosen outside the input domain of variables, to test program robustness to unexpected or erroneous inputs.

Decision table

Decision tables represent logical relationships between conditions (roughly, inputs) and actions (roughly, outputs). Test cases are systematically derived by considering every possible combination of conditions and actions. A related technique is cause-effect graphing.

Finite-state machine-based

By modeling a program as a finite state machine, tests can be selected in order to cover states and transitions on it.

Testing from formal specifications

Giving the specifications in a formal language allows for automatic derivation of functional test cases, and, at the same time, provides a reference output, an oracle, for checking test results. Methods exist for deriving test cases from model-based or algebraic specifications.

Random testing

Tests are generated purely at random, not to be confused with statistical testing from the operational profile. This form of testing falls under the heading of the specification-based entry, since at least the input domain must be known, to be able to pick random points within it.

Code-based techniques

Control-flow-based criteria

Control-flow-based coverage criteria is aimed at covering all the statements or blocks of statements in a program, or specified combinations of them. Several coverage criteria have been proposed, like condition/decision coverage. The strongest of the control-flow-based criteria is path testing, which aims to execute all entry-to-exit control flow paths in the flowgraph. Since path testing is generally not feasible because of loops, other less stringent criteria tend to be used in practice, such as statement testing, branch testing, and condition/decision testing. The adequacy of such tests is measured in percentages; for example, when all branches have been executed at least once by the tests, 100% branch coverage is said to have been achieved.

Questions & Answers

steps of developing a software
latest Reply
Present
win
which approach used to reduce number of test cases
Harshdeep Reply
I wish to ask what is the mean of a data model
Ateke Reply
explanation of working of computer
Gulfam Reply
hi
Moshiur
Hi
Malak
Hi
Yaw
How are you friends
Malak
Hlo nice too me
win
Thank for all fri
win
what's going on
Aden
lean for anything
win
hi guys
Ateke
hello.
Martins
hola como estas hey
Nurullohon
What is software engineering
parfait Reply
explain basic path testing for triangle problem?
Janavi Reply
Sorry
Mo
laptop ka meaning kaya hai
mahefuj Reply
hii bro
MOHD
hi
Aden
hi
Juhi
hi how are u doing bro
Aden
what you have?
Aden
Are you all Indians?
Bade
no I am ethiopian
Aden
I am a cameroonian
Ateke
please how can I design a game
Funmilayo Reply
manojsunani
Manoj
આ આ
Manoj
પોતાના
Manoj
JOHNBULL
EJE
how can supported ; learn me
win
what is software engineering
Darling Reply
software engineering are company manage
mahefuj
Text editor project in c++
Ayesha Reply
hi daddy
Sreenu
hello sir
Ranjith
are unmanned flying machines that are built and equipped with various kinds of software systems that allow them to see, hear, and act. Discuss some of the societal challenges of building such kinds of systems.
johni Reply
You have developed a prototype of a software system and your manager is very impressed by it. She proposes that it should be put into use as a production sys tem, with new features added as required. This avoids the expense of system dev immediately useful. Write a short report for your manager expl
johni
You have developed a prototype of a software system and your manager is very impressed by it. She proposes that it should be put into use as a production sys tem, with new features added as required. This avoids the expense of system dev immediately useful.
johni
You have developed a prototype of a software system and your manager is very impressed by it. She proposes that it should be put into use as a production sys tem, with new features added as required. This avoids the expense of system dev immediately useful.
johni
You have developed a prototype of a software system and your manager is very impressed by it. She proposes that it should be put into use as a production sys tem, with new features added as required. This avoids the expense of system dev immediately useful. Write a short report for your manager expl
johni
You have developed a prototype of a software system and your manager is very impressed by it. She proposes that it should be put into use as a production sys tem, with new features added as required. This avoids the expense of system dev immediately useful.
johni
what is cocomo ?
Surabhi Reply
?
StReeT
cocomo is cocote mo
Trixie
It means constructive cost model
Boris
HI
Masdul
hlo
Anuj
...
Moshiur
hello..
Moshiur
give me coding of these projects
Aman Reply
feasibility study&fact gathering techniques
Nachi Reply
write about software engineering
Mandala Reply
8.10.0.
BARBU

Get the best Software engineering course in your pocket!





Source:  OpenStax, Software engineering. OpenStax CNX. Jul 29, 2009 Download for free at http://cnx.org/content/col10790/1.1
Google Play and the Google Play logo are trademarks of Google Inc.

Notification Switch

Would you like to follow the 'Software engineering' conversation and receive update notifications?

Ask