UE Advanced validation techniques/tests

Degrees incorporating this pedagocial element :


An excerpt of the themes and tools that will be addressed includes:

* Contract specification as test oracle with JML
* Unit tests with JUnit
* Coverage of tests with Emma and EclEmma
* Isolation test/integration test with Mockito
* Mutation analysis with PIT
* Random test
* Performance verification and aspect-based programming

Teaching is organized in course sessions, during which various techniques are presented that are applicable to the various test activities (specification, generation, execution, oracle, and of the test stop). These sessions are supplemented by supervised, machine-based sessions that will allow students to familiarize themselves with test tools.
Continuous assessment will take the form of assignments or mini-projects associated with tutorials


Basics of software testing, Java programming language, and predicate logic.

Targeted skills

Testing software is now a full-fledged profession in software development. In addition, the development of large software programs makes extensive use of outsourcing, reuse, or component integration. In this context, it is essential to test these components and their assembly.
The objective of this course is to provide students with the tools and techniques that will enable them to implement various testing activities during software development based on a specification.
The first step is to express a specification that can be verified at run-time, as an oracle of a test activity. Secondly, it is necessary to implement advanced testing techniques to generate tests automatically, test the quality of a test suite (coverage, mutational analysis), implement the integration test, couple the test activity with an oracle, and optimize test execution.