Sponsored Ad

Monday, October 12, 2009

Software Testing on a Brief Essay

Testing is a challenging activity that involves several high demanding tasks: at the forefront is the task of deriving inadequate suite of test cases, according to a feasible and costeffectivetest selection technique. However, test selection is just a starting point, and many other critical tasks face test practitioners with technical and conceptual difficulties(which are certainly under-represented in the literature):the ability to launch the selected tests (in a controlled host environment, or worse in the tight target environment of an embedded system); deciding whether the test outcome is acceptable or not (which is referred to as the test oracle problem); if not, evaluating the impact of the failure and finding its direct cause (the fault), and the indirect one (via Root Cause Analysis); judging whether testing is sufficient and can be stopped, which in turn would require having at hand measures of the effectiveness of the tests: one by one, each of these tasks presents tough challenges to testers, for which their skill and expertise always remains of topmost importance.

TYPES OF TESTS

The one term testing actually refers to a full range of test techniques, even quite different from one other, and embraces a variety of aims.

· Static Techniques

The processes implied by the techniques are heavily manual of arms, error-prone, and time consuming. To overcome these problems, researchers have proposed static analysis techniques relying on the use of formal methods. The goal is to automate as much as possible the verification of the properties of the requirements and the design. Towards this goal, it is necessary to enforce a rigorous and unambiguous logical language for specifying the requirements and the software computer architecture. In fact, if language used for specification has a well-defined semantics, algorithms and tools can be developed to analyze the statements written in that language.

We conclude this part taking into account the application program static techniques in the production of values of interest to control and manage the software testing process. Different estimates can be obtained by observing the specific properties of the products present or past, and the parameters of the development process.

· Dynamic Techniques

Dynamic techniques information of interest about computer program by observing some executions. Standard dynamic analyses include software testing (on which we focus in the rest of the chapter) and profiling. Essentially a computer program profile recording the number of time some entities of interest occur during a fix of controller executions. Profiling tools are increasingly used today to derive measures of coverage, for instance in order to dynamic identify control flowing invariants, as well as measures of frequency, called spectra, which are diagrams providing the relative execution frequencies of the monitored entities. In particular, path spectra refer to the distribution of (loop-free) paths traversed during program profiling. Specific dynamic techniques also include simulation, size and time analysis, and prototyping.

In the case of concurrent, non-deterministic systems, the results obtained by testing depend not only on the input provided but also on the state of the software system. Therefore, when speaking about test input values, it is implied that the definition of the parameters and environmental conditions that characterize a computer system state must be included when necessary.

Unit Test

A unit is the smallest testable piece of software, which may consist of hundreds or even a few lines of source code, and usually represents the result of work of a programmer. The purpose of the test unit is to ensure that the drive meets its functional specification and / or implementing their structure matches the structure envisaged in the project.

System Test

System testing should there for ensure that each system function working as expected, any failures are exposed and analyzed, and additionally that interfaces for export and import routines carry as required.

A further test level, called Acceptance Test, is often added tithe above subdivision. This is however more an extension of system test, rather than a new level. It is in fact a test session conducted over the whole system, which mainly focuses on the usability requirements more than on the compliance of the implementation against some specification. The intent is hence to verify that the effort required from end-users to learn to use and fully exploit the system functionalities is acceptable.

Regression Test

Paradoxically, the evidence for selection of cases seems to be the least interesting for professionals in the test. A demonstration of this short-term interest is the lack of automated trading tools to help test selection and generation of test inputs, compared with a wealth of support tools for managing test execution and re - implementation (or regression test) and test documentation. The main criterion to test on the testing industry is likely intuition, and so testing experts can perform very good selection "mechanisms" (with the necessary warnings against exclusive reliance on subjective such strategy). Empirical research shows that knowledge actually test the factor that mostly affects the effectiveness of the test in search of bugs.

TEST DESIGN

Test design is a crucial phase of software testing, in which the objectives and features to software testing and the test suites associated to each of them are defined. Also the levels of test are planned. Then, it is decided what kind of approach will be adopted at each level and each feature to tested. This also includes deciding a Stopping rule for testing. Due to time or budget constraints, at this point it can be decided that testing will concentrations some more critical sections.

The oracle might not always judge right. So the notion of coverage2 of an oracle is introduced to measure its accuracy. It could be measured for instance by the probability that the oracle rejects a testing (on an input chosen at random from a given probability distribution of inputs), given that it should reject it ,whereby a perfect oracle exhibits a100% coverage, while a less than perfect oracle may yield different measurements of accuracy.

0 comments:

Post a Comment

Sponsored Ad

Development Updates

Tech Updates