|
Black box testing or functional testing is used in Computer programming (often simply programming) is the craft of implementing one or more interrelated abstract algorithms using a particular programming language to produce a concrete computer program. Programming has elements of art, science, mathematics, and engineering. Programming languages Main article: programming language The program written in a particular programming language...
computer programming, Software engineering (SE) is the profession concerned with specifying, designing, developing and maintaining software applications by applying technologies and practices from computer science, project management, and other fields. SE applications are used in a wide range of activities, from industry to entertainment. Software applications improve user productivity and quality of...
software engineering and Software testing is a process used to identify the correctness, completeness and quality of developed computer software. Actually, testing can never establish the correctness of computer software, as this can only be done by formal verification. It can only find defects, not prove that there are none. There are a...
software testing to check that the outputs of a program, given certain inputs, conform to the functional specification of the program. The term black box indicates that the internal implementation of the program being executed is not examined by the tester. For this reason black box testing is not normally carried out by the programmer. In most real-world engineering firms, one group does design work while a separate group does the testing. A complementary technique, White box testing, clear box or structural testing is used in computer programming, software engineering and software testing to check that the outputs of a program, given certain inputs, conform to the internal design and implementation of the program. The term white box indicates that the tester closely examines the...
white box testing or structural testing, uses information about the structure of the program to check that it performs correctly.
Equivalence partitioning
A technique in black box testing is equivalence partitioning. Equivalence partitioning is designed to minimize the number of test cases by dividing tests in such a way that the system is expected to act the same way for all tests of each equivalence partition. Test inputs would be selected from each partition. Equivalence partitions are designed so that every possible input belongs to one and only one equivalence partition. Disadvantages to equivalence partitions - Doesn't test every input
- No guidelines for choosing inputs
- For heuristics in computer science, see heuristic (computer science) Heuristic is the art and science of discovery and invention. The word comes from the same Greek root (`ευρισκω) as eureka, meaning to find. A heuristic is a way of directing your attention fruitfully. The...
Heuristic-base
Boundary value analysis Boundary value analysis is a technique of Black box testing in which input values at the boundaries of the input domain are tested. It has been widely recognized that input values at the extreme ends of, and just outside of, input domains tend to cause errors in system functionality. In Boundary value analysis values at, and just beyond, the boundaries of the input domain are used to generate test cases to ensure proper functionality of the system. As an example, for a system that accepts as input a number between one and ten, Boundary value analysis would indicate that test cases should be created for the lower and upper bounds of the input domain (1, 10), and values just outside these bounds (0, 11) to ensure proper functionality. Boundary value analysis is an excellent way to catch common user input errors which can disrupt proper program functionality. Boundary value analysis complements the technique of Equivalence partitioning. Some of the advantages of Boundary value analysis are: - Very good at exposing potential user interface/user input problems
- Very clear guidelines on determining test cases
- Very small set of test cases generated
Disadvantages to Boundary value analysis: - Does not test all possible inputs
- Does not test dependencies between combinations of inputs
Fuzz testing uses software tools to generate random data for the inputs of software. It's quite useful because it requires very little test design, and can locate unexpected errors, especially in input-handling. lkl |