--%>

Explain Automated Testing-Software testing

Automated Testing: Software testing is the most generally used technique for verifying and validating software. While testing may not provide the same rigor as model checking, it is far more scalable and usually does not require a significant tool infrastructure; thus its initial cost and learning curve is low. However, for complex systems these benefits are more than offset by the fact that it is hard to develop the “right” test cases that provide sufficient coverage. This difficulty often reduces coverage despite use of many test cases. The consequence is that testing is a very labor intensive process that typically accounts for about half the total cost of software development and maintenance while yielding poor reliability due to inadequate coverage (Bezier 1990)].

Automating testing not only decreases the cost of verifying and validating software but also increases its reliability. A recent report by the National Institute of Standards and Technology estimates that software failures currently cost the US economy about $60 billion every year, and that improvements in software testing infrastructure might save one-third of this cost (NITT 2002). Testing, and in particular test case generation, lends itself to automation and has been the focus of much research attention; it has also been adopted in industry (Parasoft; T-VEC; Drusinsky 2000; Grieskamp et al. 2002). We distinguish between two main approaches to automatic test case generation: black boxand white box. In the black-box approach, test cases are generated based on a specification of the inputs, while in the white-box approach, test cases are generated based on the analysis of the software under test or of a model of this software.

The quality of a test suite is measured in terms of test coverage, such as structural code coverage, MC/DC, path coverage, and requirements coverage. In addition to program inputs, test cases also need to specify the expected output. This can be done by using testing oracles that encode the functional specifications of the software under test as assertions in the code, post-conditions, etc.

   Related Questions in Programming Languages

  • Q : Program to controls a quiz show in C++

    Foundations of Computer Science In this project, we will write a program that controls a quiz show, much like the many popular TV shows. The program will read in a group of questions and thei

  • Q : Define Unconditional Jumps

    Unconditional Jumps: Jumps which are not strictly upwards in the block hierarchy can require extensive control-flow manipulation, including creation of redundant code, and should be avoided if possible. Such jumps add considerable modeling overhead fo

  • Q : Define Data type Data type : There are

    Data type: There are 8 primitive data types in Java; five of such symbolize numerical types of changeable range and precision - float, double, int, long and short. The remaining three are employed to symbolizing single-bit values (that is, Boolean), s

  • Q : Define Hexadecimal Hexadecimal : Number

    Hexadecimal: Number representation in hexadecimal is base 16. In base 16, the digits 0-9 and the letters A to F are utilized. A symbolizes 10 (base 10), B symbolizes 11 (base 10), and so forth. Digit positions symbolize successive pow

  • Q : Maximum clock frequency of the circuit

    What do you mean by the term set up time and hold time constraints? Explain what do they mean? Which one is vital for estimating the maximum clock frequency of the circuit?

  • Q : Define the term Identifier Define the

    Define the term Identifier: It is a programmer-defined name for a method, variable, class and interface.

  • Q : Explain Upcast Upcast: It is a cast

    Upcast: It is a cast towards an object's ultimate super type - which is, `up' the inheritance hierarchy towards the Object class, for example:         // Upcast from VariableContr

  • Q : What is a Pipe Pipe : It is a linkage

    Pipe: It is a linkage between the two program components. One component responds as a source of data, and writes into the pipe. The second components act as a receiver (that is, sink) for the data and reads from pipe.

  • Q : What is Common Gateway Interface Common

    Common Gateway Interface: The Common Gateway Interface (abbreviated as CGI) is a standard which permits Web clients to interact with programs on Web server. The CGI script is on the server and is able to process arguments or input from a client, and r