Course detail

Testing and Dynamic Analysis

FIT-ITSAcad. year: 2021/2022

Test Specification. Coverage criteria for source code (EC, NC, EPC, PPC). Logic coverage criteria (PC, CC, MCDC). Input space partitioning. Input space coverage criteria. Black-box dynamic analysis. Tracing of shared resource usage. Testing multi-threaded applications. Testing network applications. Testing GUI. Performance testing. Test management.

Language of instruction

Czech

Number of ECTS credits

5

Mode of study

Not applicable.

Learning outcomes of the course unit

The student knows fundamental techniques of software testing. The student is able to develop effective test suites of a software product. The student can analyse source codes, knows typical locations in a source code which are sensitive to be flawed. The student can analyse the behaviour of a program with finite or infinite runs with no explicit knowledge of the source code. The student can test and/or analyse program communications, program performance, usage of shared resources, manipulation with data storages, and a function of the graphical user interface. The student is able to find bugs in programs in a systematic way. The student knows the fundamentals of test planning and management. Student acquaints with English terminology in the subject.
The student will learn through project exercise on how to analyse a software product to raise its quality. The student gains a knowledge of how to create a test suite and how to find bugs in programs.

Prerequisites

formal languages and compilers, algorithms, operating systems

Co-requisites

Not applicable.

Planned learning activities and teaching methods

Not applicable.

Assesment methods and criteria linked to learning outcomes

Students can obtain up to 40 points from 2 projects and up to 60 points from the final exam.

Course curriculum

Not applicable.

Work placements

Not applicable.

Aims

To provide an overview of the verification stage of development of a software system, the main focus is on dynamic analysis of software. To get practical skills with software testing required by a QA engineer. Mastering development of automatic tests of different aspects of verified programs. To get the basic knowledge of test planning and management.

Specification of controlled education, way of implementation and compensation for absences

Realization and defence of projects in due dates.

Recommended optional programme components

Not applicable.

Prerequisites and corequisites

Basic literature

  • Ammann, P., Offutt, J.: Introduction to Software Testing. Cambridge University Press, 2008, 322 s. ISBN 978-0-511-39330-3.

Recommended reading

Spillner, A., Linz, A., Schaefer, H.: Software Testing Foundations : A Study Guide for the Certified Tester Exam. Rocky Nook Computing. 2014. p. 296. ISBN 9781937538422.
Myers, G. J., Sandler, C., Badgett, T.: The Art of Software Testing, 3. vydání. John Wiley & Sons, 2011, 256 s., ISBN 978-1118031964.
Kaner, C., James, B., Pettichord, B.: Lessons Learned in Software Testing: A Context-Driven Approach. Wiley Computer Publishing, 2002, 286 s., ISBN 0-471-08112-4.
Marick, B.: The Craft Of Software Testing, Subsystem Testing, Prentice Hall PTR, 1995, ISBN 0-13-177411-5.
Spillner, A., Linz, T., Schaefer, H.: Software Testing Foundations, 2. vydání, 2007, 296 s., ISBN 978-1-9339-5278-9.
Farrell-Vinay, P.: Manage Software Testing. Auerbach Publications, 2008, 537 s., ISBN 978-0-8493-9383-9.
Ammann, P., Offutt, J.: Introduction to Software Testing. Cambridge University Press, 2008, 322 s. ISBN 978-0-511-39330-3.

Classification of course in study plans

  • Programme BIT Bachelor's, 2. year of study, summer semester, elective

  • Programme IT-BC-3 Bachelor's

    branch BIT , 2. year of study, summer semester, elective

Type of course unit

 

Lecture

26 hours, optionally

Teacher / Lecturer

Syllabus

  1. Role of testing and dynamic analysis in the development of a computer-based system. Introduction to terms in testing. Models of the testing process. Test requirements, test specification, and test plan. Test-driven development.
  2. Subsystem testing. Coverage criteria for source code. Control flow graph. Graph coverage criteria. Data flow coverage criteria.
  3. Relation of a graph coverage and the source code. Relation of a data flow coverage and the source code.
  4. Logic coverage criteria.
  5. Input domain modelling. Input space coverage criteria.
  6. Syntax-based testing.
  7. Test case development based on specification requirements of a system. Testing according to V-model.
  8. Combining test cases. Test-based bug localization. Bug-reporting.
  9. Black-box dynamic program analysis. Analysis based on tracing library and system calls. Constructing data and control flow graph. Constraints of the event sequence.
  10. Virtualization in dynamic analysis. Analysis of shared resource usage. Coverage criteria based on shared resource usage.
  11. Testing multi-threaded applications.
  12. Testing network applications. Testing the graphical user interface and its automation. Testing non-functional requirements.
  13. Performance testing. Test planning and management. A brief introduction to static analysis.

Project

26 hours, compulsory

Teacher / Lecturer

Syllabus

  1. Design of a test suite satisfying specified test criteria for a given software project.
  2. Implementation of an automated test suite.