ALL_SERIES
SERIES_OVERVIEW // CURRICULUM_MAP

Learn Java Formal Methods, Testing, Benchmarking, and Performance Engineering

// Correctness and performance evidence map for Java engineers: how to reason from invariants, tests, formal models, benchmarks, profiling, and production telemetry without confusing weak signals for proof.

40 Lessons515 Min Total04 Phases

This overview is designed to help you choose the right entry point quickly. Follow the full track from lesson one, continue from your last checkpoint, or jump straight into a phase that matches what you need right now.

algorithmsalloyapi-designarchitectureasync+120 more

Curriculum Map

Navigate by phase, then choose the lesson that matches your current depth.

01

Correctness & Performance Evidence Map

19 min

Correctness and performance evidence map for Java engineers: how to reason from invariants, tests, formal models, benchmarks, profiling, and production telemetry without confusing weak signals for proof.

02

Engineering Invariants and Failure Models

16 min

Practical invariant discovery and failure modeling for Java systems: from domain rules, state machines, concurrency, idempotency, and distributed failures to tests, formal models, constraints, and runtime telemetry.

03

Test Taxonomy and Verification Ladder

18 min

Test taxonomy and verification ladder untuk Java engineer: bagaimana memilih bentuk evidence paling murah dan paling kuat untuk risiko correctness, integration, concurrency, performance, dan production behavior.

04

Design for Testability and Measurability

13 min

Desain Java codebase agar mudah diuji, diukur, diprofiling, dan diverifikasi: seams, ports/adapters, pure core, deterministic time, deterministic randomness, observability hooks, dan failure injection.

05

JUnit Platform Deep Dive

13 min

Deep dive JUnit Platform dan JUnit Jupiter untuk membangun testing foundation JVM yang scalable: architecture, lifecycle, annotations, parameterized tests, dynamic tests, extensions, tags, parallel execution, dan governance test suite.

06

Test Structure, Fixtures, and Object Mothers

13 min

Struktur test, fixture, object mother, test data builder, custom assertion, dan strategi data uji untuk Java codebase besar agar test readable, maintainable, deterministic, dan tidak brittle.

07

Mocking, Stubbing, and Test Doubles Without Lying to Yourself

16 min

Deep dive mocking, stubbing, spies, fakes, contract fakes, behavioral verification, state verification, dan test double strategy agar unit/component test memberi signal yang benar, bukan confidence palsu.

08

Testing Domain Logic, State Machines, and Workflows

12 min

Practical testing untuk domain logic, state machines, lifecycle transitions, workflow rules, escalation logic, approval flow, temporal behavior, transition matrix, dan invariant-based verification di Java.

09

Testing Exceptions, Errors, and Edge Cases

13 min

Practical negative-path testing untuk exceptions, error taxonomy, boundary values, invalid input, rollback safety, idempotent failure, retry classification, dan edge-case discovery di Java.

10

Testing Time, Concurrency, and Nondeterminism

11 min

Practical testing untuk time, asynchronous behavior, concurrency, race conditions, nondeterminism, deterministic schedulers, Awaitility, latches/barriers, jcstress, cancellation, dan flaky-test control di Java.

11

Property-Based Testing with jqwik

9 min

Property-based testing dengan jqwik untuk Java engineer: mental model, properties, arbitraries, shrinking, classification, deterministic replay, oracle design, dan strategi penerapan ke production codebase.

12

Generative Testing for Domain Models

8 min

Generative testing untuk domain model Java: aggregate, command, event, workflow trace, stateful property, model-based oracle, invariant coverage, regulatory lifecycle, dan cross-entity behavior.

13

Mutation Testing with PIT

11 min

Mutation testing dengan PIT untuk Java: mental model, mutation score, killed/survived mutants, equivalent mutants, Maven/JUnit 5 setup, oracle design, CI governance, dan cara membaca test weakness secara production-grade.

14

Fuzzing and Robustness Testing in Java

9 min

Fuzzing dan robustness testing untuk Java: malformed input, parser/API fuzzing, Jazzer + JUnit, corpus design, oracle design, resource safety, CI workflow, dan production-grade robustness strategy.

15

Contract Testing and Schema Compatibility

13 min

Contract testing dan schema compatibility untuk Java services: consumer-driven contracts, OpenAPI compatibility, event schema evolution, provider verification, CI gates, compatibility matrix, dan governance untuk API yang tidak merusak consumer.

16

Integration Testing with Real Infrastructure

9 min

Integration testing Java services dengan real infrastructure: Testcontainers, PostgreSQL, Kafka, migration lifecycle, data isolation, network failure, external service simulation, CI reliability, dan production-grade dependency testing.

17

End-to-End Testing Without Test Pyramid Collapse

10 min

End-to-end testing Java systems tanpa membuat test pyramid collapse: scope control, journey selection, environment strategy, test data, UI/API E2E, async verification, flakiness control, CI gates, and production-grade diagnostics.

18

Test Suite Architecture for Large Codebases

9 min

Test suite architecture untuk Java large codebases: classification, ownership, tagging, Maven/JUnit topology, CI partitioning, flaky test governance, quarantine, test impact, diagnostics, and long-term suite health.

19

Formal Methods for Working Engineers

10 min

Formal methods untuk working Java engineers: invariant, safety, liveness, model checking, contracts, refinement, counterexample analysis, dan cara menjembatani formal specification ke JUnit, property-based testing, CI, dan production evidence.

20

TLA+ for Java System Design

7 min

TLA+ untuk desain sistem Java: memodelkan state, action, invariant, liveness, idempotent command processing, optimistic locking, outbox, retry, counterexample, dan mapping dari specification ke implementasi Java/JUnit/jqwik.

21

PlusCal and Algorithmic Specifications

10 min

PlusCal untuk engineer Java: menulis spesifikasi algoritmik yang bisa diterjemahkan ke TLA+, memilih granularitas atomic step, memodelkan worker, retry, queue, lock, fairness, liveness, dan mengubah counterexample menjadi test Java.

22

Alloy for Domain Modeling and Constraint Analysis

7 min

Alloy untuk domain modeling dan constraint analysis: memodelkan entity, relation, cardinality, ownership, authorization, approval, conflict-of-interest, workflow consistency, dan mengubah counterexample menjadi Java tests serta schema constraints.