Release Notes Version 1.2.1 - HMS-Analytical-Software/SASUnit GitHub Wiki

Release Notes for SASUnit Version 1.2.1

System Requirements

SASUnit requires SAS. SAS is a product and registered trademark of SAS Institute, Cary, NC (http://www.sas.com).

Following are the system requirements for SASUnit, supporting different versions of SAS running on different operating systems.

Supported execution environments

  • SAS 9.1.3, 9.2 and 9.3 (32 and 64 bit versions)
  • SAS running on operating systems Windows 7, Windows XP and Linux
  • SAS language configuration: English and German

That does not mean that every combination and configuration has been tested, see tested environments below. SASUnit can also be used on environments not mentioned here (it has been used with SAS on various Unix systems) but we have no documented tests for those.

Execution environments fully tested

SASUnit has been fully tested in the following environments with SAS language configuration English and German. The language specified in the following list shows the operation system language setting which is relevant for some parts of SASUnit:

  • Windows 7 64bit English / SAS 9.3 64 bit
  • Windows 7 64bit English / SAS 9.3 32 bit
  • Windows 7 64bit English / SAS 9.2 32 bit
  • Windows 7 64bit German / SAS 9.3 64 bit
  • Linux Ubuntu 12.04 LTS / SAS 9.3 64 bit
  • Linux Suse 10.3 / SAS 9.2 32 bit

Further tools used for testing

  • Doxygen 1.8.2
  • Microsoft Internet Explorer 9
  • Firefox 17.0.1

Changes since version 1.2

Enhancements

There is a new option to activate test coverage reporting.

  • Using the test coverage reports it is easier to assess how much source code is covered by the test cases. Use this feature to discover which parts of a unit under test are never executed during tests. More about test coverage assessment see Patrick Warnat's paper on PhUSE 2010.
  • The macro initsasunit now offers the new option i_ testcoverage. Setting this parameter to a value of 1 activates generation of test coverage reporting. This is now the default operation mode for all command scripts in the bin folder.
  • In the SASUnit report, in the tab Units under Test, a new column ‘test coverage’ can be found, showing the calculated test coverage percentage for every unit under test. The percentage is calculated as the number of source code lines executed at least once during all tests of a unit divided by the number of all lines of the unit except non-contributing lines (e.g. empty lines or comment lines). The test coverage percentage figure is a html hyperlink targeting a colored html representation of the source code file. In this html representation, for every source code line it is shown whether the line was executed in the tests or not.
  • This feature is only supported in combination with SAS 9.3.
  • Test coverage assessment is implemented using the SAS option MCOVERAGE. Unfortunately, we discovered that the MCOVERAGE – Option is not working perfectly (SAS 9.3 TS1M2). In some cases executable source code is marked as non-contributing code. In very seldom cases, executed code is not marked as executed code. We have reported these findings to SAS Institute and they have confirmed this behavior. It is classified as an error to be corrected in the future. However, the available test coverage assessment is properly working in most cases and thus it is already good enough to be helpful.

Solved defects

  • Corrected error in displaying the status of scenarios. If an error is detected in the scenario log then the scenario is now marked as erroneous. This is currently only available on the "Test Scenarios" page. It will be integrated into the "Units under Test" page in one of the next releases.

Changes since version 1.1

Enhancements

  • This is the first release of SASUnit where project management has been fully hosted on SourceForge, so this is a starting point for faster release cycles and for better integration of the HMS development team and the user community in the future.
  • Support for different environments has been reorganized, there now is a pair of command files for each scenario, one for complete execution of the test suite and one for incremental execution of changed programs only.
  • Projects can now be moved without the need to change command files.
  • Command files now pause when there is an error or a warning.
  • Testing procedures have been improved by the means of more unit tests and a detailed test plan, also across different environments.
  • The main page now includes more information about the execution environment (SAS version, configuration, user id etc.).
  • The SASUnit logo has been changed to the green OK symbol and it now links to SourceForge.
  • There is a new assertion for performance tests (assertperformance.sas).
  • Example regression_test.sas has been enhanced for better comprehensibility (see regression.xls) and is now also available under SAS on Linux.
  • Added support for testcases that need to redirect logfiles. Macro variables g_logfile and g_printfile hold the redirected paths used by SASUnit.

Solved defects

  • Errors resulting from special characters in parameters of SASUnit macros have been fixed.
  • Missing style sheet in assertreport has been added.
  • Errors in the scenario log are now being highlighted in the scenario details report.
  • Scenarios without a valid test case are reported as well.
  • Missing test scenario programs are reported as well.
  • Problems with English settings of Microsoft Windows have been solved.
  • Column "number of test cases" on overview page for units under test wrongly showed number of checks, this has been fixed and column "number of checks" has been added.
  • Warning and error messages have been eliminated from run_all.log.
  • Fixed issue where %sysexec call to SAS for running of test scenarios failed because the call string became too long.
  • Some additional minor bugs have been solved.

Most current version

You can get the most current version of SASUnit and also the full self testing environment from the svn repository. Note that the svn head revision might not be fully tested.

Contributors

Klaus Landwich (project management, development) Dr. Patrick Rene Warnat (development test coverage) Johannes Lang (development) Nikolas Aggelidakis (Linux development) Bernhard Braun (testing and programming) Leonhard Rohr (programming) Oliver Thieleman (programming) Andreas Mangold (project management)