Introduction

Motivation

Java protection

Kimera verification

Testing Techniques

Formal methods

Manual code analysis

Manual test generation

Testing on the public

Automated testing techniques

Comparison Testing

Testing Results

Test Coverage

Problems with Comparison Testing

Grammar-based test production

Grammar Properties

Test Generation

Grammar Experience

Conclusions