Course detail
Automated Testing and Dynamic Analysis
FIT-ATAAcad. year: 2019/2020
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.
Supervisor
Department
Learning outcomes of the course unit
Not applicable.
Prerequisites
Not applicable.
Co-requisites
Not applicable.
Recommended optional programme components
Not applicable.
Recommended or required 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.
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.
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.
Planned learning activities and teaching methods
Not applicable.
Assesment methods and criteria linked to learning outcomes
Two projects, 15 points each.
Language of instruction
Czech
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.
Classification of course in study plans
- Programme MITAI Master's
specialization NADE , any year of study, summer semester, 5 credits, elective
specialization NBIO , any year of study, summer semester, 5 credits, elective
specialization NGRI , any year of study, summer semester, 5 credits, elective
specialization NNET , any year of study, summer semester, 5 credits, elective
specialization NVIZ , any year of study, summer semester, 5 credits, elective
specialization NCPS , any year of study, summer semester, 5 credits, elective
specialization NSEC , any year of study, summer semester, 5 credits, elective
specialization NEMB , any year of study, summer semester, 5 credits, elective
specialization NHPC , any year of study, summer semester, 5 credits, elective
specialization NISD , any year of study, summer semester, 5 credits, elective
specialization NIDE , any year of study, summer semester, 5 credits, elective
specialization NISY , any year of study, summer semester, 5 credits, elective
specialization NMAL , any year of study, summer semester, 5 credits, elective
specialization NMAT , any year of study, summer semester, 5 credits, elective
specialization NSEN , any year of study, summer semester, 5 credits, compulsory
specialization NVER , any year of study, summer semester, 5 credits, compulsory
specialization NSPE , any year of study, summer semester, 5 credits, elective
Type of course unit
Lecture
26 hours, optionally
Teacher / Lecturer
Syllabus
- Model-based testing I
- Control flow graph, Interprocedural CFG.
- Coverage-driven generation of test cases.
- Model-based testing II
- Automation of unit tests.
- xUnit test patterns (Mocking).
- Test fixture and test doubles.
- Requirement based testing.
- Requirement classification.
- Traceability.
- Automation in Behaviour-driven development (BDD).
- Bug localization.
- Data-driven testing I
- Combinatorial testing.
- Test data minimization.
- API testing.
- Systematic generation of test data.
- Mutation testing.
- Data-driven testing II
- Fuzz testing.
- Performance testing
- Performance parameters.
- Types and processes of performance testing.
- Run-time verification I
- Low-level tracing.
- Run-time verification II
- Test properties, temporal properties, parametric properties.
- Program instrumentation.
- Testing of parallel programs I
- Concurrency bug classification.
- Contracts for concurrency.
- Systematic vs. random testing.
- Noise injection methods.
- Testing of parallel programs II
- Atomrace and Eraser algorithms.
- Vector clocks.
- Fasttrack algorithm.
- Test management
- Test prioritisation.
- Test suite evaluation. Test flakiness.
- Test reports. Reliability of reports. Accuracy, Precision, Recall, F1.
Project
26 hours, compulsory
Teacher / Lecturer
Syllabus
- Design of automated test suite with knowledge of source code and/or requirements.
- Implementation of run-time monitor.