SASUnit Confidence in Coverage - Sas Institute Group Presentations/TASS... · SASUnit –Confidence...
Transcript of SASUnit Confidence in Coverage - Sas Institute Group Presentations/TASS... · SASUnit –Confidence...
![Page 1: SASUnit Confidence in Coverage - Sas Institute Group Presentations/TASS... · SASUnit –Confidence in Coverage Handling Edge Cases and Ensuring Code Quality & Adaptability Through](https://reader033.fdocuments.in/reader033/viewer/2022041713/5e498eaf4c2b85694f27c9fb/html5/thumbnails/1.jpg)
SASUnit – Confidence in Coverage
Handling Edge Cases and Ensuring Code Quality & Adaptability Through Unit Tests
Chuck Castillo
![Page 2: SASUnit Confidence in Coverage - Sas Institute Group Presentations/TASS... · SASUnit –Confidence in Coverage Handling Edge Cases and Ensuring Code Quality & Adaptability Through](https://reader033.fdocuments.in/reader033/viewer/2022041713/5e498eaf4c2b85694f27c9fb/html5/thumbnails/2.jpg)
Introduction
• What is SAS Unit?
• Adaptability (changing your code)
• Extensibility (adding to your code)
• Versatility (handling dirty data)
• SASUnit – The Report
• Questions? Answers!
![Page 3: SASUnit Confidence in Coverage - Sas Institute Group Presentations/TASS... · SASUnit –Confidence in Coverage Handling Edge Cases and Ensuring Code Quality & Adaptability Through](https://reader033.fdocuments.in/reader033/viewer/2022041713/5e498eaf4c2b85694f27c9fb/html5/thumbnails/3.jpg)
What is SASUnit?
• SASUnit is a collection of programs and macros that are used to execute your code and verify the results
• Verifies the results by inspecting datasets, macrovariables, the log file…
• Compares “actual” results to the “expected” results
• Generates a report with results (in .html format, .xml format)
![Page 4: SASUnit Confidence in Coverage - Sas Institute Group Presentations/TASS... · SASUnit –Confidence in Coverage Handling Edge Cases and Ensuring Code Quality & Adaptability Through](https://reader033.fdocuments.in/reader033/viewer/2022041713/5e498eaf4c2b85694f27c9fb/html5/thumbnails/4.jpg)
What is SASUnit?
Input SAS code Output
Normal Process Flow
![Page 5: SASUnit Confidence in Coverage - Sas Institute Group Presentations/TASS... · SASUnit –Confidence in Coverage Handling Edge Cases and Ensuring Code Quality & Adaptability Through](https://reader033.fdocuments.in/reader033/viewer/2022041713/5e498eaf4c2b85694f27c9fb/html5/thumbnails/5.jpg)
What is SASUnit?
Input SAS code Output
Test Case Input
Test Case Output
Expected Output
Report
SASUnit Test Case Process Flow
![Page 6: SASUnit Confidence in Coverage - Sas Institute Group Presentations/TASS... · SASUnit –Confidence in Coverage Handling Edge Cases and Ensuring Code Quality & Adaptability Through](https://reader033.fdocuments.in/reader033/viewer/2022041713/5e498eaf4c2b85694f27c9fb/html5/thumbnails/6.jpg)
Adaptability
Grades
Students
Classes
![Page 7: SASUnit Confidence in Coverage - Sas Institute Group Presentations/TASS... · SASUnit –Confidence in Coverage Handling Edge Cases and Ensuring Code Quality & Adaptability Through](https://reader033.fdocuments.in/reader033/viewer/2022041713/5e498eaf4c2b85694f27c9fb/html5/thumbnails/7.jpg)
Adaptability
• SASUnit allows you to modify your code while ensuring the output doesn’t change.• Dealing with new requirements
• Need to speed up performance
![Page 8: SASUnit Confidence in Coverage - Sas Institute Group Presentations/TASS... · SASUnit –Confidence in Coverage Handling Edge Cases and Ensuring Code Quality & Adaptability Through](https://reader033.fdocuments.in/reader033/viewer/2022041713/5e498eaf4c2b85694f27c9fb/html5/thumbnails/8.jpg)
Adaptability
![Page 9: SASUnit Confidence in Coverage - Sas Institute Group Presentations/TASS... · SASUnit –Confidence in Coverage Handling Edge Cases and Ensuring Code Quality & Adaptability Through](https://reader033.fdocuments.in/reader033/viewer/2022041713/5e498eaf4c2b85694f27c9fb/html5/thumbnails/9.jpg)
Adaptability
![Page 10: SASUnit Confidence in Coverage - Sas Institute Group Presentations/TASS... · SASUnit –Confidence in Coverage Handling Edge Cases and Ensuring Code Quality & Adaptability Through](https://reader033.fdocuments.in/reader033/viewer/2022041713/5e498eaf4c2b85694f27c9fb/html5/thumbnails/10.jpg)
Adaptability
![Page 11: SASUnit Confidence in Coverage - Sas Institute Group Presentations/TASS... · SASUnit –Confidence in Coverage Handling Edge Cases and Ensuring Code Quality & Adaptability Through](https://reader033.fdocuments.in/reader033/viewer/2022041713/5e498eaf4c2b85694f27c9fb/html5/thumbnails/11.jpg)
Adaptability
![Page 12: SASUnit Confidence in Coverage - Sas Institute Group Presentations/TASS... · SASUnit –Confidence in Coverage Handling Edge Cases and Ensuring Code Quality & Adaptability Through](https://reader033.fdocuments.in/reader033/viewer/2022041713/5e498eaf4c2b85694f27c9fb/html5/thumbnails/12.jpg)
Extensibility
• SASUnit allows for testing inputs and outputs of one-or more steps in a process.
• Test as much or as little as you want: macrovariables, table attributes, table values…
![Page 13: SASUnit Confidence in Coverage - Sas Institute Group Presentations/TASS... · SASUnit –Confidence in Coverage Handling Edge Cases and Ensuring Code Quality & Adaptability Through](https://reader033.fdocuments.in/reader033/viewer/2022041713/5e498eaf4c2b85694f27c9fb/html5/thumbnails/13.jpg)
Extensibility
![Page 14: SASUnit Confidence in Coverage - Sas Institute Group Presentations/TASS... · SASUnit –Confidence in Coverage Handling Edge Cases and Ensuring Code Quality & Adaptability Through](https://reader033.fdocuments.in/reader033/viewer/2022041713/5e498eaf4c2b85694f27c9fb/html5/thumbnails/14.jpg)
Extensibility
![Page 15: SASUnit Confidence in Coverage - Sas Institute Group Presentations/TASS... · SASUnit –Confidence in Coverage Handling Edge Cases and Ensuring Code Quality & Adaptability Through](https://reader033.fdocuments.in/reader033/viewer/2022041713/5e498eaf4c2b85694f27c9fb/html5/thumbnails/15.jpg)
Extensibility
![Page 16: SASUnit Confidence in Coverage - Sas Institute Group Presentations/TASS... · SASUnit –Confidence in Coverage Handling Edge Cases and Ensuring Code Quality & Adaptability Through](https://reader033.fdocuments.in/reader033/viewer/2022041713/5e498eaf4c2b85694f27c9fb/html5/thumbnails/16.jpg)
Versatility
• Easy to manage expected data. Need to know how to handle outliers.
• Writing unit tests forces you to consider edge cases• Missing values, unexpected formats, case sensitivity
• Allows you to be proactive in providing troubleshooting tools (e.g. log messages, error tables)
![Page 17: SASUnit Confidence in Coverage - Sas Institute Group Presentations/TASS... · SASUnit –Confidence in Coverage Handling Edge Cases and Ensuring Code Quality & Adaptability Through](https://reader033.fdocuments.in/reader033/viewer/2022041713/5e498eaf4c2b85694f27c9fb/html5/thumbnails/17.jpg)
Versatility
Student_Districts
![Page 18: SASUnit Confidence in Coverage - Sas Institute Group Presentations/TASS... · SASUnit –Confidence in Coverage Handling Edge Cases and Ensuring Code Quality & Adaptability Through](https://reader033.fdocuments.in/reader033/viewer/2022041713/5e498eaf4c2b85694f27c9fb/html5/thumbnails/18.jpg)
Versatility
![Page 19: SASUnit Confidence in Coverage - Sas Institute Group Presentations/TASS... · SASUnit –Confidence in Coverage Handling Edge Cases and Ensuring Code Quality & Adaptability Through](https://reader033.fdocuments.in/reader033/viewer/2022041713/5e498eaf4c2b85694f27c9fb/html5/thumbnails/19.jpg)
Versatility
![Page 20: SASUnit Confidence in Coverage - Sas Institute Group Presentations/TASS... · SASUnit –Confidence in Coverage Handling Edge Cases and Ensuring Code Quality & Adaptability Through](https://reader033.fdocuments.in/reader033/viewer/2022041713/5e498eaf4c2b85694f27c9fb/html5/thumbnails/20.jpg)
SASUnit – The Report
• Viewing Results• Navigate to test logs, test code, unit under test
• Manual (report) assertion
• Compare tables – lots of options
• More…
![Page 21: SASUnit Confidence in Coverage - Sas Institute Group Presentations/TASS... · SASUnit –Confidence in Coverage Handling Edge Cases and Ensuring Code Quality & Adaptability Through](https://reader033.fdocuments.in/reader033/viewer/2022041713/5e498eaf4c2b85694f27c9fb/html5/thumbnails/21.jpg)
Resources
• SASUnit - https://sourceforge.net/projects/sasunit/
• Unit Testing - http://martinfowler.com/bliki/UnitTest.html
• Test Driven Development - https://en.wikipedia.org/wiki/Test-driven_development