So#ware  Tes+ng  

Prepared  by  
Soha  Makady  

•  Decision  tables  
•  Cause-­‐effect  graphs  

Decision  Tables  
•  Required  reading:  
•  Decision  tables  enable  modeling  complex  business  rules  in  
a  systema+c  way.  
•  How  does  it  work?  
–  Iden+fy  a  suitable  func+on  or  subsystem  which  reacts  
according  to  a  combina+on  of  inputs/events.    
–  The  system  should  not  contain  too  many  inputs  (why?)  
–  Combine  all  those  inputs  into  a  table  to  iden+fy  their  
true/false  combina+ons,  and  the  system’s  expected  
corresponding  behaviour.  
©  Copyright  Soha  Makady  2016  

    •  If  you  enter  both.Decision  Tables   •  Consider  a  loan  applica+on.  the  system  will  make  a   compromise  between  the  two  if  they  conflict.     •  What  inputs  do  we  have?   –  Amount  of  loan   –  Term  of  loan   ©  Copyright  Soha  Makady  2016   .  where  you  can   enter  the  amount  of  the  monthly  repayment  or   the  number  of  years  you  want  to  take  to  pay  it   back  (the  term  of  the  loan).

    •  You  have  5  minutes.  if  applicable.   •  If  you  have  a  coupon.Decision  Tables  –  Exercise!   •  If  you  are  a  new  customer  and  you  want  to  open  a   credit  card  account  then  You  will  get  a  15%  discount   on  all  your  purchases  today.   •  Discount  amounts  are  added.  you  can  get  20%  off  today  (but  it   can’t  be  used  with  the  ‘new  customer’  discount).  you  get  a  10%  discount.   •  If  you  are  an  exis+ng  customer  and  you  hold  a  loyalty   card.       ©  Copyright  Soha  Makady  2016   .

Black-­‐Box  Tes+ng   •  Cause-­‐effect  graphing   ©  Copyright  Soha  Makady  2016   .

    •  Hence.  you  can  go  for  cause-­‐effect  graphing   ©  Copyright  Soha  Makady  2016   .Cause-­‐effect  Graphing   •  Equivalence  par++oning  and  boundary  value   analysis  do  not  explore  combina+ons  of  input   circumstances.

  ©  Copyright  Soha  Makady  2016   .  and  the  outputs  (effects)  in  terms  of   expected  values  or  behaviour.Cause-­‐effect  Graphing   What  is  a  cause-­‐effect  graph?   •  A  visual  technique  for  modeling  the  rela+onship   between  the  inputs  and  outputs  of  a  program   •  The  inputs  (causes)  could  be  specified  as   condi+ons.

  ©  Copyright  Soha  Makady  2016   .   •  An  effect  is  an  output  condi+on.Cause-­‐effect  Graphing   What  is  a  cause-­‐effect  graph?   •  A  cause  is  any  input  condi+on  in  the  requirements   that  may  affect  the  program’s  output.  or  a  system   transforma+on.   •  A  cause  can  represent  an  equivalence  class  of  input   condi+ons.

(why?)     –  E.   6.  The  specifica+on  is  divided  into  workable  pieces.   4.e.   2.  The  causes/effects  in  the  specifica+on  are  iden+fied.  The  seman+c  content  of  the  specifica+on  is  analyzed   and  transformed  into  a  Boolean  graph  linking  the   causes  and  effects  (i.g.  a  cause-­‐effect  graph).  Annotate  the  graph  with  constraints  on  combina+ons   of  causes  and/or  effects  that  are  impossible  (how?)   5..   ©  Copyright  Soha  Makady  2016   .   3.  Convert  the  graph  into  a  limited-­‐entry  decision  table.  you  might  test  a   single  menu  tree.Cause-­‐effect  Graphing   How  are  the  tests  derived?   1.  Convert  the  columns  of  the  decision  table  into  test   cases.:  When  tes+ng  a  web  page  design.

 b  is  1.Cause-­‐effect  Graph  Symbols   Four  different  func+ons  can  be  used:   1.  else  b  is  0.     ©  Copyright  Soha  Makady  2016   .  The  Iden+ty  func+on:  if  a  is  1.

 else  d  is  0.      The  or  func+on:  if  a  or  b  or  c  is.      The  not  func+on:  if  a  is  1.   3.     ©  Copyright  Soha  Makady  2016   .  d  is  1.  else  b  is  1.Cause-­‐effect  Graph  Symbols   Four  different  func+ons  can  be  used:   2.  b  is  0.

    ©  Copyright  Soha  Makady  2016   .  c  is  1.      The  and  func+on:  if  both  a  and  b  are  1.  else  c  is  0.Cause-­‐effect  Graph  Symbols   Four  different  func+ons  can  be  used:   4.

”  The   character  in  column  2  must  be  a  digit.Cause-­‐effect  Graph  Symbols   Example:     •  The  character  in  column  1  must  be  an  “A”  or  a  “B.     •  If  the  first  character  is  incorrect.     •  If  the  second  character  is  not  a  digit.  In  this  situa+on.   •  Let  us  try  to  create  a  cause-­‐effect  graph…   •  What  causes  do  we  have?   •  What  effects  do  we  have?   •  What  kind  of  links  or  func+ons  can  be  added?   ©  Copyright  Soha  Makady  2016   .  message  X12  is  issued.  message  X13  is   issued.   the  file  update  is  made.

Cause-­‐effect  Graph  Symbols           What  would  its  equivalent  logic  circuit  look  like?   ©  Copyright  Soha  Makady  2016   .

  ©  Copyright  Soha  Makady  2016   .Cause-­‐effect  Graph  Symbols           Equivalent  logic  circuit.

Cause-­‐effect  Graph  Symbols       •  But…A  character  cannot  be  an  ‘A’  and  a  ‘B’   simultaneously  à  cause  1  and  cause  2  cannot  be  1   simultaneously.   ©  Copyright  Soha  Makady  2016   .   •  Hence.  some  constraints  need  to  be  added.

Cause-­‐effect  Graph  Constraints   Four  types  of  constraints  can  be  added:   1.  The  Inclusive  (I)  constraint:  At  least  one  of  the  causes   must  be  1.  The  Exclusive  (E)  constraint:  It  must  always  be  true  that   at  most  one  of  the  causes  can  be  1.     ©  Copyright  Soha  Makady  2016   .     2.

Cause-­‐effect  Graph  Constraints   Four  types  of  constraints  can  be  added:   1.   2.  The  Exclusive  (E)  constraint:  It  must  always  be  true  that   at  most  one  of  the  causes  can  be  1.  The  Inclusive  (I)  constraint:  At  least  one  of  the  causes   must  be  1.     ©  Copyright  Soha  Makady  2016   .

    ©  Copyright  Soha  Makady  2016   .  it  is  impossible  for  C1  to  be  1  and  C2  to   be  0).     4.    The  One  and  Only  One  (O)  constraint:  One  and  only  one    of  the  causes  must  be  one.   C2  must  be  1  (i.    The  Requires  (R)  constraint  implies  that  for  C1  to  be  1..e.Cause-­‐effect  Graph  Constraints   3.

 it  is  impossible  for  C1  to  be  1  and  C2  to   be  0).     ©  Copyright  Soha  Makady  2016   .  The  One  and  Only  One  (O)  constraint:  One  and  only   one    of  the  causes  must  be  one.   4..   C2  must  be  1  (i.Cause-­‐effect  Graph  Constraints   3.e.    The  Requires  (R)  constraint  implies  that  for  C1  to  be  1.

 effect  be  is  forced  to  be   0.Cause-­‐effect  Graph  Constraints   •  One  more  constraint  exists  among  effects:  The  masking   constraint  (M):  If  effect  a  is  1.     ©  Copyright  Soha  Makady  2016   .

Cause-­‐effect  Graph  Symbols       •  But…A  character  cannot  be  an  ‘A’  and  a  ‘B’   simultaneously  à  cause  1  and  cause  2  cannot  be  1   simultaneously.   ©  Copyright  Soha  Makady  2016   .  one  constraint  needs  to  be  added.   •  Hence.

  •  Hence.Cause-­‐effect  Graph  Symbols   E       •  But…A  character  cannot  be  an  ‘A’  and  a  ‘B’   simultaneously  à  cause  1  and  cause  2  cannot  be  1   simultaneously.  one  constraint  needs  to  be  added.   ©  Copyright  Soha  Makady  2016   .

 printers  (PR).  two  printer  models.  monitors  (M).  the  buyer  may  select  from  three  CPU   models.  and  three  monitors.  An  order  configura+on   consists  of  one  to  four  items  as  shown  below:       •  The  GUI  consists  of  four  windows  for  displaying   selec+ons  from  CPU.   ©  Copyright  Soha  Makady  2016   .  Printer.  and   addi+onal  memory  (RAM).  Monitor.   •  Let  us  draw  the  causes  and  the  effects  first.Example   •  A  GUI  based  computer  purchase  system  is  offering   computers  (CPU).   •  For  an  order.  and  RAM  and   one  window  where  free  giveaway  items  are  displayed.

Example  (Cont’d)   1.  Purchase  of  CPU  1  gets  RAM  256  upgrade   –  One  effect  for  RAM  256   2.   –  One  effect  for  the  combined  offer   ©  Copyright  Soha  Makady  2016   .  Monitors  and  printers.  PR1  is  available  free  with  the  purchase  of  CPU  2  or  CPU  3.  can  also  be    purchased  separately  without  purchasing  any  CPU.  except  for  Μ  30.   4.     –   One  effect  of  no  giveaway.      Purchase  of  CPU  2  or  CPU  3  gets  a  RAM  512  upgrade.  The  RAM  1G  upgrade  and  a  free  PR  2  is  available  when    CPU  3  is  purchased  with  monitor  Μ  30.   –  One  effect  groups  RAM  512  and  PR1   3.

    –  Requires  constraint   6.Example  (Cont’d)   5.  Μ  30  can  only  be  purchased  with  CPU  3.  Only  one  CPU  can  be  purchased  in  one  order   –  Exclusive  constraint   ©  Copyright  Soha  Makady  2016   .

Example  (Cont’d)     •  Sample  configura+ons  and  contents  of  the  “Free”  window   are  given  below.     ©  Copyright  Soha  Makady  2016   .

  C8  :  Purchase  M  30.   ©  Copyright  Soha  Makady  2016   .   C4  :  Purchase  PR  1.   C7  :  Purchase  M  23.   C5  :  Purchase  PR  2.   C3  :  Purchase  CPU  3.   C2  :  Purchase  CPU  2.   C6  :  Purchase  M  20.   •  •  •  •  •  •  •  •  •  Example  (Cont’d)   What  causes  do  we  have?   C1  :  Purchase  CPU  1.

  Eƒ  :  RAM  1G  and  PR  2.   Eƒ  :  RAM  512  and  PR  1.   •  For  simplicity.   •  •  •  •  Eƒ  :  RAM  256.Example  (Cont’d)     •  What  effects  do  we  have?   •  The  applica+on  so#ware  calculates  and  displays  the  list  of   items  available  free  with  the  purchase  and  the  total  price.   Eƒ  :  No  giveaway  with  this  item.   1 2 3 4 ©  Copyright  Soha  Makady  2016   .     •  The  set  of  effects  in  terms  of  the  contents  of  the  “Free”   display  window  are  listed  below.  we  ignore  the  price  related  cause  and   effect.

Example  (Cont’d)   R   ©  Copyright  Soha  Makady  2016   .

  and  effects  Ef-­‐1  to  Ef-­‐Q.   ©  Copyright  Soha  Makady  2016   .   How  to  generate  the  decision  table?   •  Input:  A  cause-­‐effect  graph  containing  causes  C-­‐1  to  C-­‐P.Conver+ng  Cause-­‐Effect  Graphs   to  Decision  Tables   •  Each  cause  represents  a  row  in  the  decision  table   •  Each  effect  represents  a  row  in  the  decision  table   •  Each  column  in  the  resul+ng  decision  table  represents  a   combina+on  of  input  values  and  hence  a  test.

  –  Update  the  decision  table  with  the  retrieved   combina+ons   –   For  each  combina+on.  determine  the  states  of  all   other  effects  and  place  these  in  each  column.   ©  Copyright  Soha  Makady  2016   .Conver+ng  Cause-­‐Effect  Graphs   to  Decision  Tables   •  For  each  effect  Ef-­‐i   –  Find  the  combina+ons  of  condi+ons  that  cause  e  to  be   present.   –  Make  sure  that  the  combina+ons  sa+sfy  any   constraints  among  the  causes.

Decision  Tables  from  Cause-­‐Effect  Graphs     •  Let  us  try  to  generate  a  limited-­‐entry  decision  table  for  the   above  cause-­‐effect  graph.   ©  Copyright  Soha  Makady  2016   .

Decision  Tables  from  Cause-­‐Effect  Graphs     •  Let  us  try  to  generate  a  decision  table…   ©  Copyright  Soha  Makady  2016   .

    •  hCp://   So2ware  Tes.  A  Process-­‐Oriented  Approach  (1st­‐is-­‐decision-­‐table-­‐ in-­‐so#ware-­‐tes+ng/   .Required  Readings     •  Chapter  4  from:  Ilene  Burnstein.  Springer  Publishing  Company.).  2010.  Prac.

 Aditya  P.   .  Founda@ons  of  SoBware   Tes@ng.  2/e.  Pearson  Educa+on  India.  2008.References   •  Mathur.

Sign up to vote on this title
UsefulNot useful

Master Your Semester with Scribd & The New York Times

Special offer: Get 4 months of Scribd and The New York Times for just $1.87 per week!

Master Your Semester with a Special Offer from Scribd & The New York Times