Modern   software   projects   require   comprehensive   and   well-­‐integrated   validation   and   test   methodologies   in   order   to   deliver   high

  quality   products.   Erroneous   software  will  create  problems  ranging  from  inconvenienced  customers  and  service   downtime  to  potentially  catastrophic  failures  and  loss  of  life.       This   course   teaches   necessary   skills   for   testing   and   verifying   and   validating   software  designs  throughout  its  lifecycle,  from  the  requirement  elicitation  process,   through   the   development   phases,   to   maintenance   releases   and   end-­‐of-­‐life   support.   Advanced  tools  and  concepts  will  be  covered  such  as  formal  verification,  assertion   checking   and   automated   unit   testing.   The   course   will   present   the   theoretical   concepts   underlying   some   of   the   best   software   testing   tools   along   with   practical   laboratory  exercises.     Instructor:  Katarzyna  Radecka  (katarzyna.radecka@mcgill.ca)     Lectures:  Wednesday,  17:30-­‐20:20;  Room  TR  0070     Tutorials:  MW  10:35  AM  –  12:25  PM,  Room  TR  4110       Office  Hours:  Wednesday  16:30-­‐17:20;  Room  MC  546     Teaching  Assistant:  Jason  Tong  (j_tong81@yahoo.ca)                                                                                                   Course  Aim:  By  the  end  of  the  course,  you  should:     1. Understand   basic   aspects   of   software   testing   such   as   terminology,   limitations,  and  most  commonly  used  methods,     2. Get   familiar   with   the   concept   of   coverage   criteria,   their   usefulness,   as   well   as   relations  to  hardware  testing  coverage,   3. Learn  how  to  apply  graph  and  logic  coverage  to  software  testing,     4. Understand   the   complexity   of   software   testing,   most   efficient   methods   leading   to   high   coverage,   and   reasons,   why   often   software   cannot   be   fully   tested,     5. Understand  the  theory  and  use  of  formal  verification  and  assertion  checking   in  software  designs,     6. Understand   the   theory   behind   static   code   analysis   methods   and   their   applications,   7. Have   experienced   the   use   of   software   testing   tools,   bug   tracking   and   requirement  management,     8. Have  used  collaboration  tools  and  source  code  management  in  the  design  of  a     realistic  team  project  with  a  strong  emphasis  on  testing  and  reliability.    

Software  Validation   ECSE429  

  Rakitin.   488  pages.   Course  Textbook:   Ammann  and  Jeff  Offutt. Week  8-­‐10  Formal  software  verification   • Model  Checking   • Finite  Automata     • Finite  State  Verification  in  examples   6.  2008.    Cambridge  University   Press.  1997. Week  6-­‐7  Input  space  partitioning   • Midterm  –  October  19. Week  4-­‐5:  Logic  Coverage   • Introduction  to  Boolean  Logic   • Logic  predicates  and  clauses   • Logic  expression  coverage  criteria   • Structural  logic  coverage  of  programs   • Specification-­‐based  logic  coverage   • Logic  coverage  of  Finite  State  Machines     • Disjunctive  Normal  Form  criteria   4. Week  1:  Introduction     • Software  testing  –  tasks  of  test  engineer. Week  11  Syntax-­‐based  testing   • Syntax-­‐based  coverage  criteria   • Program-­‐based  grammars   • Integration  and  object-­‐oriented  testing   • Specification-­‐based  grammar   7.  322  pages.  ISBN  978-­‐0-­‐521-­‐88038-­‐1     Recommended  Textbooks:   Mauro  Pezzee  and  Michael  Young.    ISBN  978-­‐0471455936.  “Software  Testing  and  Analysis”.     Artech  House.   introduction  to  basic  terminology     2.  Wiley.  271  pages  (available  online  through  Books24x7  via  the  McGill   Libraries)     Course  Contents:     1. Week  12  Mutation  Testing     . Week  2-­‐3:  Coverage  criteria  –  Graph  coverage   • Source  code   • Design  elements   • Specifications   3.  “Introduction  to  Software  Testing”.     Steven   R.  2011   • Input  domain  modeling   • Combination  strategies  criteria   5.  limitations  of  existing  methods.  2007.   “Software   Verification   and   Validation:   A   Practitioner's   Guide”.

 2012.     Quizzes.       Midterm     As   there   is   no   final   in   the   course.       In   addition   to   the   quizzes.   During   the   tutorials   you   will   be   exposed   to   the   SPIN   tools   and   Promela   language.    These  will  be   take  home  assignments.  You  will   form   groups   of   two.   Out   of   6   quizzes  only  5  best  will   contribute  to  the  final  grade.   you   will   have   3   programming   assignments.       .   The   assignments  will  be  given  to  help  you  gain  proficiency  in  the  above.  you  will  be  working  on  the  final  project.   Each  of  the  5  best  quizzes  will   be  worth  4%  of  the  final  mark.    It  is  worth  25%  of  the  final  mark.     and  Midterm  Dates:   Midterm:  Nov.   the   Midterm   is   generally   longer   and   more   detailed   than  the  typical  one.       Towards  the  end  of  the  semester.  which  will  take  place  in  the  first  15-­‐20  min  of  the   lecture.  7.  You  will  use  standard  programing  language  such  as  C++/Java.  Assignments  and  a  Final  Project     There  will  be  a  total  of  6  quizzes.   There   will   be   no   make   up   quizzes.  etc.  More  details  regarding  the  Final  Project  will  be  given  to  you  later   in  the  course.  Each  assignment  will  be  worth  10%  of  the  final  mark.  as  well  as   Promela  and  SPIN.   The   date   of   each   quiz   as   well   as   the   scope   of   the   material   will   be   announced   in   class   one   week   prior   to   the   quiz.   and   work   on   the   assigned   software   design   and   verification   topic.  The  Final  Project  is  worth  25%  of  the  final  grade.           Grading  Scheme:   6  quizzes  –  5  best  will  contribute  to  the  final  grade   (5  quizzes  each  worth  4%)  –  20%   Assignment  1  –  10%   Assignment  2  –  10%   Assignment  3  –  10%   Midterm                      -­‐  25%   Final  project      -­‐  25%       Quizzes     Each  quiz  and  the  scope  of  the  material  will  be  announced  in  class  one  week  before.

Sign up to vote on this title
UsefulNot useful