Linear Code Sequence And Jump
   HOME

TheInfoList



OR:

Linear code sequence and jump (LCSAJ), in the broad sense, is a software analysis method used to identify structural units in code under test. Its primary use is with dynamic software analysis to help answer the question "How much testing is enough?".M.A.Hennell, D.Hedley and M.R.Woodward, "Quantifying the test effectiveness of Algol 68 programs", Proceedings of the Strathclyde ALGOL 68 conference 1977, pp. 36 – 41, ISSN 0362-1340 Dynamic software analysis is used to measure the quality and efficacy of software test data, where the quantification is performed in terms of structural units of the code under test. When used to quantify the structural units exercised by a given set of test data, dynamic analysis is also referred to as structural coverage analysis. In a narrower sense, an LCSAJ is a well-defined linear region of a program's code. When used in this sense, LCSAJ is also called JJ-path, standing for jump-to-jump path.


History

The LCSAJ analysis method was devised by Professor
Michael Hennell Professor Michael A. Hennell (born 9 September 1940) is a British computer scientist who has made leading contributions in the field of software testing. Michael Hennell was a Professor of Mathematical Sciences, University of Liverpool in Engla ...
in order to perform quality assessments on the mathematical libraries on which his
nuclear physics Nuclear physics is the field of physics that studies atomic nuclei and their constituents and interactions, in addition to the study of other forms of nuclear matter. Nuclear physics should not be confused with atomic physics, which studies the ...
research at the
University of Liverpool , mottoeng = These days of peace foster learning , established = 1881 – University College Liverpool1884 – affiliated to the federal Victoria Universityhttp://www.legislation.gov.uk/ukla/2004/4 University of Manchester Act 200 ...
depended.M. A. Hennell, ''An experimental testbed for numerical software. . '', The Computer Journal 21(4):333--336, @nov, 1978M. A. Hennell and D. Hedley, ''An experimental testbed for numerical software. . '', The Computer Journal 22(1):53--56, @feb, 1979 Professor Hennell later founded the
Liverpool Data Research Associates Liverpool Data Research Associates (LDRA) is a provider of software analysis, and test and requirements traceability tools for the Public and Private sectors and a pioneer in static and dynamic software analysis. History LDRA was founded in 1975 ...
(LDRA) company to commercialize the software test-bed produced for this work, resulting in the
LDRA Testbed LDRA Testbed provides the core static and dynamic analysis engines for both host and embedded software. LDRA Testbed is made by Liverpool Data Research Associates (LDRA). LDRA Testbed provides the means to enforce compliance with coding standard ...
product. Introduced in 1976, the LCSAJM.A. Hennell, M.R.Woodward and D.Hedley, "On program analysis", Information Processing Letters, 5(5), pp. 136 – 140, 1976 is now also referred to as the jump-to-jump path (JJ-path).M. R. Woodward, M. A. Hennell, "On the relationship between two control-flow coverage criteria: all JJ-paths and MCDC", Information and Software Technology 48 (2006) pp. 433–440 It has also been called Liverpool's Contribution to Silly Acronyms and Jokes.


Definition and characteristics of LCSAJ as a code region

An LCSAJ is a software code path fragment consisting of a sequence of code (a linear code sequence) followed by a control flow Jump, and consists of the following three items:M.A.Hennell, D.Hedley and I.J.Riddell, "Assessing a Class of Software Tools", Proceedings of the 7th International Conference on Software Engineering March 1984, pp. 266 – 277. ISSN 0270-5257 * the start of the linear sequence of executable statements * the end of the linear sequence * the target line to which control flow is transferred at the end of the linear sequence. Unlike (maximal)
basic block In compiler construction, a basic block is a straight-line code sequence with no branches in except to the entry and no branches out except at the exit. This restricted form makes a basic block highly amenable to analysis. Compilers usually decom ...
s, LCSAJs can overlap with each other because a jump (out) may occur in the middle of an LCSAJ, while it isn't allowed in the middle of a basic block. In particular, conditional jumps generate overlapping LCSAJs: one which runs through to where the condition evaluates to false and another that ends at the jump when the condition evaluates to true (the example given further below in this article illustrates such an occurrence). According to a monograph from 1986, LCSAJs were typically four times larger than basic blocks. The formal definition of a LCSAJ can be given in terms of basic blocks as follows: quoting from According to Jorgensen's 2013 textbook, outside Great Britain and
ISTQB The International Software Testing Qualifications Board (ISTQB) is a software testing certification board that operates internationally. Founded in Edinburgh in November 2002, the ISTQB is a non-profit association legally registered in Belgium. I ...
literature, the same notion is called
DD-path A decision-to-decision path, or DD-path, is a path of execution (usually through a flow graph representing a program, such as a flow chart) between two decisions. More recent versions of the concept also include the decisions themselves in their own ...
.


Test effectiveness ratio

Coverage analysis metrics are used to gauge how much testing has been achieved. The most basic metric is the proportion of statements executed, Test Effectiveness Ratio 1 (TER1):J.R.Brown, "Practical Application of Automated Software Tools", TRW Report No. TRW-SS-72-05, presented at WESCON, 1972 TER_\text = \frac Higher level coverage metrics can also be generated, in particular:M.R.Woodward, D.Hedley and M.A.Hennell, “Experience with Path Analysis and Testing of Programs”, IEEE Transactions on Software Engineering, Vol. 6, No. 3, pp. 278 – 286, May 1980 TER_\text = \frac TER_\text = \frac These metrics satisfy a pure hierarchy, whereby when TER3 = 100% has been achieved it follows that TER2 = 100% and TER1 = 100% have also been achieved. Both the TER1 & TER2 metrics were in use in the early 1970s and the third dates from the late 1970s. The requirement for achieving TER1 = 100% was the level originally selected for the DO-178 avionics standard until it was supplemented by the MCDC (
modified condition/decision coverage Modified condition/decision coverage (MC/DC) is a code coverage criterion used in software testing. Overview MC/DC requires all of the below during testing: #Each entry and exit point is invoked #Each decision takes every possible outcome #Each co ...
) additional requirement in 1992.Software Considerations in Airborne System and Equipment Certification-RTCA/DO-178B, RTCA Inc., Washington D.C., December 1992 Higher levels TER3 = 100% have been mandated for many other projects, including aerospace, telephony, and banking. One practical problem of using TER3 is that many LCSAJs can never be executed due to the conflicting conditions they contain. read x, y if x > 5 if y > 3 print "testing" endif endif print " software" From this example it can be seen that the basic block identified by an LCSAJ triple may span a decision point, reflecting the conditions that must be in place in order for the LCSAJ to be executed. For instance, LCSAJ 2 for the above example includes the while statement where the condition (count < ITERATIONS) evaluates to true. Each line of code has an LCSAJ 'density' associated with it; line 17, for instance, appears within 6 unique LCSAJs - i.e. it has an LCSAJ density of 6. This is helpful when evaluating the maintainability of the code; If a line of code is to be changed then the density is indicative of how many LCSAJs will be affected by that change. A coverage level of TER3 = 100% would be achieved when the test data used causes the execution of each of these LCSAJs at least once.


References

{{DEFAULTSORT:Linear Code Sequence And Jump History of computing in the United Kingdom Science and technology in Merseyside Software metrics University of Liverpool