Course detail

Automated Testing and Dynamic Analysis

FIT-ATAAcad. year: 2022/2023

Coverage criteria. Control flow graph. Unit testing. Test doubles. Requirement-based testing. Bug localisation. Data-driven testing. Automatic generation of test data. Fuzz testing. Performance testing. Run-time monitoring. Testing of parallel programs. Test management. Reliability of test reports.

Language of instruction

Czech

Number of ECTS credits

5

Mode of study

Not applicable.

Learning outcomes of the course unit

Not applicable.

Prerequisites

Not applicable.

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 (20 points each) and up to 60 points from the final exam.

Course curriculum

Not applicable.

Work placements

Not applicable.

Aims

To provide an overview of different approaches to software testing. The focus is put on automated software verification. To gain practical skill of tracing the program run and subsystem communication. To gain practical skill of software testing required by a quality assurance analyst.

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

Not applicable.

Recommended optional programme components

Not applicable.

Prerequisites and corequisites

Not applicable.

Basic literature

Farrell-Vinay, P.: Manage Software Testing. Auerbach Publications, 2008, 537 s., ISBN 978-0-8493-9383-9
Myers, G. J., Sandler, C., Badgett, T.: The Art of Software Testing, 3. vydání. John Wiley & Sons, 2011, 256 s., ISBN 978-1118031964

Recommended reading

Ammann, P., Offutt, J.: Introduction to Software Testing. Cambridge University Press, 2008, 322 s. ISBN 978-0-511-39330-3.
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 : A Study Guide for the Certified Tester Exam. Rocky Nook Computing. 2014. 296 s.. ISBN 9781937538422

Elearning

Classification of course in study plans

  • Programme MITAI Master's

    specialization NADE , 0 year of study, summer semester, elective
    specialization NBIO , 0 year of study, summer semester, elective
    specialization NCPS , 0 year of study, summer semester, elective
    specialization NEMB , 0 year of study, summer semester, elective
    specialization NGRI , 0 year of study, summer semester, elective
    specialization NHPC , 0 year of study, summer semester, elective
    specialization NIDE , 0 year of study, summer semester, elective
    specialization NISD , 0 year of study, summer semester, elective
    specialization NISY up to 2020/21 , 0 year of study, summer semester, elective
    specialization NMAL , 0 year of study, summer semester, elective
    specialization NMAT , 0 year of study, summer semester, elective
    specialization NNET , 0 year of study, summer semester, elective
    specialization NSEC , 0 year of study, summer semester, elective
    specialization NSEN , 0 year of study, summer semester, compulsory
    specialization NSPE , 0 year of study, summer semester, elective
    specialization NVER , 0 year of study, summer semester, compulsory
    specialization NVIZ , 0 year of study, summer semester, elective
    specialization NISY , 0 year of study, summer semester, elective
    specialization NEMB up to 2021/22 , 0 year of study, summer semester, elective

Type of course unit

 

Lecture

26 hod., optionally

Teacher / Lecturer

Syllabus

  1. Model-based testing I
    • Control flow graph, Interprocedural CFG.
    • Coverage-driven generation of test cases.
  2. Model-based testing II
    • Automation of unit tests.
    • xUnit test patterns (Mocking).
  3. Test fixture and test doubles.
  4. Requirement based testing.
    • Requirement classification.
    • Traceability.
    • Automation in Behaviour-driven development (BDD).
  5. Data-driven testing I
    • Combinatorial testing.
    • Test data minimization.
  6. Data-drivven testing II
    • API testing.
    • Systematic generation of test data.
  7. Data-driven testing III
    • Mutation testing.
    • Fuzz testing.
  8. Performance testing
    • Performance parameters.
    • Types and processes of performance testing.
  9. Run-time verification II
    • Test properties, temporal properties, parametric properties.
    • Program instrumentation.
  10. Testing of parallel programs I
    • Concurrency bug classification.
    • Contracts for concurrency.
    • Systematic vs. random testing.
    • Noise injection methods.
  11. Testing of parallel programs II
    • Atomrace and Eraser algorithms.
    • Vector clocks.
    • Fasttrack algorithm.
  12. Run-time verification I
    • Low-level tracing.
    • Post-mortem analysis.

Project

26 hod., compulsory

Teacher / Lecturer

Syllabus

  1. Design of automated test suite with knowledge of source code and/or requirements.
  2. Implementation of run-time monitor.

Elearning