University of Trento

Software Analysis and Testing II.

Filippo Ricca (ricca@itc.it)

COURSE OBJECTIVES AND CONTENTS:

This course aims at providing the practical skills involved in software analysis and testing. Algorithms and techniques described during the theoretical lessons of the basic course (Software Analysis and Testing I) are applied to real cases of software systems to be re-engineered and tested. The tool used for analysis, restructuring and testing tasks is TXL (TXL website).

PROGRAM:

Introduction

  • legacy systems
  • reverse engineering, re-engineering, re-structuring and testing
  • available tools

    Re-engineering of a real legacy system (course project)

  • program transformations
  • presentation of the legacy code
  • requirements of the architecture recovery phase
  • migration to an object oriented design
  • re-implementation of the system
  • testing

    Tools

  • introduction to TXL
  • parsing
  • TXL programming
  • program analysis in TXL
  • program transformation in TXL
  • testing tools

    Laboratory

  • basic exercises in TXL
  • architecture recovery
  • design restructuring
  • code generation
  • testing

    DEPENDENCES:

    Formal languages and compilers, Programming I and II, Software Engineering, Software Analysis and Testing I.

    MATERIAL:

    SLIDES: lesson1 lesson2 lesson3 lesson4 lesson5 lesson6 lesson7 lesson8 lesson9 lesson10 lesson11

    CODE: chull.c

    TOOLS: TXL DOT ToscanaJ JUNIT

    PAPERS:

  • An approach to program testing. J.C.HUANG
  • Branch Coverage for Arbitrary Languages Made Easy. I.D.Baxter
  • Identifying Modules Via Concept Analysis. Michael Siff and Thomas Reps

    Last modified 8/6/2004 by Filippo Ricca.