CSC/ECE 517 Fall 2010/ch1 1f TU
Unit-testing frameworks for Ruby
Unit Testing
Units are the smallest building blocks of software. In a language like C, individual functions make up the units. Unit testing is the process of validating such small building blocks of a complex system much before testing an integrated large module or the system as a whole. Some of the major benefits are: • Be able to test parts of a project with out waiting for the other parts to be available, • Achieve parallelism in testing by being able to test and fix problems simultaneously by many engineers, • Be able to detect and remove defects at a much less cost compared to other later stages of testing, • Be able to take advantage of a number of formal testing techniques available for unit testing, • Simplify debugging by limiting to a small unit the possible code areas in which to search for bugs, • Be able to test internal conditions that are not easily reached by external inputs in the larger integrated systems (for example, exception conditions not easily reached in normal operation) • Be able to achieve a high level of structural coverage of the code, • Avoid lengthy compile-build-debug cycles when debugging difficult problems.