WARNING: PRELIMINARY INFORMATION (SUBJECT TO CHANGE)#
Make sure you have signed up for a tutorial through the new MyTimetable system. Assignment groups will be randomly allocated within your chosen tutorial. All labs are fully in person with no remote option available.
| Week | Tutorial | Handout |
| 1 | No Tutorial: Sign up for tutorials! | MyTimetable |
| 2 | Environment Setup & Unit Testing Introduction - Tutorial roadmap + IntelliJ setup (~10 min) - Unit testing concepts and demonstration (~15 min) - Hands-on: write tests and view coverage (~20 min) - Defects4J intro and download (if time) (~15 min) |
Tutorial 1 |
| 3 | Introduction to Automated Test Generation with EvoSuite - Docker setup and file transfer (~15 min) - EvoSuite introduction (~10 min) - Run EvoSuite on a simple project (~25 min) - Observe generated test structure and style (~10 min) |
Tutorial 2 |
| 4 | EvoSuite vs LLMs, LLM-Based Test Generation - Unified response to A1 + A2 explanation (~15 min) - EvoSuite vs LLMs comparison (~15 min) - AI for test generation (hands-on) (~30 min) |
Tutorial 3 |
| 5 | Code Instrumentation, SootUp - Code Instrumentation (~15 min) - Maven + SootUp setup (~25 min) - SootUp basics: view, class, method, CFG (~20 min) |
Tutorial 4 |
| 6 | Use SootUp to Automatically Extract Code Information - FQN, method signature, and Jimple definitions (~10 min) - Extract Three Types of Code Information (~10 min) - Extract Code Information for a whole project (~15 min) - Batch an LLM to generate Java unit tests from each row (~15 min) - Format and run the project tests (~10 min) |
Tutorial 5 |
MID SEMESTER BREAK#
| Week | Tutorial | Handout |
| 7 | Automating LLM Calls - API setup and text completion (~20 min) - Integrate code knowledge into a prompt and generate tests (~25 min) - Format and save results (~15 min) - Extension: Embedding and fine-tuning (reference only) |
Tutorial 6 |
| 8 | Analysis of LLM-Generated Tests - Fix buggy LLM-generated tests (~15 min) - Analyse causes of hallucination (~15 min) - Strategies to reduce hallucination (~15 min) - Assign groups (3 students per group) for Assignment 3 (~15 min) |
Tutorial 7 |
| 9 | Prompt Engineering - Structured prompt introduction (~10 min) - Design a structured prompt template (~15 min) - Debug the template (~10 min) - Dynamic template with placeholders (~10 min) - Introduce fuzzing concepts in prompts (~15 min) |
TBD |
| 10 | Iterative Generation - Detect syntax errors with javac (~15 min) - Parse error messages and refine (one round) (~20 min) - Implement generate–run–regenerate loop (~20 min) - A3 Task 5 preparation (~5 min) |
TBD |
| 11 | Unit Test Metrics Calculation - Test metrics: definitions and interpretation (~15 min) - JaCoCo: setup and run (~25 min) - Interpret JaCoCo report and pass rate (~10 min) - LaTeX: brief introduction (~10 min) |
TBD |
| 12 | Final Q&A - Presentation for Assignment4 (~60 min) |
Tutorial 11 |