SlideShare a Scribd company logo
1 of 29
Download to read offline
Software testing, reengineering,
quality assusrance
State of the art
Le Club Qualimetrie
The Cyclomatic complexity metric
• theoretical foundation
• the theoretical boundaries
• what it means
• how it's used
• unit testing
• integration testing
• Static and dynamic cyclomatic complexity
Desired Metric Properties
• Universal – all algorithms
• Mathematically rigorous
• Objective – two people get same metric
• Operational – what do you do with it
• Visualization -- could see it, intuitive
A complexity measure
• Definition: The cyclomatic number
v(G) of a graph G with e edges, n
nodes, and p connected
components is e-n+p.
• Theorem: In a strongly connected
graph the cyclomatic number is
equal to the maximal number of
linearly independent circuits.
With this example
V(G) = 10 – 6 + 1 = 5
# of regions = 5
Pick paths for the 5 circuits
• Using theorem 1 we choose a set of
circuits that are paths. The following set
B is a basis set of paths.
• B: (abef) , (abebef) , (abeabef) , (acf) ,
(adcf)
• Linear combinations of paths in B will
generate any path. For example,
• (abea(be)3f) = 2(abebef) – (abef)
• (a(be)2abef) = (a(be)2f)+(abeabef)-(abef)
18 times
n It is IMPOSSIBLE to test All Statistical Paths
n So, from structural coverage view,
When Should We Stop Testing?
n Not care? (planes do, missiles do)
n All lines?
n All branches?
n All boolean outcomes (MC/DC)?
n All cyclomatic paths?
18
0 10Optimum
Number of Tests?
All Statistical Paths = 10
18
If allow 1 Nanosecond per test, time is :
T =
10 x 3600 x 24 x 365
9
10 18
= 31.7 Years
IV. Testing Software for Reliability - Structured Testing
Impossibility of Testing Everything
Methods of computing v(G)
• E-n+2
• # decisions + 1
• # of regions in a planar flow graph
9
If .. then If .. then .. else If .. and .. then If .. or .. then
Do .. While While .. Do Switch
Structured
ProgrammingComponents
Definition of essential complexity
ev(G)
• Remove all structured components from G to
produce a reduced graph R
• Definition: ev(G) = v(R)
• 1<=ev(G)<=v(G)
11
Function A
Complexity = 20
5.17s
Unstructuredness (evg) = 1
Function B
Complexity = 18
Unstructuredness (evg) = 17
So B is MUCH harder to maintain!
Complexity (decisions) & # lines here are similar, but ...
What it means
• In theory --- v, ev,
• In practice --- unconscious, v,ev
– How it works when ignored
– v=20, 45 tests, 12 independent paths tested
• In practice ---- conscious, v, ev
– With just limiting complexity
– With limiting and testing to complexity
• Used just statically, e, ev
• Used dynamically, e,ev
Boundaries
• When structured testing is ‘proof of correctness’
– seldom
– When the path functions are ‘linear’
– Eg, the run time of a redundant path equals it’s linear combination of basis path
runtimes
• When structured testing misses errors
• Often, the assumption is that a path is validly tested
• When data singularities exist along a path
• When an interrupt suspension can cause an error
• When power of observation fails
– High v(G)
– High ev(G)
• Want to test to v independent paths
– Or can reduce v, dead decisions
• High ev is insanity, ev can go high with one bad change
Google book search – McCabe Complexity – 826 books
Encyclopedia of Microcomputers
Introduction to the Team Software Process
]
Network Analysis, Architecture and Design
Separating Data from Instructions: Investigating a New Programming
Cyclomatic Complexity
• Static
– Unit paths v(G)
– Integration paths
– Data complexity
• Dynamic
– Untested paths v(G)-ac
– Untested integration
– Untested data complexity
Applications
Testing
Essential complexity --- reverse
engineering
Design Complexity ---- system
integration
Data complexity --- security testing
Pareto Distribution of errors ---
reverse engineering
Code Breaker ---- Reuse
Security threats
Data Slicing ----- Reuse
Code walkthroughs ---- validation
Design validation
Requirements Validation
Software testing
• cyclomatic complexity
• Cost of errors
• Black box, grey box, white box testing
• unit pretesting, the baseline method
• unit testing, static and dynamic
• integration pretesting, testing
• Code attribute by complexity
• testing life cycle
• Regression testing
Costs of errors
• 80% of your project will be re-work
• Coding error cost is X
• Integration error cost is 30X
• Acceptance error is 300x
• Operational error can be 3000X
• Bottom line: catch errors early and prevent
them!!!
18
19
What module coverage level will you attempt? Minimum # tests would be:
Line Cov. = 2, Branch Cov. = 3, Cyclomatic Path Cov. = 4
Levels of Code Coverage - Module
IV. Testing Software for Reliability - Structured Testing
20
 Cyclomatic Complexity = v(g) = 10
Means that 10 Minimum Tests will:
 Cover All the Code
 Test Decision Logic Multiple Ways From
Baseline
Structured Testing --- The baseline method
Run a robust functional path as ‘the baseline’; flip
successive decisions and come back to the baseline
Structured Testing --- dynamic
• Actual complexity(ac) is the # of linearly
independent paths in the test set
• May have 100 tests with v=10 and ac=5
• 1<=ac<=v
• Many organizations run functional tests first,
then add v-ac additional independent paths
22
• Design Complexity, S0 =  iv(g)
– measure of decision structure which controls the invocation
of modules within the design; quantifies testing effort for
paths within modules relative to calls in the design
• Integration Complexity, S1 = S0 - n + 1
– measure of the integration tests that qualify the design tree;
it is the # of paths needed to test all calls to all modules at
least once, a quantification of a basis set of integration tests;
it measures the minimum integration testing effort of a
design; each S1 test validates the integration of several
modules and is known as a subtree of the whole design tree
• Sum/Maximum/Average of v(g), ev(g), gdv(g), branches, etc.
III. Development of Reliable Software - Code Structure
Complexity Metrics Impacting Reliability - Component
23
• Module Design Complexity, iv(g)
[integration]
– measure of logical paths containing
calls/invocation of immediate subordinate
modules, i.e., Integration
– calculated by reduction of graph after
removing decisions/nodes with no calls
– value should be higher for modules higher in
hierarchies, that is, in management modules
• Paths Containing Global Data, gdv(g)
– global data also impacts reliability, because it
creates relationships between modules
• Branches, which is related to v(g)
• Maximum Nesting Level
• Others
v(g) = 10
ev(g) = 3
iv(g) = 3
III. Development of Reliable Software - Code Structure
Complexity Metrics Impacting Reliability -
Module
24
Integration
Complexity
(S1)
How do you assess complexity & test effort
for component design?
S1 = S0 - n + 1= 12 - 7 + 1 = 6
By measuring the integration paths in its
modules
III. Development of Reliable Software - Code Structure
25
What coverage level will you attempt
during Integration Test?
• Module entry? - the 5 red boxes
need tested
• Module integration calls? - the 9
black lines need tested (they include
the red boxes)
• Module integration paths? - the 9
black lines plus all paths in the
calling modules that contain calls;
Structured Testing recommends this
level as minimum
• Other?
IV. Testing Software for Reliability - Structured Testing
Levels of Code Coverage - Component
Black lines mean not yet tested
26
• Cyclomatic Complexity & Reliability Risk
– 1 – 10 Simple procedure, little risk
– 11- 20 More Complex, moderate risk
– 21 – 50 Complex , high risk
– >50 Untestable, VERY HIGH RISK
• Cyclomatic Complexity & Bad Fix Probability
– 1 – 10 5%
– 20 –30 20%
– > 50 40%
– Approaching 100 60%
• Essential Complexity (Unstructuredness) &
Maintainability (future Reliability) Risk
– 1 – 4 Structured, little risk
– > 4 Unstructured, High Risk
Complexity Metrics Impacting Reliability - Module
27
Inspection self test ---- error prevention – test before building
Error prevention is the most powerful tool
Regression Testing
• You test once, retest a million times
• Test data, results, and traceability are very valuable
• Data base system holds tests
• Comparator used to verify results
• Synced with configuration management
• Is pruned
• Is added to
• 20% of tests will show 80% of errors --- percolated up
• Tests have history --- those that show no errors are
pruned out
28
Review teams ---- Here’s the leverage
• Egoless --- no blame no shame
• Find errors don’t fix them
• Team works as a whole --- succeeds or fails as one
team
• If # of errors is high then rework the product and
inspect again
• Need a scribe
• Need a checklist of issues to look for
• Product gets certified as ‘Inspected by Team Us’
• Is preceded by test team producing acceptance tests
• Use McCabe methodology for code and design reviews
29

More Related Content

What's hot

4 informed-search
4 informed-search4 informed-search
4 informed-searchMhd Sb
 
backtracking algorithms of ada
backtracking algorithms of adabacktracking algorithms of ada
backtracking algorithms of adaSahil Kumar
 
Convolutional Neural Network Models - Deep Learning
Convolutional Neural Network Models - Deep LearningConvolutional Neural Network Models - Deep Learning
Convolutional Neural Network Models - Deep LearningMohamed Loey
 
High-Performance Haskell
High-Performance HaskellHigh-Performance Haskell
High-Performance HaskellJohan Tibell
 
Amortized Analysis
Amortized Analysis Amortized Analysis
Amortized Analysis sathish sak
 
Chapitre vi np complétude
Chapitre vi np complétudeChapitre vi np complétude
Chapitre vi np complétudeSana Aroussi
 
Support Vector Machines for Classification
Support Vector Machines for ClassificationSupport Vector Machines for Classification
Support Vector Machines for ClassificationPrakash Pimpale
 
Chapter 09 design and analysis of algorithms
Chapter 09  design and analysis of algorithmsChapter 09  design and analysis of algorithms
Chapter 09 design and analysis of algorithmsPraveen M Jigajinni
 
Introduction to Deep Learning, Keras, and TensorFlow
Introduction to Deep Learning, Keras, and TensorFlowIntroduction to Deep Learning, Keras, and TensorFlow
Introduction to Deep Learning, Keras, and TensorFlowSri Ambati
 
Greedy Algorithms Huffman Coding.ppt
Greedy Algorithms  Huffman Coding.pptGreedy Algorithms  Huffman Coding.ppt
Greedy Algorithms Huffman Coding.pptRuchika Sinha
 
Mc Culloch Pitts Neuron
Mc Culloch Pitts NeuronMc Culloch Pitts Neuron
Mc Culloch Pitts NeuronShajun Nisha
 
Dynamic programming - fundamentals review
Dynamic programming - fundamentals reviewDynamic programming - fundamentals review
Dynamic programming - fundamentals reviewElifTech
 
Principles of soft computing-Associative memory networks
Principles of soft computing-Associative memory networksPrinciples of soft computing-Associative memory networks
Principles of soft computing-Associative memory networksSivagowry Shathesh
 
Longest common subsequences in Algorithm Analysis
Longest common subsequences in Algorithm AnalysisLongest common subsequences in Algorithm Analysis
Longest common subsequences in Algorithm AnalysisRajendran
 
Clique problem step_by_step
Clique problem step_by_stepClique problem step_by_step
Clique problem step_by_stepSing Kuang Tan
 

What's hot (20)

4 informed-search
4 informed-search4 informed-search
4 informed-search
 
backtracking algorithms of ada
backtracking algorithms of adabacktracking algorithms of ada
backtracking algorithms of ada
 
Convolutional Neural Network Models - Deep Learning
Convolutional Neural Network Models - Deep LearningConvolutional Neural Network Models - Deep Learning
Convolutional Neural Network Models - Deep Learning
 
High-Performance Haskell
High-Performance HaskellHigh-Performance Haskell
High-Performance Haskell
 
Backtracking
BacktrackingBacktracking
Backtracking
 
Amortized Analysis
Amortized Analysis Amortized Analysis
Amortized Analysis
 
Chapitre vi np complétude
Chapitre vi np complétudeChapitre vi np complétude
Chapitre vi np complétude
 
Traveling Salesman Problem
Traveling Salesman Problem Traveling Salesman Problem
Traveling Salesman Problem
 
Support Vector Machines for Classification
Support Vector Machines for ClassificationSupport Vector Machines for Classification
Support Vector Machines for Classification
 
Chapter 09 design and analysis of algorithms
Chapter 09  design and analysis of algorithmsChapter 09  design and analysis of algorithms
Chapter 09 design and analysis of algorithms
 
Introduction to Deep Learning, Keras, and TensorFlow
Introduction to Deep Learning, Keras, and TensorFlowIntroduction to Deep Learning, Keras, and TensorFlow
Introduction to Deep Learning, Keras, and TensorFlow
 
Greedy Algorithms Huffman Coding.ppt
Greedy Algorithms  Huffman Coding.pptGreedy Algorithms  Huffman Coding.ppt
Greedy Algorithms Huffman Coding.ppt
 
Mc Culloch Pitts Neuron
Mc Culloch Pitts NeuronMc Culloch Pitts Neuron
Mc Culloch Pitts Neuron
 
weka data mining
weka data mining weka data mining
weka data mining
 
Resnet
ResnetResnet
Resnet
 
Dynamic programming - fundamentals review
Dynamic programming - fundamentals reviewDynamic programming - fundamentals review
Dynamic programming - fundamentals review
 
Principles of soft computing-Associative memory networks
Principles of soft computing-Associative memory networksPrinciples of soft computing-Associative memory networks
Principles of soft computing-Associative memory networks
 
Apriori algorithm
Apriori algorithmApriori algorithm
Apriori algorithm
 
Longest common subsequences in Algorithm Analysis
Longest common subsequences in Algorithm AnalysisLongest common subsequences in Algorithm Analysis
Longest common subsequences in Algorithm Analysis
 
Clique problem step_by_step
Clique problem step_by_stepClique problem step_by_step
Clique problem step_by_step
 

Similar to 20100309 02 - Software testing (McCabe)

Qat09 presentations dxw07u
Qat09 presentations dxw07uQat09 presentations dxw07u
Qat09 presentations dxw07uShubham Sharma
 
Software Engineering (Testing techniques)
Software Engineering (Testing techniques)Software Engineering (Testing techniques)
Software Engineering (Testing techniques)ShudipPal
 
Software Engineering (Testing techniques)
Software Engineering (Testing techniques)Software Engineering (Testing techniques)
Software Engineering (Testing techniques)ShudipPal
 
Class9_SW_Testing_Strategies.pdf
Class9_SW_Testing_Strategies.pdfClass9_SW_Testing_Strategies.pdf
Class9_SW_Testing_Strategies.pdfFarjanaParvin5
 
Dealing with the Three Horrible Problems in Verification
Dealing with the Three Horrible Problems in VerificationDealing with the Three Horrible Problems in Verification
Dealing with the Three Horrible Problems in VerificationDVClub
 
New software testing-techniques
New software testing-techniquesNew software testing-techniques
New software testing-techniquesFincy V.J
 
Automated Test Suite Generation for Time-Continuous Simulink Models
Automated Test Suite Generation for Time-Continuous Simulink ModelsAutomated Test Suite Generation for Time-Continuous Simulink Models
Automated Test Suite Generation for Time-Continuous Simulink ModelsLionel Briand
 
Software Testing Techniques
Software Testing TechniquesSoftware Testing Techniques
Software Testing TechniquesKiran Kumar
 
Seii unit6 software-testing-techniques
Seii unit6 software-testing-techniquesSeii unit6 software-testing-techniques
Seii unit6 software-testing-techniquesAhmad sohail Kakar
 
Newsoftware testing-techniques-141114004511-conversion-gate01
Newsoftware testing-techniques-141114004511-conversion-gate01Newsoftware testing-techniques-141114004511-conversion-gate01
Newsoftware testing-techniques-141114004511-conversion-gate01Mr. Jhon
 
Finding Bugs Faster with Assertion Based Verification (ABV)
Finding Bugs Faster with Assertion Based Verification (ABV)Finding Bugs Faster with Assertion Based Verification (ABV)
Finding Bugs Faster with Assertion Based Verification (ABV)DVClub
 
Presentation
PresentationPresentation
PresentationSATYALOK
 

Similar to 20100309 02 - Software testing (McCabe) (20)

11 whiteboxtesting
11 whiteboxtesting11 whiteboxtesting
11 whiteboxtesting
 
Qat09 presentations dxw07u
Qat09 presentations dxw07uQat09 presentations dxw07u
Qat09 presentations dxw07u
 
Software Engineering (Testing techniques)
Software Engineering (Testing techniques)Software Engineering (Testing techniques)
Software Engineering (Testing techniques)
 
Software Engineering (Testing techniques)
Software Engineering (Testing techniques)Software Engineering (Testing techniques)
Software Engineering (Testing techniques)
 
Class9_SW_Testing_Strategies.pdf
Class9_SW_Testing_Strategies.pdfClass9_SW_Testing_Strategies.pdf
Class9_SW_Testing_Strategies.pdf
 
Dealing with the Three Horrible Problems in Verification
Dealing with the Three Horrible Problems in VerificationDealing with the Three Horrible Problems in Verification
Dealing with the Three Horrible Problems in Verification
 
Se unit 4
Se unit 4Se unit 4
Se unit 4
 
20130523 05 - Cyclomatic complexity
20130523 05 - Cyclomatic complexity20130523 05 - Cyclomatic complexity
20130523 05 - Cyclomatic complexity
 
Introduction to White box testing
Introduction to White box testingIntroduction to White box testing
Introduction to White box testing
 
New software testing-techniques
New software testing-techniquesNew software testing-techniques
New software testing-techniques
 
Automated Test Suite Generation for Time-Continuous Simulink Models
Automated Test Suite Generation for Time-Continuous Simulink ModelsAutomated Test Suite Generation for Time-Continuous Simulink Models
Automated Test Suite Generation for Time-Continuous Simulink Models
 
Test Techniques
Test TechniquesTest Techniques
Test Techniques
 
Software Testing Techniques
Software Testing TechniquesSoftware Testing Techniques
Software Testing Techniques
 
Seii unit6 software-testing-techniques
Seii unit6 software-testing-techniquesSeii unit6 software-testing-techniques
Seii unit6 software-testing-techniques
 
Newsoftware testing-techniques-141114004511-conversion-gate01
Newsoftware testing-techniques-141114004511-conversion-gate01Newsoftware testing-techniques-141114004511-conversion-gate01
Newsoftware testing-techniques-141114004511-conversion-gate01
 
Finding Bugs Faster with Assertion Based Verification (ABV)
Finding Bugs Faster with Assertion Based Verification (ABV)Finding Bugs Faster with Assertion Based Verification (ABV)
Finding Bugs Faster with Assertion Based Verification (ABV)
 
ASIC design verification
ASIC design verificationASIC design verification
ASIC design verification
 
Unit 6
Unit 6Unit 6
Unit 6
 
Presentation
PresentationPresentation
Presentation
 
Pragmatic Code Coverage
Pragmatic Code CoveragePragmatic Code Coverage
Pragmatic Code Coverage
 

More from LeClubQualiteLogicielle

20171122 03 - Les tests de performance en environnement DevOps
20171122 03 - Les tests de performance en environnement DevOps20171122 03 - Les tests de performance en environnement DevOps
20171122 03 - Les tests de performance en environnement DevOpsLeClubQualiteLogicielle
 
20171122 04 - Automatisation - formation et certifications
20171122 04 - Automatisation - formation et certifications20171122 04 - Automatisation - formation et certifications
20171122 04 - Automatisation - formation et certificationsLeClubQualiteLogicielle
 
20171122 01 - REX : Intégration et déploiement continu chez Engie
20171122 01 - REX : Intégration et déploiement continu chez Engie20171122 01 - REX : Intégration et déploiement continu chez Engie
20171122 01 - REX : Intégration et déploiement continu chez EngieLeClubQualiteLogicielle
 
20171122 02 - Engage developers to use better coding practices
20171122 02 - Engage developers to use better coding practices20171122 02 - Engage developers to use better coding practices
20171122 02 - Engage developers to use better coding practicesLeClubQualiteLogicielle
 
20171122 - Accueil Club Qualité Logicielle
20171122 - Accueil Club Qualité Logicielle 20171122 - Accueil Club Qualité Logicielle
20171122 - Accueil Club Qualité Logicielle LeClubQualiteLogicielle
 
20151013 - Crédit Mutuel ARKEA : mise en place d'une traçabilité outillée des...
20151013 - Crédit Mutuel ARKEA : mise en place d'une traçabilité outillée des...20151013 - Crédit Mutuel ARKEA : mise en place d'une traçabilité outillée des...
20151013 - Crédit Mutuel ARKEA : mise en place d'une traçabilité outillée des...LeClubQualiteLogicielle
 
20151013 - Agirc arrco : Behavior driven development
20151013 - Agirc arrco : Behavior driven development20151013 - Agirc arrco : Behavior driven development
20151013 - Agirc arrco : Behavior driven developmentLeClubQualiteLogicielle
 
20151013 - Réduire les coûts des tests de performance ?
20151013 - Réduire les coûts des tests de performance ?20151013 - Réduire les coûts des tests de performance ?
20151013 - Réduire les coûts des tests de performance ?LeClubQualiteLogicielle
 
20151013 - Accueil Club Qualité Logicielle
20151013 - Accueil Club Qualité Logicielle 20151013 - Accueil Club Qualité Logicielle
20151013 - Accueil Club Qualité Logicielle LeClubQualiteLogicielle
 
20151013 - DevOps et qualification continue
20151013 - DevOps et qualification continue20151013 - DevOps et qualification continue
20151013 - DevOps et qualification continueLeClubQualiteLogicielle
 
20140410 - Cartographie applicative multi-technologies et analyse d'impact
20140410 - Cartographie applicative multi-technologies et analyse d'impact20140410 - Cartographie applicative multi-technologies et analyse d'impact
20140410 - Cartographie applicative multi-technologies et analyse d'impactLeClubQualiteLogicielle
 
20140410 - Implémentation de squash TM-TA - Architecture et méthodologie
20140410 - Implémentation de squash TM-TA - Architecture et méthodologie20140410 - Implémentation de squash TM-TA - Architecture et méthodologie
20140410 - Implémentation de squash TM-TA - Architecture et méthodologieLeClubQualiteLogicielle
 
20140410 - Gestion des identités, traçabilité des accés - Analogie avec la qu...
20140410 - Gestion des identités, traçabilité des accés - Analogie avec la qu...20140410 - Gestion des identités, traçabilité des accés - Analogie avec la qu...
20140410 - Gestion des identités, traçabilité des accés - Analogie avec la qu...LeClubQualiteLogicielle
 
20140410 - Choisir et implanter un outil de test
20140410 - Choisir et implanter un outil de test20140410 - Choisir et implanter un outil de test
20140410 - Choisir et implanter un outil de testLeClubQualiteLogicielle
 
20130113 02 - TMMI, un modèle pour rentabiliser une organisation de test et a...
20130113 02 - TMMI, un modèle pour rentabiliser une organisation de test et a...20130113 02 - TMMI, un modèle pour rentabiliser une organisation de test et a...
20130113 02 - TMMI, un modèle pour rentabiliser une organisation de test et a...LeClubQualiteLogicielle
 
20130113 06 - Travaux de recherche sur la corrélation entre qualité du code e...
20130113 06 - Travaux de recherche sur la corrélation entre qualité du code e...20130113 06 - Travaux de recherche sur la corrélation entre qualité du code e...
20130113 06 - Travaux de recherche sur la corrélation entre qualité du code e...LeClubQualiteLogicielle
 
20130113 05 - Inspection continue et roadmap 2013
20130113 05 - Inspection continue et roadmap 201320130113 05 - Inspection continue et roadmap 2013
20130113 05 - Inspection continue et roadmap 2013LeClubQualiteLogicielle
 
20130113 04 - Tests d'integration et virtualisation - La vision IBM
20130113 04 - Tests d'integration et virtualisation - La vision IBM20130113 04 - Tests d'integration et virtualisation - La vision IBM
20130113 04 - Tests d'integration et virtualisation - La vision IBMLeClubQualiteLogicielle
 
20130523 06 - The mathematics the way algorithms think / the mathematics the ...
20130523 06 - The mathematics the way algorithms think / the mathematics the ...20130523 06 - The mathematics the way algorithms think / the mathematics the ...
20130523 06 - The mathematics the way algorithms think / the mathematics the ...LeClubQualiteLogicielle
 
20130523 04 - Grille d'évaluation - Gestion du patrimoine de test
20130523 04 - Grille d'évaluation - Gestion du patrimoine de test20130523 04 - Grille d'évaluation - Gestion du patrimoine de test
20130523 04 - Grille d'évaluation - Gestion du patrimoine de testLeClubQualiteLogicielle
 

More from LeClubQualiteLogicielle (20)

20171122 03 - Les tests de performance en environnement DevOps
20171122 03 - Les tests de performance en environnement DevOps20171122 03 - Les tests de performance en environnement DevOps
20171122 03 - Les tests de performance en environnement DevOps
 
20171122 04 - Automatisation - formation et certifications
20171122 04 - Automatisation - formation et certifications20171122 04 - Automatisation - formation et certifications
20171122 04 - Automatisation - formation et certifications
 
20171122 01 - REX : Intégration et déploiement continu chez Engie
20171122 01 - REX : Intégration et déploiement continu chez Engie20171122 01 - REX : Intégration et déploiement continu chez Engie
20171122 01 - REX : Intégration et déploiement continu chez Engie
 
20171122 02 - Engage developers to use better coding practices
20171122 02 - Engage developers to use better coding practices20171122 02 - Engage developers to use better coding practices
20171122 02 - Engage developers to use better coding practices
 
20171122 - Accueil Club Qualité Logicielle
20171122 - Accueil Club Qualité Logicielle 20171122 - Accueil Club Qualité Logicielle
20171122 - Accueil Club Qualité Logicielle
 
20151013 - Crédit Mutuel ARKEA : mise en place d'une traçabilité outillée des...
20151013 - Crédit Mutuel ARKEA : mise en place d'une traçabilité outillée des...20151013 - Crédit Mutuel ARKEA : mise en place d'une traçabilité outillée des...
20151013 - Crédit Mutuel ARKEA : mise en place d'une traçabilité outillée des...
 
20151013 - Agirc arrco : Behavior driven development
20151013 - Agirc arrco : Behavior driven development20151013 - Agirc arrco : Behavior driven development
20151013 - Agirc arrco : Behavior driven development
 
20151013 - Réduire les coûts des tests de performance ?
20151013 - Réduire les coûts des tests de performance ?20151013 - Réduire les coûts des tests de performance ?
20151013 - Réduire les coûts des tests de performance ?
 
20151013 - Accueil Club Qualité Logicielle
20151013 - Accueil Club Qualité Logicielle 20151013 - Accueil Club Qualité Logicielle
20151013 - Accueil Club Qualité Logicielle
 
20151013 - DevOps et qualification continue
20151013 - DevOps et qualification continue20151013 - DevOps et qualification continue
20151013 - DevOps et qualification continue
 
20140410 - Cartographie applicative multi-technologies et analyse d'impact
20140410 - Cartographie applicative multi-technologies et analyse d'impact20140410 - Cartographie applicative multi-technologies et analyse d'impact
20140410 - Cartographie applicative multi-technologies et analyse d'impact
 
20140410 - Implémentation de squash TM-TA - Architecture et méthodologie
20140410 - Implémentation de squash TM-TA - Architecture et méthodologie20140410 - Implémentation de squash TM-TA - Architecture et méthodologie
20140410 - Implémentation de squash TM-TA - Architecture et méthodologie
 
20140410 - Gestion des identités, traçabilité des accés - Analogie avec la qu...
20140410 - Gestion des identités, traçabilité des accés - Analogie avec la qu...20140410 - Gestion des identités, traçabilité des accés - Analogie avec la qu...
20140410 - Gestion des identités, traçabilité des accés - Analogie avec la qu...
 
20140410 - Choisir et implanter un outil de test
20140410 - Choisir et implanter un outil de test20140410 - Choisir et implanter un outil de test
20140410 - Choisir et implanter un outil de test
 
20130113 02 - TMMI, un modèle pour rentabiliser une organisation de test et a...
20130113 02 - TMMI, un modèle pour rentabiliser une organisation de test et a...20130113 02 - TMMI, un modèle pour rentabiliser une organisation de test et a...
20130113 02 - TMMI, un modèle pour rentabiliser une organisation de test et a...
 
20130113 06 - Travaux de recherche sur la corrélation entre qualité du code e...
20130113 06 - Travaux de recherche sur la corrélation entre qualité du code e...20130113 06 - Travaux de recherche sur la corrélation entre qualité du code e...
20130113 06 - Travaux de recherche sur la corrélation entre qualité du code e...
 
20130113 05 - Inspection continue et roadmap 2013
20130113 05 - Inspection continue et roadmap 201320130113 05 - Inspection continue et roadmap 2013
20130113 05 - Inspection continue et roadmap 2013
 
20130113 04 - Tests d'integration et virtualisation - La vision IBM
20130113 04 - Tests d'integration et virtualisation - La vision IBM20130113 04 - Tests d'integration et virtualisation - La vision IBM
20130113 04 - Tests d'integration et virtualisation - La vision IBM
 
20130523 06 - The mathematics the way algorithms think / the mathematics the ...
20130523 06 - The mathematics the way algorithms think / the mathematics the ...20130523 06 - The mathematics the way algorithms think / the mathematics the ...
20130523 06 - The mathematics the way algorithms think / the mathematics the ...
 
20130523 04 - Grille d'évaluation - Gestion du patrimoine de test
20130523 04 - Grille d'évaluation - Gestion du patrimoine de test20130523 04 - Grille d'évaluation - Gestion du patrimoine de test
20130523 04 - Grille d'évaluation - Gestion du patrimoine de test
 

Recently uploaded

Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...MyIntelliSource, Inc.
 
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...OnePlan Solutions
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxComplianceQuest1
 
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️anilsa9823
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfkalichargn70th171
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...kellynguyen01
 
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerHow To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerThousandEyes
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxbodapatigopi8531
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️Delhi Call girls
 
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AISyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AIABDERRAOUF MEHENNI
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...ICS
 
How To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsHow To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsAndolasoft Inc
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsJhone kinadey
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVshikhaohhpro
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...panagenda
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...Health
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Steffen Staab
 
Diamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionDiamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionSolGuruz
 

Recently uploaded (20)

Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS LiveVip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
 
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICECHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
 
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docx
 
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
 
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerHow To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptx
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
 
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AISyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
 
How To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsHow To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.js
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial Goals
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTV
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
 
Diamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionDiamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with Precision
 

20100309 02 - Software testing (McCabe)

  • 1. Software testing, reengineering, quality assusrance State of the art Le Club Qualimetrie
  • 2. The Cyclomatic complexity metric • theoretical foundation • the theoretical boundaries • what it means • how it's used • unit testing • integration testing • Static and dynamic cyclomatic complexity
  • 3. Desired Metric Properties • Universal – all algorithms • Mathematically rigorous • Objective – two people get same metric • Operational – what do you do with it • Visualization -- could see it, intuitive
  • 4. A complexity measure • Definition: The cyclomatic number v(G) of a graph G with e edges, n nodes, and p connected components is e-n+p. • Theorem: In a strongly connected graph the cyclomatic number is equal to the maximal number of linearly independent circuits.
  • 5. With this example V(G) = 10 – 6 + 1 = 5 # of regions = 5
  • 6. Pick paths for the 5 circuits • Using theorem 1 we choose a set of circuits that are paths. The following set B is a basis set of paths. • B: (abef) , (abebef) , (abeabef) , (acf) , (adcf) • Linear combinations of paths in B will generate any path. For example, • (abea(be)3f) = 2(abebef) – (abef) • (a(be)2abef) = (a(be)2f)+(abeabef)-(abef)
  • 7. 18 times n It is IMPOSSIBLE to test All Statistical Paths n So, from structural coverage view, When Should We Stop Testing? n Not care? (planes do, missiles do) n All lines? n All branches? n All boolean outcomes (MC/DC)? n All cyclomatic paths? 18 0 10Optimum Number of Tests? All Statistical Paths = 10 18 If allow 1 Nanosecond per test, time is : T = 10 x 3600 x 24 x 365 9 10 18 = 31.7 Years IV. Testing Software for Reliability - Structured Testing Impossibility of Testing Everything
  • 8. Methods of computing v(G) • E-n+2 • # decisions + 1 • # of regions in a planar flow graph
  • 9. 9 If .. then If .. then .. else If .. and .. then If .. or .. then Do .. While While .. Do Switch Structured ProgrammingComponents
  • 10. Definition of essential complexity ev(G) • Remove all structured components from G to produce a reduced graph R • Definition: ev(G) = v(R) • 1<=ev(G)<=v(G)
  • 11. 11 Function A Complexity = 20 5.17s Unstructuredness (evg) = 1 Function B Complexity = 18 Unstructuredness (evg) = 17 So B is MUCH harder to maintain! Complexity (decisions) & # lines here are similar, but ...
  • 12. What it means • In theory --- v, ev, • In practice --- unconscious, v,ev – How it works when ignored – v=20, 45 tests, 12 independent paths tested • In practice ---- conscious, v, ev – With just limiting complexity – With limiting and testing to complexity • Used just statically, e, ev • Used dynamically, e,ev
  • 13. Boundaries • When structured testing is ‘proof of correctness’ – seldom – When the path functions are ‘linear’ – Eg, the run time of a redundant path equals it’s linear combination of basis path runtimes • When structured testing misses errors • Often, the assumption is that a path is validly tested • When data singularities exist along a path • When an interrupt suspension can cause an error • When power of observation fails – High v(G) – High ev(G) • Want to test to v independent paths – Or can reduce v, dead decisions • High ev is insanity, ev can go high with one bad change
  • 14. Google book search – McCabe Complexity – 826 books Encyclopedia of Microcomputers Introduction to the Team Software Process ] Network Analysis, Architecture and Design Separating Data from Instructions: Investigating a New Programming
  • 15. Cyclomatic Complexity • Static – Unit paths v(G) – Integration paths – Data complexity • Dynamic – Untested paths v(G)-ac – Untested integration – Untested data complexity
  • 16. Applications Testing Essential complexity --- reverse engineering Design Complexity ---- system integration Data complexity --- security testing Pareto Distribution of errors --- reverse engineering Code Breaker ---- Reuse Security threats Data Slicing ----- Reuse Code walkthroughs ---- validation Design validation Requirements Validation
  • 17. Software testing • cyclomatic complexity • Cost of errors • Black box, grey box, white box testing • unit pretesting, the baseline method • unit testing, static and dynamic • integration pretesting, testing • Code attribute by complexity • testing life cycle • Regression testing
  • 18. Costs of errors • 80% of your project will be re-work • Coding error cost is X • Integration error cost is 30X • Acceptance error is 300x • Operational error can be 3000X • Bottom line: catch errors early and prevent them!!! 18
  • 19. 19 What module coverage level will you attempt? Minimum # tests would be: Line Cov. = 2, Branch Cov. = 3, Cyclomatic Path Cov. = 4 Levels of Code Coverage - Module IV. Testing Software for Reliability - Structured Testing
  • 20. 20  Cyclomatic Complexity = v(g) = 10 Means that 10 Minimum Tests will:  Cover All the Code  Test Decision Logic Multiple Ways From Baseline Structured Testing --- The baseline method Run a robust functional path as ‘the baseline’; flip successive decisions and come back to the baseline
  • 21. Structured Testing --- dynamic • Actual complexity(ac) is the # of linearly independent paths in the test set • May have 100 tests with v=10 and ac=5 • 1<=ac<=v • Many organizations run functional tests first, then add v-ac additional independent paths
  • 22. 22 • Design Complexity, S0 =  iv(g) – measure of decision structure which controls the invocation of modules within the design; quantifies testing effort for paths within modules relative to calls in the design • Integration Complexity, S1 = S0 - n + 1 – measure of the integration tests that qualify the design tree; it is the # of paths needed to test all calls to all modules at least once, a quantification of a basis set of integration tests; it measures the minimum integration testing effort of a design; each S1 test validates the integration of several modules and is known as a subtree of the whole design tree • Sum/Maximum/Average of v(g), ev(g), gdv(g), branches, etc. III. Development of Reliable Software - Code Structure Complexity Metrics Impacting Reliability - Component
  • 23. 23 • Module Design Complexity, iv(g) [integration] – measure of logical paths containing calls/invocation of immediate subordinate modules, i.e., Integration – calculated by reduction of graph after removing decisions/nodes with no calls – value should be higher for modules higher in hierarchies, that is, in management modules • Paths Containing Global Data, gdv(g) – global data also impacts reliability, because it creates relationships between modules • Branches, which is related to v(g) • Maximum Nesting Level • Others v(g) = 10 ev(g) = 3 iv(g) = 3 III. Development of Reliable Software - Code Structure Complexity Metrics Impacting Reliability - Module
  • 24. 24 Integration Complexity (S1) How do you assess complexity & test effort for component design? S1 = S0 - n + 1= 12 - 7 + 1 = 6 By measuring the integration paths in its modules III. Development of Reliable Software - Code Structure
  • 25. 25 What coverage level will you attempt during Integration Test? • Module entry? - the 5 red boxes need tested • Module integration calls? - the 9 black lines need tested (they include the red boxes) • Module integration paths? - the 9 black lines plus all paths in the calling modules that contain calls; Structured Testing recommends this level as minimum • Other? IV. Testing Software for Reliability - Structured Testing Levels of Code Coverage - Component Black lines mean not yet tested
  • 26. 26 • Cyclomatic Complexity & Reliability Risk – 1 – 10 Simple procedure, little risk – 11- 20 More Complex, moderate risk – 21 – 50 Complex , high risk – >50 Untestable, VERY HIGH RISK • Cyclomatic Complexity & Bad Fix Probability – 1 – 10 5% – 20 –30 20% – > 50 40% – Approaching 100 60% • Essential Complexity (Unstructuredness) & Maintainability (future Reliability) Risk – 1 – 4 Structured, little risk – > 4 Unstructured, High Risk Complexity Metrics Impacting Reliability - Module
  • 27. 27 Inspection self test ---- error prevention – test before building Error prevention is the most powerful tool
  • 28. Regression Testing • You test once, retest a million times • Test data, results, and traceability are very valuable • Data base system holds tests • Comparator used to verify results • Synced with configuration management • Is pruned • Is added to • 20% of tests will show 80% of errors --- percolated up • Tests have history --- those that show no errors are pruned out 28
  • 29. Review teams ---- Here’s the leverage • Egoless --- no blame no shame • Find errors don’t fix them • Team works as a whole --- succeeds or fails as one team • If # of errors is high then rework the product and inspect again • Need a scribe • Need a checklist of issues to look for • Product gets certified as ‘Inspected by Team Us’ • Is preceded by test team producing acceptance tests • Use McCabe methodology for code and design reviews 29