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  

 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).Decision  Tables   •  Consider  a  loan  applica+on.     •  If  you  enter  both.     •  What  inputs  do  we  have?   –  Amount  of  loan   –  Term  of  loan   ©  Copyright  Soha  Makady  2016   .  the  system  will  make  a   compromise  between  the  two  if  they  conflict.

 if  applicable.   •  Discount  amounts  are  added.       ©  Copyright  Soha  Makady  2016   .  you  can  get  20%  off  today  (but  it   can’t  be  used  with  the  ‘new  customer’  discount).   •  If  you  have  a  coupon.     •  You  have  5  minutes.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.   •  If  you  are  an  exis+ng  customer  and  you  hold  a  loyalty   card.  you  get  a  10%  discount.

Black-­‐Box  Tes+ng   •  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.  you  can  go  for  cause-­‐effect  graphing   ©  Copyright  Soha  Makady  2016   .     •  Hence.

 and  the  outputs  (effects)  in  terms  of   expected  values  or  behaviour.   ©  Copyright  Soha  Makady  2016   .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.

  •  An  effect  is  an  output  condi+on.   •  A  cause  can  represent  an  equivalence  class  of  input   condi+ons.  or  a  system   transforma+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.   ©  Copyright  Soha  Makady  2016   .

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

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

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

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

 message  X13  is   issued.   the  file  update  is  made.     •  If  the  first  character  is  incorrect.  message  X12  is  issued.”  The   character  in  column  2  must  be  a  digit.   •  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   .     •  If  the  second  character  is  not  a  digit.  In  this  situa+on.Cause-­‐effect  Graph  Symbols   Example:     •  The  character  in  column  1  must  be  an  “A”  or  a  “B.

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

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

  •  Hence.  some  constraints  need  to  be  added.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   .

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

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

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

    ©  Copyright  Soha  Makady  2016   .  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   .   •  Hence.Cause-­‐effect  Graph  Symbols       •  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.

  •  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.   ©  Copyright  Soha  Makady  2016   .  one  constraint  needs  to  be  added.

 two  printer  models.   •  For  an  order.  monitors  (M).  Printer.  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.  and   addi+onal  memory  (RAM).  Monitor.   ©  Copyright  Soha  Makady  2016   .  the  buyer  may  select  from  three  CPU   models.   •  Let  us  draw  the  causes  and  the  effects  first.  and  three  monitors.  and  RAM  and   one  window  where  free  giveaway  items  are  displayed.  printers  (PR).Example   •  A  GUI  based  computer  purchase  system  is  offering   computers  (CPU).

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

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   .     –  Requires  constraint   6.

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

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

  Eƒ  :  RAM  1G  and  PR  2.   Eƒ  :  No  giveaway  with  this  item.  we  ignore  the  price  related  cause  and   effect.   •  •  •  •  Eƒ  :  RAM  256.     •  The  set  of  effects  in  terms  of  the  contents  of  the  “Free”   display  window  are  listed  below.   Eƒ  :  RAM  512  and  PR  1.   1 2 3 4 ©  Copyright  Soha  Makady  2016   .   •  For  simplicity.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.

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

  How  to  generate  the  decision  table?   •  Input:  A  cause-­‐effect  graph  containing  causes  C-­‐1  to  C-­‐P.   ©  Copyright  Soha  Makady  2016   .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.   and  effects  Ef-­‐1  to  Ef-­‐Q.

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.   ©  Copyright  Soha  Makady  2016   .   –  Make  sure  that  the  combina+ons  sa+sfy  any   constraints  among  the  causes.  determine  the  states  of  all   other  effects  and  place  these  in  each  column.   –  Update  the  decision  table  with  the  retrieved   combina+ons   –   For  each  combina+on.

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   .

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

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

Master your semester with Scribd & The New York Times

Special offer for students: Only $4.99/month.

Master your semester with Scribd & The New York Times

Cancel anytime.