2 * Most of the tests are named poorly; naming should describe a use case in story-like language, not simply identify the
3 unit under test. An example would be the difference between testCalculate and testAddingIntegersTogetherWorks.
4 * Many of the tests make multiple assertions, and are thus not unitary tests. By using data-providers and more use-case
5 oriented test selection nearly all of these cases can be easily resolved.
6 * Some of the test files are either incorrectly named or in the wrong folder. Tests should be organized in a mirrored
7 structure to the source they are testing, and named the same, with the exception of the word "Test" at the end.
8 * Shared set-up code or base classes are present, but usually named improperly or appear to be poorly factored. Support
9 code should share as much of the same naming as the code it's supporting, and test and test-case depenencies should be
10 considered to resolve other shared needs.