CSC/ECE 517 Fall 2009/wiki1a 1 103

From Expertiza_Wiki
Jump to navigation Jump to search

Writing Effective Junit Test Cases

This article introduces the best practice a developer should follow in writing JUnit test cases for Java programming.

Prerequisites

Readers are assumed to be familiar with the following terms/names and their concepts:

Unit Testing - A verification process run by a developer on the smallest testable parts of an application.

Test case - A process generates a set of conditions and variables by which a developer can tell if a piece of software works correctly.

JUnit - A unit testing framework for programming in Java.

Criteria For Effective Unit Testing

  • Design - It's "Hard to design testable code". "However, testable code often is better designed" <ref name="Wilson">"effective unit testing", Wilson & Densmore.</ref>
  • Documentation - Good documentation could prevent oversight, increase transparency, and facilitate knowledge transfer in the future.<ref name="UnitTestingWWW">"Unit Testing: Why? What? & How?", Wilson & Densmore.</ref>
  • Good coverage,
What should be covered
  1. UI all the screen elements, spelling/font/size of all the “labels” or text (automation?)
  2. every line of code,
  3. every condition in case of “conditional statements”
  4. Cyclomatic number (decision/branch/path)
  5. Boundaries (too large, too small, overflow)
  6. Every error message/exception handling (overflow?)
  7. All validations are being performed (incorrect input)
  8. All possible setup configurations
  • Avoid redundant tests
  • Easy for automation.
  • Efficient

Rules Specific to JUnit Test Cases

References