Changes between Version 1 and Version 2 of Projects/GSoC/TestingReview
- Timestamp:
- 07/07/12 00:19:24 (12 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
Projects/GSoC/TestingReview
v1 v2 17 17 * Latest download count: 18 18 19 [wiki:Cmockery Cmockery] Cmockery is a lightweight and highly portable unit testing framework with minimum conflicts with standard C library headers. It is well suited to work for RTEMS based testing thanks its effort to avoid relying on new features of compilers, and also its lightweight and minimum-conflict headers. It also works well for Host based tests too. Unlike CMock, Cmockery has a relatively less stringent format requirements, while it requires the tester to write the test runner and mock functions by hand, while both of which can be automatically generated by scripts in Cmock. Cmockery provides convenient interface to test for memory leaks, buffer underflow and buffer overflow, all of which would cause fatal errors for single processed RTEMS system. For mock function implementations, Cmock testers only need to define the expect input and output for certain functions in unit tests, where the mock functions are generated by ruby script according to the header files, which is convenient and easy to use. However, with Cmockery, testers need to write the mock functions by hand, which is troublesome for test automation and sometimes confusing. Cmockery provides a more detailed tests report than CMock by providing the reason for tests failures. 19 [wiki:Cmockery Cmockery] Cmockery is a lightweight and highly portable unit testing framework with minimum conflicts with standard C library headers. 20 20 21 * License: Apache License 2.0 21 22 * Programming Language: C … … 29 30 * Latest download count: 4618 30 31 31 [wiki:Test-dept Test-dept] TestDept is unit testing framework providing stubing capabilities. TestDept support the concept of test-suites and test-cases, which are not clearly supported by CMockery and CMock. It also have provided a setup and teardown interface to each test cases like CMock. Stub functions are similar but different concept than mocking functions. It is supported by the replace_function(functions_to_be_replace, stub_function) interface. Mocking functions can deal with the argument expectations and mocked return values for any number of times you want. While stubing functions can only provide a uni-interface. For example, you can decide that a mocking function mock_function() to return 1 at the first time of being callled and return 2 at the second time of being called. When stub technique is used, you cannot expect the same function to return different values unless you provide the inside logic basing on inputs of arguments, which is time-consuming and inconvenient for test automation. And also, because of the uni-interface of the stubbing function, it cannot specify the different expected value for certain argument each time the stubbing function is called. In conclusion, stubing functions are not as flexible and useful as mocking functions. 32 [wiki:Test-dept Test-dept] TestDept is unit testing framework providing stubing capabilities. 33 32 34 * License: GNU GPL v3 33 35 * Programming Language: C, Assembly … … 41 43 * Latest Download count: 231 42 44 43 [wiki:AceUnit AceUnit] AceUnit is a simple unit testing framework based on CUnit and EmbUnit. It conforms to JUnit 4.x architecture format, where it supports the concept of test suites, test fixtures, test cases, setup and cleanup functions. It supports automatic test discovery. It has stringent test writing format in order to use the prewritten java application as Generator for test generation automation, which is very convenient. It also have the Test Runner to run the well structured tests(suites-fixtures-cases) automatically. It is well suited to work for RTEMS based and Host based testing. Although it have provided a macro for tests to run in embedded fields, it is not 100% functional. 45 [wiki:AceUnit AceUnit] AceUnit is a simple unit testing framework based on CUnit and EmbUnit. 46 44 47 * License: BSD 45 48 * Programming Language: C … … 52 55 53 56 [wiki:Google_Test_and_Google_Mock Google Test and Google Mock] Google Tests is unit testing framework conforming to xUnit architecture. Google Mock is a library that can be used to provide mocking functionality to other C++ testing frameworks as well. They can be used in combination for host based testing with powerful functionalities they provide. 54 By defining a strict test format, Google Tests supports automatic test discovery, and distinguishes fatal and non-fatal failures, which is not provided by most test frameworks.It also provides a rich set of assertions, and even user-defined assertions for more readable tests results display. It has provided three flexible ways for user to define custom assertions, using existing boolean functions, use AssertionResult object, and using Predicate-formatter to further customize error messages. It also provide a mechanism to verify that unit tests fails or exit with give exit code or error message in order to ensure that assertions fails as expected. In addition, it supports parameterized tests, which can be very convenient in tests automation. Test error propagation options have made it possible to write complicated unit tests without confusion. It also supports various options for running the tests,for example, tests repetition, independent tests running, tests shuffling. It supports XML test report generation. 55 Google Mock provides a flexible mocking interface to C++ frameworks. 57 56 58 * License: New BSD license 57 59 * Programming Language: C++