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

Black-box testing

The black-box approach is a testing method in which test data are derived from the specified functional requirements without regard to the final program structure. It is also termed data-driven, input/output driven, or requirements-based testing. Because only the functionality of the software module is of concern, black-box testing also mainly refers to functional testing - a testing method emphasized on executing the functions and examination of their input and output data. The tester treats the software under test as a black box - only the inputs, outputs and specification are visible, and the functionality is determined by observing the outputs to corresponding inputs. In testing, various inputs are exercised and the outputs are compared against specification to validate the correctness. All test cases are derived from the specification. No implementation details of the code are considered.

It is obvious that the more we have covered in the input space, the more problems we will find and therefore we will be more confident about the quality of the software. Ideally we would be tempted to exhaustively test the input space. But as stated above, exhaustively testing the combinations of valid inputs will be impossible for most of the programs, let alone considering invalid inputs, timing, sequence, and resource variables. Combinatorial explosion is the major roadblock in functional testing. To make things worse, we can never be sure whether the specification is either correct or complete. Due to limitations of the language used in the specifications (usually natural language), ambiguity is often inevitable. Even if we use some type of formal or restricted language, we may still fail to write down all the possible cases in the specification. Sometimes, the specification itself becomes an intractable problem: it is not possible to specify precisely every situation that can be encountered using limited words. And people can seldom specify clearly what they want - they usually can tell whether a prototype is, or is not, what they want after they have been finished. Specification problems contributes approximately 30 percent of all bugs in software.

The research in black-box testing mainly focuses on how to maximize the effectiveness of testing with minimum cost, usually the number of test cases. It is not possible to exhaust the input space, but it is possible to exhaustively test a subset of the input space. Partitioning is one of the common techniques. If we have partitioned the input space and assume all the input values in a partition is equivalent, then we only need to test one representative value in each partition to sufficiently cover the whole input space. Domain testing partitions the input domain into regions, and consider the input values in each domain an equivalent class. Domains can be exhaustively tested and covered by selecting a representative value(s) in each domain. Boundary values are of special interest. Experience shows that test cases that explore boundary conditions have a higher payoff than test cases that do not. Boundary value analysis requires one or more boundary values selected as representative test cases. The difficulties with domain testing are that incorrect domain definitions in the specification can not be efficiently discovered.

Questions & Answers

Which SDLC Model will you select to develop the system as a software engineer and why?
Subrato Reply
communication techniques in software development
SANJANA Reply
👋👋👋
Aslam
what is communication techniques in software development
Aslam
hii
Ritika
hi
prabhu
Hlw
Subrato
hi
Pedro
who is Charles Babbage
Marvin Reply
is father of computer
Pedro
how to do documents in the computer
Mark Reply
Kashmir
akmal
k
akmal
hello
Anil
Hi
Rohid
how are you?
Rohid
Which of these are standards for assessing software processes
own Reply
hello teacher may I give me example of format of software
Aurianne
team a found 342 errors during the software engineering process prior to release. team b found 184 errors. what additional measures would have to be made for projects a and b to determine which of the teams eliminated errors more efficiently? what metrics would you propose to help in making the determination? what historical data might be useful?
Kaviya Reply
it's depend upon software testing and debugging
OMKAR
Hi, Everyone
Rohid
how can ,I download windows 10 pleases
Pedro
hello
Pedro
what is coding
Waswa Reply
programming languages is a coding it is also used software development, designing, modeling, etc..
OMKAR
presently I work as a computer engineering what course can I study in any computer institute to enable me promoting myself
Ichaba
AND here lot of course
OMKAR
How to calculate the basic salary of a payroll in Java coding?
Adjei Reply
ত্তচুরভহব
Parvez
hello
Bahadur
but we have tobe serious in k.dge.. what is the meaning of java coding if you are gineous you will answer me
Eyiba
hie
Mark
hi
Rana
Quids on software engineering
Enongene Reply
software testing practice
Prerana
Ho
Rang
definition of software
Baba Reply
define system ,concepts of system and types of system?
Gurmeet Reply
iom
ADNAN
hello
arsh
hari Paulus hai
Hari
System is the way of Execution or a set of principles to do something or any task is called System.
Ayesha
There are many infinite forms and Types of System in different fields as well.
Ayesha
TELL ME ABOUT MAINFRAME?
OMKAR
hi
Md
System is the way of Execution or a set of principles to do something or any task is called System.
Sazed
is very important software engineer or not.
Riyanshu Reply
very important
arsh
2d
Dv
hello
Md
hi
Rohid
hi
martin
what is software engineering
Ravindra Reply
Software engineering is a detailed study of engineering to the design, development and maintenance of software
arsh
what is salary of software engineer
Akash Reply
it depend on organization's and quality
josephat
I think average salary 80000us dollars per year
arsh
what are naturs of software Engineering
BANDARU Reply

Get Jobilize Job Search Mobile App in your pocket Now!

Get it on Google Play




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
Megan Earhart
Start Quiz
Dionne Mahaffey
Start Quiz
Anindyo Mukhopadhyay
Start Quiz
Hope Percle
Start Quiz