Krogh length: Difference between revisions

From formulasearchengine
Jump to navigation Jump to search
en>Arcadian
 
en>BG19bot
m WP:CHECKWIKI error fix for #61. Punctuation goes before References. Do general fixes if a problem exists. - using AWB (8855)
 
Line 1: Line 1:
'''Linear code sequence and jump (LCSAJ)''' 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?".<ref name="Quantifying the test effectiveness of Algol 68 programs">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</ref>  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 coverage analysis.


==History==
The LCSAJ analysis method was devised by Professor [[Michael Hennell]] in order to perform quality assessments on the mathematical libraries on which his [[nuclear physics]] research at the [[University of Liverpool]] depended.<ref name="An experimental testbed for numerical software. I. Fortran">M. A. Hennell, ''An experimental testbed for numerical software. {I}. {Fortran}'', The Computer Journal 21(4):333--336, @nov, 1978</ref><ref name="An experimental testbed for numerical software. II. ALGOL 68">M. A. Hennell and D. Hedley, ''An experimental testbed for numerical software. {II}. {ALGOL 68}'', The Computer Journal 22(1):53--56, @feb, 1979</ref>  Professor Hennell later founded the [[Liverpool Data Research Associates]] (LDRA) company to commercialize the software test-bed produced for this work, resulting in the [[LDRA Testbed]] product.


CMS provides the best platform to create websites that fulfill all the specifications of SEO. Medical word press themes give you the latest medical designs. I thought about what would happen by placing a text widget in the sidebar beneath my banner ad, and so it went. Word - Press also provides protection against spamming, as security is a measure issue. It's as simple as hiring a Wordpress plugin developer or learning how to create what is needed. <br><br>If you enjoyed this write-up and you would certainly such as to get even more details pertaining to [http://9ja.in/backup_plugin_647823 wordpress backup] kindly browse through our own web page. You just download ready made templates to a separate directory and then choose a favorite one in the admin panel. Infertility can cause a major setback to the couples due to the inability to conceive. This plugin is a must have for anyone who is serious about using Word - Press. They provide many such popular products which you can buy for your baby. Now a days it has since evolved into a fully capable CMS platform which make it, the best platform in the world for performing online business. <br><br>You can down load it here at this link: and utilize your FTP software program to upload it to your Word - Press Plugin folder. But if you are not willing to choose cost to the detriment of quality, originality and higher returns, then go for a self-hosted wordpress blog and increase the presence of your business in this new digital age. I hope this short Plugin Dynamo Review will assist you to differentiate whether Plugin Dynamo is Scam or a Genuine. User friendly features and flexibility that Word - Press has to offer is second to none. Socrates: (link to  ) Originally developed for affiliate marketers, I've used this theme again and again to develop full-fledged web sites that include static pages, squeeze pages, and a blog. <br><br>If all else fails, please leave a comment on this post with the issue(s) you're having and help will be on the way. In case you need to hire PHP developers or hire Offshore Code - Igniter development services or you are looking for Word - Press development experts then Mindfire Solutions would be the right choice for a Software Development partner. This allows for keeping the content editing toolbar in place at all times no matter how far down the page is scrolled. Word - Press is the most popular open source content management system (CMS) in the world today. This includes enriching the content with proper key words, tactfully defining the tags and URL. <br><br>Yet, overall, less than 1% of websites presently have mobile versions of their websites. I'm a large fan of using Word - Press to create pretty much any sort of web page. In simple words, this step can be interpreted as the planning phase of entire PSD to wordpress conversion process. This is because of the customization that works as a keystone for a SEO friendly blogging portal website. The 2010 voting took place from July 7 through August 31, 2010.
Introduced in 1976, the LCSAJ<ref name="On program analysis">M.A. Hennell, M.R.Woodward and D.Hedley, "On program analysis", Information Processing Letters, 5(5), pp. 136 – 140, 1976</ref> is now also referred to as the jump-to-jump path (JJ-path).<ref name="On the relationship between two control-flow coverage criteria: all JJ paths and MCDC">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</ref> It has also been called Liverpool's Contribution to Silly Acronyms and Jokes.
 
==Definition==
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:<ref name="Assessing a Class of Software Tools">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. ISBN 0270-5257</ref>
 
* 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.
 
==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):<ref name="Practical Application of Automated Software Tools">J.R.Brown, "Practical Application of Automated Software Tools", TRW Report No. TRW-SS-72-05, presented at WESCON, 1972</ref>
 
TER1 = <math>\frac{\text{number of statements executed by the test data}}{\text{total number of executable statements}}</math>
 
Higher level coverage metrics can also be generated, in particular:<ref name="Experience with Path Analysis and Testing of Programs">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</ref>
 
TER2 = <math>\frac{\text{number of control-flow branches executed by the test data}}{\text{total number of control-flow branches}}</math>
 
TER3 = <math>\frac{\text{number of LCSAJs executed by the test data}}{\text{total number of LCSAJs}}</math>
 
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]]) additional requirement in 1992.<ref name="DO-178B">Software Considerations in Airborne System and Equipment Certification-RTCA/DO-178B, RTCA Inc., Washington D.C., December 1992</ref> 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.
 
== Example ==
Consider the following C code:
 
<source lang=c line="GESHI_FANCY_LINE_NUMBERS">
#include    <stdlib.h>
#include    <string.h>
#include    <math.h>
 
#define MAXCOLUMNS  26
#define MAXROW      20
#define MAXCOUNT    90
#define ITERATIONS  750
 
int main (void)
{
    int count = 0, totals[MAXCOLUMNS], val = 0;
 
    memset (totals, 0, MAXCOLUMNS * sizeof(int));
 
    count = 0;
    while ( count < ITERATIONS )
    {
        val = abs(rand()) % MAXCOLUMNS;
        totals[val] += 1;
        if ( totals[val] > MAXCOUNT )
        {
            totals[val] = MAXCOUNT;
        }
        count++;
    }
   
    return (0);
 
}
</source>
 
From this code, the following is a complete list of the LCSAJ triples for this code
 
{| class="wikitable" style="text-align:center" border="1"
! LCSAJ Number !! Start Line !! Finish Line !! Jump To Line
|-
! 1
| 10 || 17 || 28
|-
! 2
| 10 || 21 || 25
|-
! 3
| 10 || 26 || 17
|-
! 4
| 17 || 17 || 28
|-
! 5
| 17 || 21 || 25
|-
! 6
| 17 || 26 || 17
|-
! 7
| 25 || 26 || 17
|-
! 8
| 28 || 28 || −1
|}
 
A coverage level of TER3 = 100% would be achieved when test data is used that causes the execution of each of these LCSAJs at least once.
 
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.
 
In addition, it can also be seen that 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.
 
== References ==
{{Reflist}}
 
{{DEFAULTSORT:Linear Code Sequence And Jump}}
[[Category:Software metrics]]

Latest revision as of 20:35, 12 January 2013

Linear code sequence and jump (LCSAJ) 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?".[1] 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 coverage analysis.

History

The LCSAJ analysis method was devised by Professor Michael Hennell in order to perform quality assessments on the mathematical libraries on which his nuclear physics research at the University of Liverpool depended.[2][3] Professor Hennell later founded the Liverpool Data Research Associates (LDRA) company to commercialize the software test-bed produced for this work, resulting in the LDRA Testbed product.

Introduced in 1976, the LCSAJ[4] is now also referred to as the jump-to-jump path (JJ-path).[5] It has also been called Liverpool's Contribution to Silly Acronyms and Jokes.

Definition

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:[6]

  • 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.

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):[7]

TER1 =

Higher level coverage metrics can also be generated, in particular:[8]

TER2 =

TER3 =

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) additional requirement in 1992.[9] 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.

Example

Consider the following C code:

#include    <stdlib.h>
#include    <string.h>
#include    <math.h>

#define MAXCOLUMNS  26
#define MAXROW      20
#define MAXCOUNT    90
#define ITERATIONS  750

int main (void)
{
    int count = 0, totals[MAXCOLUMNS], val = 0;

    memset (totals, 0, MAXCOLUMNS * sizeof(int));

    count = 0;
    while ( count < ITERATIONS )
    {
        val = abs(rand()) % MAXCOLUMNS;
        totals[val] += 1;
        if ( totals[val] > MAXCOUNT )
        {
            totals[val] = MAXCOUNT;
        }
        count++;
    }
    
    return (0);

}

From this code, the following is a complete list of the LCSAJ triples for this code

LCSAJ Number Start Line Finish Line Jump To Line
1 10 17 28
2 10 21 25
3 10 26 17
4 17 17 28
5 17 21 25
6 17 26 17
7 25 26 17
8 28 28 −1

A coverage level of TER3 = 100% would be achieved when test data is used that causes the execution of each of these LCSAJs at least once.

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.

In addition, it can also be seen that 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.

References

43 year old Petroleum Engineer Harry from Deep River, usually spends time with hobbies and interests like renting movies, property developers in singapore new condominium and vehicle racing. Constantly enjoys going to destinations like Camino Real de Tierra Adentro.

  1. 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
  2. M. A. Hennell, An experimental testbed for numerical software. {I}. {Fortran}, The Computer Journal 21(4):333--336, @nov, 1978
  3. M. A. Hennell and D. Hedley, An experimental testbed for numerical software. {II}. {ALGOL 68}, The Computer Journal 22(1):53--56, @feb, 1979
  4. M.A. Hennell, M.R.Woodward and D.Hedley, "On program analysis", Information Processing Letters, 5(5), pp. 136 – 140, 1976
  5. 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
  6. 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. ISBN 0270-5257
  7. J.R.Brown, "Practical Application of Automated Software Tools", TRW Report No. TRW-SS-72-05, presented at WESCON, 1972
  8. 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
  9. Software Considerations in Airborne System and Equipment Certification-RTCA/DO-178B, RTCA Inc., Washington D.C., December 1992