Functional Software Testing

For structural testing or “White Box Testing” covers those cases where you need to check the internal structure of the program and then try to find logical errors of the programmer. In “Black Box Testing” functional testing or we will test the software from the user perspective.
The main techniques are functional: partition testing, domain testing, error-based testing and testing were. The testing is based on the partition to partition the input of the system in disjoint subsets and to each of them to match a different behavior of the program. The technique can be made more efficient if you add the appropriate test cases for special cases, this will have the testing domain.
The error based testing serves to highlight specific errors or classes of errors. The instrument that we used for this test is that the mutation is a set of elementary transformations that allow the program to create a specific mutant that contains errors of some kind. The procedure is to change the name of a variable, the sign of an operator or another, both in terms of code design, to see the effects in the mutated variants of the program.
The domain testing applies to tests of units or components across different domains in the inputs, then tries to discover the errors of classification tests by selecting the point on or near the edges of the domain. The domain test exploits the fact that mistakes, especially mathematical, usually, are concentrated towards the boundaries of the domain.
The partition testing approach is the most characteristic of functional testing, the idea is to divide the subjects into subdomains of the routine test. It identifies all combinations of each subdomain of a domain that form a partition. Do the tests on each subdomain is unthinkable given the large number of these, so it uses heuristic search techniques in such a way that the different values ​​assumed by the parameters do not interact with each other, so as to not having to test cross. Doing some tests on a function, for example, we consider both the inputs as arguments or return values ​​or even the output, trying where possible to take the test on any value, such as positive, zero or less than zero.
These methods that I summarized only serve to try to limit the errors in a program, but unfortunately there will always be something that will produce an event of malfunction, the important thing is to unearth as much as possible.

This entry was posted in Programming. Bookmark the permalink.