Course details

Automated Testing and Dynamic Analysis

ATA Acad. year 2024/2025 Summer semester 5 credits

Current academic year

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.

Guarantor

Course coordinator

Language of instruction

Czech

Completion

Examination (written+oral)

Time span

  • 26 hrs lectures
  • 26 hrs projects

Assessment points

  • 70 pts final exam
  • 30 pts projects

Department

Lecturer

Instructor

Learning objectives

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.

Study literature

  • 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
  • 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.
  • Ammann, P., Offutt, J.: Introduction to Software Testing. Cambridge University Press, 2008, 322 s. ISBN 978-0-511-39330-3.

Fundamental literature

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

Syllabus of lectures

  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.

Syllabus - others, projects and individual work of students

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

Progress assessment

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


Course inclusion in study plans

Back to top