Challenge

Project 2 - V&V SW Analysis II

Offline Embedded Batch

Question :

  1. Perform Static Code Review Analysis for “C:\**\LDRA_workarea\Examples\C_Testbed_examples\Testrain\Testrain.c” Generate Code review report and upload them
  2. Perform Integration testing by including all the .C files available in the folder location C:\**\LDRA_workarea\Examples\Toolsuite\Cashregister_6.0\ ** A)Create the test cases manually as well as automatically using TBExtreme and upload the reports. B)store the test cases as .tcf file. Upload the location image where the .tcf file is stored.

Answer :

LDRA tool suite EE Code Coverage Analysis Report
File: C:\Users\user8\Documents\LDRA_EE_V1003
\LDRA_Workarea\Examples\C_tbrun_examples\Ggrocers.c
Overall Coverage Result (For File) Coverage Metrics required to achieve DO-178B Level A
NOT Attained
8%
Statement
Coverage
3%
Branch/Decision
Coverage
n/a
MC/DC
Date of Analysis
Mon Sep 05 2022
15:58:43
Report
Produced on
Mon Sep 05
2022 15:58:57
LDRA Version
10.0.3
Execution
history type
10 (Standard
single) - (USD
file)
LDRA tool suite EE Code Coverage Analysis Report Page 1 of 29
file:///C:/Users/user8/Documents/LDRA_EE_V1003/LDRA_Workarea/tbwrkfls/Ggr... 05-09-2022
Summary +/-
Overall File Coverage Statement (%) Branch/Decision
(%) MC/DC (%)
Ggrocers.c
Procedure Name Statement (%) Branch/Decision
(%) MC/DC (%)
initialise_customer
customer_cash_injection
get_number_of_pence
convert_pence
buy_fruit
char_to_fruit
buy_fruit_ex
change_fruit_price
calculate_cheapest_fruit
fruit_cheaper_than
get_cheapest_fruit
get_favourite_fruit_price
how_many_favourite_fruit
write_price_list
buy_healthiest
main
8% 3% n/a
100% 50% n/a
100% 50% n/a
100% n/a n/a
0% n/a n/a
0% 0% n/a
0% 0% n/a
0% 0% n/a
0% 0% n/a
0% 0% n/a
0% 0% n/a
0% n/a n/a
0% n/a n/a
0% 0% n/a
0% 0% n/a
0% 0% n/a
0% 0% n/a
LDRA tool suite EE Code Coverage Analysis Report Page 2 of 29
file:///C:/Users/user8/Documents/LDRA_EE_V1003/LDRA_Workarea/tbwrkfls/Ggr... 05-09-2022
initialise_customer - Coverage Metrics required to achieve DO-178B
Level A NOT Attained
+/-
Statement (%) Branch/Decision (%) MC/DC (%)
Hybrid
Line Statement Coverage
83 void initialise_customer (fruit favourite,double cash) 8
84 { -
85 customer.favourite = favourite; 8
86 customer.cheapest = pear; 8
87 if 8
-87 ( 8
-87 cash > 0.0 8
-87 ) 8
88 { 8
89 customer.cash = cash; 8
90 } 8
Statement Coverage Profile
Number of Executable
Reformatted Lines 11
Number Executed
Reformatted Lines 11
Number not Executed
Reformatted Lines 0
Statement Coverage (%) 100
Branch/Decision Coverage Profile
Number of
Branches/Decisions 2
Number Executed 1
Number not Executed 1
Branch/Decision Coverage
(%) 50
Branch/Decision Coverage Table +/-
From Line To Line Coverage Code Preceding Decision Point
87 88 8 cash > 0.0 )
87 91 0 ***
THERE ARE NO BRANCH CONDITIONS IN THE SECTION OF CODE ANALYSED
100% 50% n/a
LDRA tool suite EE Code Coverage Analysis Report Page 3 of 29
file:///C:/Users/user8/Documents/LDRA_EE_V1003/LDRA_Workarea/tbwrkfls/Ggr... 05-09-2022
LDRA tool suite EE Code Coverage Analysis Report Page 4 of 29
file:///C:/Users/user8/Documents/LDRA_EE_V1003/LDRA_Workarea/tbwrkfls/Ggr... 05-09-2022
customer_cash_injection - Coverage Metrics required to achieve DO178B Level A NOT Attained
+/-
Statement (%) Branch/Decision (%) MC/DC (%)
Hybrid
Line Statement Coverage
106 double customer_cash_injection (double injection) 18
107 { -
108 if 18
-108 ( 18
-108 injection > 0.0 18
-108 ) 18
109 { 18
110 customer.cash += injection; 18
111 } 18
113 return customer.cash; 18
Statement Coverage Profile
Number of Executable
Reformatted Lines 10
Number Executed
Reformatted Lines 10
Number not Executed
Reformatted Lines 0
Statement Coverage (%) 100
Branch/Decision Coverage Profile
Number of
Branches/Decisions 2
Number Executed 1
Number not Executed 1
Branch/Decision Coverage
(%) 50
Branch/Decision Coverage Table +/-
From Line To Line Coverage Code Preceding Decision Point
108 109 18 injection > 0.0 )
108 113 0 ***
THERE ARE NO BRANCH CONDITIONS IN THE SECTION OF CODE ANALYSED
100% 50% n/a
LDRA tool suite EE Code Coverage Analysis Report Page 5 of 29
file:///C:/Users/user8/Documents/LDRA_EE_V1003/LDRA_Workarea/tbwrkfls/Ggr... 05-09-2022
get_number_of_pence - Coverage Metrics required to achieve DO178B Level A Attained
+/-
Statement (%) Branch/Decision (%) MC/DC (%)
Hybrid
Line Statement Coverage
126 int -
-126 get_number_of_pence ( 1
-126 double price ) -
127 { -
128 int -
-128 pence = -
-128 ( int ) ( -
-128 ( price * 100 ) + 0.1 ) ; -
129 return 1
-129 pence ; 1
130 } -
Statement Coverage Profile
Number of Executable
Reformatted Lines 3
Number Executed
Reformatted Lines 3
Number not Executed
Reformatted Lines 0
Statement Coverage (%) 100
THERE ARE NO BRANCHES IN THE SECTION OF CODE ANALYSED
100% n/a n/a
LDRA tool suite EE Code Coverage Analysis Report Page 6 of 29
file:///C:/Users/user8/Documents/LDRA_EE_V1003/LDRA_Workarea/tbwrkfls/Ggr... 05-09-2022
convert_pence - Coverage Metrics required to achieve DO-178B
Level A NOT Attained
+/-
Statement (%) Branch/Decision (%) MC/DC (%)
Hybrid
Line Statement Coverage
145 double -
-145 convert_pence ( 0 ***
-145 int pence ) -
146 { -
147 double -
-147 converted_price ; -
149 converted_price = ( 0 ***
-149 ( double ) pence ) / 0 ***
-149 100 ; 0 ***
151 converted_price *= us_dollar_er ; 0 ***
156 return 0 ***
-156 converted_price ; 0 ***
157 } -
Statement Coverage Profile
Number of Executable
Reformatted Lines 7
Number Executed
Reformatted Lines 0
Number not Executed
Reformatted Lines 7
Statement Coverage (%) 0
THERE ARE NO BRANCHES IN THE SECTION OF CODE ANALYSED
0% n/a n/a
LDRA tool suite EE Code Coverage Analysis Report Page 7 of 29
file:///C:/Users/user8/Documents/LDRA_EE_V1003/LDRA_Workarea/tbwrkfls/Ggr... 05-09-2022


buy_fruit - Coverage Metrics required to achieve DO-178B Level A
NOT Attained
+/-
Statement (%) Branch/Decision (%) MC/DC (%)
Hybrid
Line Statement Coverage
178 int buy_fruit (fruit name) 0 ***
179 { -
180 int bought = FALSE; -
182 if 0 ***
-182 ( 0 ***
-182 customer.cash >= fruit_prices [ name ] 0 ***
-182 ) 0 ***
183 { 0 ***
184 customer.cash -= fruit_prices[name]; 0 ***
185 bought = TRUE; 0 ***
186 } 0 ***
187 else 0 ***
188 { 0 ***
189 printf ("Out of money\n"); 0 ***
190 } 0 ***
192 return bought; 0 ***
Statement Coverage Profile
Number of Executable
Reformatted Lines 15
Number Executed
Reformatted Lines 0
Number not Executed
Reformatted Lines 15
Statement Coverage (%) 0
Branch/Decision Coverage Profile
Number of
Branches/Decisions 3
Number Executed 0
Number not Executed 3
Branch/Decision Coverage
(%) 0
Branch/Decision Coverage Table +/-
From
Line To Line Coverage Code Preceding Decision Point
0% 0% n/a
LDRA tool suite EE Code Coverage Analysis Report Page 8 of 29
file:///C:/Users/user8/Documents/LDRA_EE_V1003/LDRA_Workarea/tbwrkfls/Ggr... 05-09-2022
From Line To Line Coverage Code Preceding Decision Point
182 183 0 *** customer.cash >= fruit_prices [ name ] )
182 188 0 ***
187 192 0 *** else
THERE ARE NO BRANCH CONDITIONS IN THE SECTION OF CODE ANALYSED
LDRA tool suite EE Code Coverage Analysis Report Page 9 of 29
file:///C:/Users/user8/Documents/LDRA_EE_V1003/LDRA_Workarea/tbwrkfls/Ggr... 05-09-2022


char_to_fruit - Coverage Metrics required to achieve DO-178B Level
A NOT Attained
+/-
Statement (%) Branch/Decision (%) MC/DC (%)
Hybrid
Line Statement Coverage
208 int char_to_fruit (char first_char,fruit *name) 0 ***
209 { -
210 int fruit_found = TRUE; -
212 switch (first_char) 0 ***
213 { 0 ***
214 case 'A': case 'a': 0 ***
215 *name = apple; 0 ***
216 break ; 0 ***
217 case 'O': case 'o': 0 ***
218 *name = orange; 0 ***
219 break ; 0 ***
220 case 'G': case 'g': 0 ***
221 *name = grapes; 0 ***
222 break ; 0 ***
223 case 'P': case 'p': 0 ***
224 *name = pear; 0 ***
225 break ; 0 ***
226 case 'M': case 'm': 0 ***
227 *name = melon; 0 ***
228 break ; 0 ***
229 default: 0 ***
230 fruit_found = FALSE; 0 ***
231 break ; 0 ***
232 } -
234 return fruit_found; 0 ***
Statement Coverage Profile
Number of Executable
Reformatted Lines 30
Number Executed
Reformatted Lines 0
Number not Executed
Reformatted Lines 30
Statement Coverage (%) 0
Branch/Decision Coverage Profile
Number of
Branches/Decisions 17
Number Executed 0
Number not Executed 17
0% 0% n/a
LDRA tool suite EE Code Coverage Analysis Report Page 10 of 29
file:///C:/Users/user8/Documents/LDRA_EE_V1003/LDRA_Workarea/tbwrkfls/Ggr... 05-09-2022
Branch/Decision Coverage Profile
Branch/Decision Coverage
(%)
0
Branch/Decision Coverage Table +/-
From Line To Line Coverage Code Preceding Decision Point
213 214 0 *** first_char ) {
213 214 0 ***
213 217 0 ***
213 217 0 ***
213 220 0 ***
213 220 0 ***
213 223 0 ***
213 223 0 ***
213 226 0 ***
213 226 0 ***
213 229 0 ***
216 234 0 *** break ;
219 234 0 *** break ;
222 234 0 *** break ;
225 234 0 *** break ;
228 234 0 *** break ;
231 234 0 *** break ;
THERE ARE NO BRANCH CONDITIONS IN THE SECTION OF CODE ANALYSED
LDRA tool suite EE Code Coverage Analysis Report Page 11 of 29
file:///C:/Users/user8/Documents/LDRA_EE_V1003/LDRA_Workarea/tbwrkfls/Ggr... 05-09-2022
buy_fruit_ex - Coverage Metrics required to achieve DO-178B Level A
NOT Attained
+/-
Statement (%) Branch/Decision (%) MC/DC (%)
Hybrid
Line Statement Coverage
263 int buy_fruit_ex (char first_char) 0 ***
264 { -
265 int bought = FALSE; -
266 int fruit_found = TRUE; -
267 fruit name; -
269 fruit_found = char_to_fruit (first_char,&name); 0 ***
271 if 0 ***
-271 ( 0 ***
-271 fruit_found 0 ***
-271 ) 0 ***
272 { 0 ***
273 bought = buy_fruit (name); 0 ***
274 } 0 ***
276 return bought; 0 ***
Statement Coverage Profile
Number of Executable
Reformatted Lines 15
Number Executed
Reformatted Lines 0
Number not Executed
Reformatted Lines 15
Statement Coverage (%) 0
Branch/Decision Coverage Profile
Number of
Branches/Decisions 2
Number Executed 0
Number not Executed 2
Branch/Decision Coverage
(%) 0
Branch/Decision Coverage Table +/-
From Line To Line Coverage Code Preceding Decision Point
271 272 0 *** fruit_found )
271 276 0 ***
0% 0% n/a
LDRA tool suite EE Code Coverage Analysis Report Page 12 of 29
file:///C:/Users/user8/Documents/LDRA_EE_V1003/LDRA_Workarea/tbwrkfls/Ggr... 05-09-2022
THERE ARE NO BRANCH CONDITIONS IN THE SECTION OF CODE ANALYSED
LDRA tool suite EE Code Coverage Analysis Report Page 13 of 29
file:///C:/Users/user8/Documents/LDRA_EE_V1003/LDRA_Workarea/tbwrkfls/Ggr... 05-09-2022
change_fruit_price - Coverage Metrics required to achieve DO-178B
Level A NOT Attained
+/-
Statement (%) Branch/Decision (%) MC/DC (%)
Hybrid
Line Statement Coverage
298 double change_fruit_price (fruit name,double increment) 0 ***
299 { -
300 if 0 ***
-300 ( 0 ***
-300 fruit_prices [ name ] + increment > 0.0 0 ***
-300 ) 0 ***
301 { 0 ***
302 fruit_prices[name] += increment; 0 ***
303 } 0 ***
304 else 0 ***
305 { 0 ***
306 printf ("Price was not changed\n"); 0 ***
307 } 0 ***
309 return fruit_prices[name]; 0 ***
Statement Coverage Profile
Number of Executable
Reformatted Lines 14
Number Executed
Reformatted Lines 0
Number not Executed
Reformatted Lines 14
Statement Coverage (%) 0
Branch/Decision Coverage Profile
Number of
Branches/Decisions 3
Number Executed 0
Number not Executed 3
Branch/Decision Coverage
(%) 0
Branch/Decision Coverage Table +/-
From Line To Line Coverage Code Preceding Decision Point
300 301 0 *** _prices [ name ] + increment > 0.0 )
300 305 0 ***
0% 0% n/a
LDRA tool suite EE Code Coverage Analysis Report Page 14 of 29
file:///C:/Users/user8/Documents/LDRA_EE_V1003/LDRA_Workarea/tbwrkfls/Ggr... 05-09-2022
From Line To Line Coverage Code Preceding Decision Point
304 309 0 *** else
THERE ARE NO BRANCH CONDITIONS IN THE SECTION OF CODE ANALYSED
LDRA tool suite EE Code Coverage Analysis Report Page 15 of 29
file:///C:/Users/user8/Documents/LDRA_EE_V1003/LDRA_Workarea/tbwrkfls/Ggr... 05-09-2022
calculate_cheapest_fruit - Coverage Metrics required to achieve DO178B Level A NOT Attained
+/-
Statement (%) Branch/Decision (%) MC/DC (%)
Hybrid
Line Statement Coverage
321 fruit calculate_cheapest_fruit () 0 ***
322 { -
323 fruit cheapest; -
324 int i; -
325 double cheapest_price = 1000000.00; -
327 for 0 ***
-327 ( 0 ***
-327 i = 0 0 ***
-327 ; 0 ***
-327 i < 5 0 ***
-327 ; 0 ***
-327 i ++ 0 ***
-327 ) 0 ***
328 { 0 ***
329 if 0 ***
-329 ( 0 ***
-329 fruit_prices [ i ] < cheapest_price 0 ***
-329 ) 0 ***
330 { 0 ***
331 cheapest_price = fruit_prices; 0 ***
332 cheapest = (fruit)i; 0 ***
333 } 0 ***
334 } 0 ***
336 return cheapest; 0 ***
Statement Coverage Profile
Number of Executable
Reformatted Lines 22
Number Executed
Reformatted Lines 0
Number not Executed
Reformatted Lines 22
Statement Coverage (%) 0
Branch/Decision Coverage Profile
Number of
Branches/Decisions 6
Number Executed 0
Number not Executed 6
0% 0% n/a
LDRA tool suite EE Code Coverage Analysis Report Page 16 of 29
file:///C:/Users/user8/Documents/LDRA_EE_V1003/LDRA_Workarea/tbwrkfls/Ggr... 05-09-2022
Branch/Decision Coverage Profile
Branch/Decision Coverage
(%)
0
Branch/Decision Coverage Table +/-
From Line To Line Coverage Code Preceding Decision Point
327 328 0 *** i < 5 ;
327 336 0 ***
327 327 0 *** i ++ )
329 330 0 *** fruit_prices [ i ] < cheapest_price )
329 334 0 ***
334 327 0 *** cheapest = ( fruit ) i ; } }
THERE ARE NO BRANCH CONDITIONS IN THE SECTION OF CODE ANALYSED
LDRA tool suite EE Code Coverage Analysis Report Page 17 of 29
file:///C:/Users/user8/Documents/LDRA_EE_V1003/LDRA_Workarea/tbwrkfls/Ggr... 05-09-2022


fruit_cheaper_than - Coverage Metrics required to achieve DO-178B
Level A NOT Attained
+/-
Statement (%) Branch/Decision (%) MC/DC (%)
Hybrid
Line Statement Coverage
356 int fruit_cheaper_than (fruit name,double price) 0 ***
360 { -
361 int cheaper; -
364 if 0 ***
-364 ( 0 ***
-364 fruit_prices [ name ] < price 0 ***
-364 ) 0 ***
368 { 0 ***
369 cheaper = TRUE; 0 ***
370 } 0 ***
371 else 0 ***
372 { 0 ***
373 cheaper = FALSE; 0 ***
374 } 0 ***
376 return cheaper; 0 ***
Statement Coverage Profile
Number of Executable
Reformatted Lines 14
Number Executed
Reformatted Lines 0
Number not Executed
Reformatted Lines 14
Statement Coverage (%) 0
Branch/Decision Coverage Profile
Number of
Branches/Decisions 3
Number Executed 0
Number not Executed 3
Branch/Decision Coverage
(%) 0
Branch/Decision Coverage Table +/-
From
Line To Line Coverage Code Preceding Decision Point
364 368 0 *** fruit_prices [ name ] < price )
0% 0% n/a
LDRA tool suite EE Code Coverage Analysis Report Page 18 of 29
file:///C:/Users/user8/Documents/LDRA_EE_V1003/LDRA_Workarea/tbwrkfls/Ggr... 05-09-2022
From Line To Line Coverage Code Preceding Decision Point
364 372 0 ***
371 376 0 *** else
THERE ARE NO BRANCH CONDITIONS IN THE SECTION OF CODE ANALYSED
get_cheapest_fruit - Coverage Metrics required to achieve DO-178B
Level A NOT Attained
+/-
Statement (%) Branch/Decision (%) MC/DC (%)
Hybrid
Line Statement Coverage
387 fruit 0 ***
-387 get_cheapest_fruit() 0 ***
388 { -
390 fruit -
-390 cheapest ; -
392 cheapest = 0 ***
-392 calculate_cheapest_fruit ( ) ; 0 ***
394 customer.cheapest = cheapest ; 0 ***
396 return 0 ***
-396 cheapest ; 0 ***
400 } -
Statement Coverage Profile
Number of Executable
Reformatted Lines 7
Number Executed
Reformatted Lines 0
Number not Executed
Reformatted Lines 7
Statement Coverage (%) 0
THERE ARE NO BRANCHES IN THE SECTION OF CODE ANALYSED
0% n/a n/a
LDRA tool suite EE Code Coverage Analysis Report Page 19 of 29
file:///C:/Users/user8/Documents/LDRA_EE_V1003/LDRA_Workarea/tbwrkfls/Ggr... 05-09-2022
get_favourite_fruit_price - Coverage Metrics required to achieve DO178B Level A NOT Attained
+/-
Statement (%) Branch/Decision (%) MC/DC (%)
Hybrid
Line Statement Coverage
418 double -
-418 get_favourite_fruit_price ( 0 ***
-418 struct customer_info * buyer ) -
422 { -
424 return 0 ***
-424 fruit_prices [ buyer -> favourite ] ; 0 ***
428 } -
Statement Coverage Profile
Number of Executable
Reformatted Lines 3
Number Executed
Reformatted Lines 0
Number not Executed
Reformatted Lines 3
Statement Coverage (%) 0
THERE ARE NO BRANCHES IN THE SECTION OF CODE ANALYSED
0% n/a n/a
LDRA tool suite EE Code Coverage Analysis Report Page 20 of 29
file:///C:/Users/user8/Documents/LDRA_EE_V1003/LDRA_Workarea/tbwrkfls/Ggr... 05-09-2022
how_many_favourite_fruit - Coverage Metrics required to achieve
DO-178B Level A NOT Attained
+/-
Statement (%) Branch/Decision (%) MC/DC (%)
Hybrid
Line Statement Coverage
445 int how_many_favourite_fruit () 0 ***
449 { -
450 double favourite_price = fruit_prices[customer.favourite]; -
451 double available_cash = customer.cash; -
452 int how_many = 0; -
455 while 0 ***
-455 ( 0 ***
-455 available_cash >= favourite_price 0 ***
-455 ) 0 ***
459 { 0 ***
460 how_many++; 0 ***
461 available_cash -= favourite_price; 0 ***
462 } 0 ***
464 return how_many; 0 ***
Statement Coverage Profile
Number of Executable
Reformatted Lines 11
Number Executed
Reformatted Lines 0
Number not Executed
Reformatted Lines 11
Statement Coverage (%) 0
Branch/Decision Coverage Profile
Number of
Branches/Decisions 3
Number Executed 0
Number not Executed 3
Branch/Decision Coverage
(%) 0
Branch/Decision Coverage Table +/-
From Line To Line Coverage Code Preceding Decision Point
455 459 0 *** available_cash >= favourite_price )
455 464 0 ***
0% 0% n/a
LDRA tool suite EE Code Coverage Analysis Report Page 21 of 29
file:///C:/Users/user8/Documents/LDRA_EE_V1003/LDRA_Workarea/tbwrkfls/Ggr... 05-09-2022
From Line To Line Coverage Code Preceding Decision Point
462 455 0 *** available_cash -= favourite_price ; }
THERE ARE NO BRANCH CONDITIONS IN THE SECTION OF CODE ANALYSED
LDRA tool suite EE Code Coverage Analysis Report Page 22 of 29
file:///C:/Users/user8/Documents/LDRA_EE_V1003/LDRA_Workarea/tbwrkfls/Ggr... 05-09-2022


write_price_list - Coverage Metrics required to achieve DO-178B
Level A NOT Attained
+/-
Statement (%) Branch/Decision (%) MC/DC (%)
Hybrid
Line Statement Coverage
486 double write_price_list (FILE *fp) 0 ***
490 { -
491 int i; -
493 double total_price = 0; -
498 fprintf (fp,"Greengrocers Price List\n\n"); 0 ***
499 fprintf (fp,"FRUIT PRICE(�)\n"); 0 ***
500 for 0 ***
-500 ( 0 ***
-500 i = 0 0 ***
-500 ; 0 ***
-500 i < 5 0 ***
-500 ; 0 ***
-500 i ++ 0 ***
-500 ) 0 ***
501 { 0 ***
502 fprintf (fp,"%-10s %.2f\n", 0 ***
505 total_price += fruit_prices; 0 ***
509 } 0 ***
511 fclose (fp); 0 ***
513 return total_price; 0 ***
Statement Coverage Profile
Number of Executable
Reformatted Lines 18
Number Executed
Reformatted Lines 0
Number not Executed
Reformatted Lines 18
Statement Coverage (%) 0
Branch/Decision Coverage Profile
Number of
Branches/Decisions 4
Number Executed 0
Number not Executed 4
Branch/Decision Coverage
(%) 0
0% 0% n/a
LDRA tool suite EE Code Coverage Analysis Report Page 23 of 29
file:///C:/Users/user8/Documents/LDRA_EE_V1003/LDRA_Workarea/tbwrkfls/Ggr... 05-09-2022
Branch/Decision Coverage Table +/-
From Line To Line Coverage Code Preceding Decision Point
500 501 0 *** i < 5 ;
500 511 0 ***
500 500 0 *** i ++ )
509 500 0 *** total_price += fruit_prices [ i ] ; }
THERE ARE NO BRANCH CONDITIONS IN THE SECTION OF CODE ANALYSED
LDRA tool suite EE Code Coverage Analysis Report Page 24 of 29
file:///C:/Users/user8/Documents/LDRA_EE_V1003/LDRA_Workarea/tbwrkfls/Ggr... 05-09-2022
buy_healthiest - Coverage Metrics required to achieve DO-178B
Level A NOT Attained
+/-
Statement (%) Branch/Decision (%) MC/DC (%)
Hybrid
Line Statement Coverage
532 int buy_healthiest (const int amount,const int most) 0 ***
533 { -
534 int i; -
535 int ok = TRUE; -
536 int count = 0; -
538 if 0 ***
-538 ( 0 ***
-538 most 0 ***
-538 ) 0 ***
539 { 0 ***
540 health = &most_healthiest; 0 ***
541 } 0 ***
542 else 0 ***
543 { 0 ***
544 health = &least_healthiest; 0 ***
545 } 0 ***
547 for 0 ***
-547 ( 0 ***
-547 i = 0 0 ***
-547 ; 0 ***
-547 i < amount 0 ***
-547 ; 0 ***
-547 i ++ 0 ***
-547 ) 0 ***
548 { 0 ***
549 if 0 ***
-549 ( 0 ***
-549 ok 0 ***
-549 ) 0 ***
550 { 0 ***
551 ok = buy_fruit (*health); 0 ***
552 if 0 ***
-552 ( 0 ***
-552 ok 0 ***
-552 ) 0 ***
553 { 0 ***
554 count++; 0 ***
555 } 0 ***
556 } 0 ***
557 } 0 ***
559 return amount - count; 0 ***
Statement Coverage Profile
40
0% 0% n/a
LDRA tool suite EE Code Coverage Analysis Report Page 25 of 29
file:///C:/Users/user8/Documents/LDRA_EE_V1003/LDRA_Workarea/tbwrkfls/Ggr... 05-09-2022
Statement Coverage Profile
Number of Executable
Reformatted Lines
Number Executed
Reformatted Lines 0
Number not Executed
Reformatted Lines 40
Statement Coverage (%) 0
Branch/Decision Coverage Profile
Number of
Branches/Decisions 11
Number Executed 0
Number not Executed 11
Branch/Decision Coverage
(%) 0
Branch/Decision Coverage Table +/-
From Line To Line Coverage Code Preceding Decision Point
538 539 0 *** most )
538 543 0 ***
542 547 0 *** else
547 548 0 *** i < amount ;
547 559 0 ***
547 547 0 *** i ++ )
549 550 0 *** ok )
549 557 0 ***
552 553 0 *** ok )
552 556 0 ***
557 547 0 *** count ++ ; } } }
THERE ARE NO BRANCH CONDITIONS IN THE SECTION OF CODE ANALYSED
LDRA tool suite EE Code Coverage Analysis Report Page 26 of 29
file:///C:/Users/user8/Documents/LDRA_EE_V1003/LDRA_Workarea/tbwrkfls/Ggr... 05-09-2022
main - Coverage Metrics required to achieve DO-178B Level A NOT
Attained
+/-
Statement (%) Branch/Decision (%) MC/DC (%)
Hybrid
Line Statement Coverage
567 int main () 0 ***
568 { -
569 int num,i; -
570 fruit cheapest; -
571 double currency; -
573 write_price_list (stdout); 0 ***
574 printf ("\n"); 0 ***
576 initialise_customer (apple,1.99); 0 ***
578 num = how_many_favourite_fruit (); 0 ***
582 for 0 ***
-582 ( 0 ***
-582 i = 0 0 ***
-582 ; 0 ***
-582 i < num 0 ***
-582 ; 0 ***
-582 i ++ 0 ***
-582 ) 0 ***
583 { 0 ***
584 /* -
585 * buy as many of the customer's favourite fruit as possible -
586 */ 0 ***
587 buy_fruit (customer.favourite); 0 ***
588 } 0 ***
589 customer_cash_injection (1.36); 0 ***
590 /* -
591 * buy a pear -
592 */ 0 ***
593 buy_fruit_ex ('p'); 0 ***
594 cheapest = get_cheapest_fruit (); 0 ***
596 if 0 ***
-596 ( 0 ***
-596 fruit_cheaper_than ( 0 ***
-596 cheapest , 0.10 ) 0 ***
-596 ) 0 ***
600 { 0 ***
602 printf ("The cheapest fruit is less than 10 pence\n"); 0 ***
603 printf ("Increasing price by two pence\n"); 0 ***
604 change_fruit_price (cheapest,0.02); 0 ***
608 } 0 ***
610 if 0 ***
-610 ( 0 ***
-610 customer.cash > 0 ***
-610 get_favourite_fruit_price ( 0 ***
-610 & customer ) 0 ***
-610 ) 0 ***
0% 0% n/a
LDRA tool suite EE Code Coverage Analysis Report Page 27 of 29
file:///C:/Users/user8/Documents/LDRA_EE_V1003/LDRA_Workarea/tbwrkfls/Ggr... 05-09-2022
Hybrid
Line Statement Coverage
614 { 0 ***
615 buy_fruit (customer.favourite); 0 ***
616 } 0 ***
617 buy_healthiest (1,TRUE); 0 ***
618 num = get_number_of_pence (customer.cash); 0 ***
619 printf ("The customer has %d pence left\n",num); 0 ***
620 currency = convert_pence (num); 0 ***
622 printf ("This is %f in US dollars\n",currency); 0 ***
626 return 0 ***
-626 0 ; 0 ***
627 } -
Statement Coverage Profile
Number of Executable
Reformatted Lines 67
Number Executed
Reformatted Lines 0
Number not Executed
Reformatted Lines 67
Statement Coverage (%) 0
Branch/Decision Coverage Profile
Number of
Branches/Decisions 9
Number Executed 0
Number not Executed 9
Branch/Decision Coverage
(%) 0
Branch/Decision Coverage Table +/-
From Line To Line Coverage Code Preceding Decision Point
582 583 0 *** i < num ;
582 589 0 ***
582 582 0 *** i ++ )
588 582 0 *** customer.favourite ) ; }
596 600 0 *** cheapest , 0.10 ) )
596 610 0 ***
610 614 0 *** & customer ) )
610 617 0 ***
626 -1 0 *** return 0 ;
THERE ARE NO BRANCH CONDITIONS IN THE SECTION OF CODE ANALYSED
LDRA tool suite EE Code Coverage Analysis Report Page 28 of 29
file:///C:/Users/user8/Documents/LDRA_EE_V1003/LDRA_Workarea/tbwrkfls/Ggr... 05-09-2022
Copyright © 2022 LDRA Ltd
LDRA tool suite EE Code Coverage Analysis Report Page 29 of 29
file:///C:/Users/user8/Documents/LDRA_EE_V1003/LDRA_Workarea/tbwrkfls/Ggr... 05-09-2022

Your portfolio, next

Ship work like this
in your own course.

Talk to a career counsellor

Free 20-minute call. We'll map the right course to where you want to work.

By submitting you agree to our Terms and Privacy Policy.