Occasion: Date: Present: Classification: Unit testing frameworks for OpenEdge Comparison between ProUnit and OEUnit. ABL Unit in OpenEdge 11.4 Mihai Pintea.

Slides:



Advertisements
Similar presentations
Christian Hujer What is AceUnit? How does AceUnit work? How do I use AceUnit? © 2007 Christian Hujer.
Advertisements

DEV-2: Getting Started with OpenEdge® Architect – Part I
MAHDI OMAR JUNIT TUTORIAL. CONTENTS Installation of Junit Eclipse support for Junit Using Junit exercise JUnit options Questions Links and Literature.
The Next Generation OpenEdge® IDE
JUnit. What is unit testing? A unit is the smallest testable part of an application. A unit test automatically verifies the correctness of the unit. There.
Presented by IBM developer Works ibm.com/developerworks/ 2006 January – April © 2006 IBM Corporation. Making the most of The Java Development Tools project.
JUnit. Why is testing good? Due to psychological factors, programmers are bad testers. A computer can test much faster than a human Philosophy: “If it.
Eclipse Introduction Dwight Deugo Nesa Matic
A Guide to Oracle9i1 Creating an Integrated Database Application Chapter 8.
Macros Tutorial Week 20. Objectives By the end of this tutorial you should understand how to: Create macros Assign macros to events Associate macros with.
Microsoft Word 2007 Introduction to Word Processors.
Using TDD Making code maintainable, reusable and readable by writing tests.
Tutorial 8 Sharing, Integrating and Analyzing Data
14-Jul-15 JUnit 4. Comparing JUnit 3 to JUnit 4 All the old assertXXX methods are the same Most things are about equally easy JUnit 4 makes it easier.
What’s new in Progress Developer Studio for OpenEdge 11.0?
Module 3 Productivity Programs Common Features and Commands Microsoft Office 2007.
Android 4: Creating Contents Kirk Scott 1. Outline 4.1 Planning Contents 4.2 GIMP and Free Sound Recorder 4.3 Using FlashCardMaker to Create an XML File.
The Project AH Computing. Functional Requirements  What the product must do!  Examples attractive welcome screen all options available as clickable.
Unit Testing & Defensive Programming. F-22 Raptor Fighter.
What's New In Progress Developer Studio for OpenEdge?
Neal Stublen Class Objectives  Develop an understanding of the.NET Framework  Gain proficiency using Visual Studio  Begin learning.
Presented by: Katie Milanowski. 2  Formed in 1982  Bruce Barrington (HBO & Company)  Apply RAD technology to IBM PC  1986: Clarion Version 1.0, Atlanta,
Microsoft Excel 2007 © Wiley Publishing All Rights Reserved. The L Line The Express Line to Learning L Line.
COMP-14: Automating your deployments using ANT Gary S Clink Business Consultant.
DEV-2: Making OpenEdge ® Architect Work For You David Lund Product Readiness.
JUnit in Action SECOND EDITION PETAR TAHCHIEV FELIPE LEME VINCENT MASSOL GARY GREGORY ©2011 by Manning Publications Co. All rights reserved. Slides Prepared.
© FPT Software Code Review with VS © FPT Software Agenda What is Code review? Run Code analysis in VS 2012 Configuring Code Analysis rule set.
StyleCop Breaking down the barriers to entry Gary Ewan Park Twitter: Blog:
Testing in Extreme Programming
Unit and Functional Testing Your Flex Applications Mike Nimer Dir. Of Engineering nomee.com.
Lesson 6. GCSE Computing – programming languages Candidates should be able to:  describe common tools and facilities available in an integrated development.
Test Automation For Web-Based Applications Portnov Computer School Presenter: Ellie Skobel.
LLRP GUI Client User Guide
Tutorial 111 The Visual Studio.NET Environment The major differences between Visual Basic 6.0 and Visual Basic.NET are the latter’s support for true object-oriented.
Scalable Game Development William Roberts Senior Game Engineer
Continuous QA Sewit Adams (Colorado State University) Bin Gao (Michigan State University) Jerry Neal (Indiana University)
Design and Programming Chapter 7 Applied Software Project Management, Stellman & Greene See also:
DEV-5: Introduction to WebSpeed ® Stephen Ferguson Sr. Training Program Manager.
CSS preprocessors What are CSS preprocessors, why do we use a CSS preprocessors, how to use a CSS preprocessor and which CSS preprocessors are being used.
© 2001 Business & Information Systems 2/e1 Chapter 8 Personal Productivity and Problem Solving.
Introduction to Eclipse CSC 216 Lecture 3 Ed Gehringer Using (with permission) slides developed by— Dwight Deugo Nesa Matic
DEV-05: Ratcheting up your OpenEdge™ Development Productivity Sunil S Belgaonkar Principal Software Engineer.
Key Applications Module Lesson 21 — Access Essentials
Catch Me If You Can P ractical Structured Error Handling Peter van Dam.
JUnit Adam Heath. What is JUnit?  JUnit is a unit testing framework for the Java programming language  It allows developers to swiftly and easily test.
DEV-3: Getting Started with OpenEdge® Architect – Part II David Lund Sr. Training Program Manager Mark Hanley Sr. Manager Development Tools.
OCR Computing GCSE © Hodder Education 2013 Slide 1 OCR GCSE Computing Python programming 4: Writing programs.
EMBEDDED REAL-TIME, INC. December 8, 2015 Java Unit Mark Mosher Rochester Java Users Group.
1 Unit Testing with JUnit CS 3331 JUnit website at Kent Beck and Eric Gamma. Test Infected: Programmers Love Writing Tests, Java Report,
Continuous Integration Make your development life simpler.
Recent Enhancements to Quality Assurance and Case Management within the Emissions Modeling Framework Alison Eyth, R. Partheepan, Q. He Carolina Environmental.
Unit Testing. F-22 Raptor Fighter Manufactured by Lockheed Martin & Boeing How many parts does the F-22 have?
A2: Making OpenEdge ® Architect Work For You Susan Houniet Senior Solution Consultant.
Automated Testing April 2001WISQA Meeting Ronald Utz, Automated Software Testing Analyst April 11, 2001.
Unity Application Generator How Can I… Export variables of a Control module with all parameters, modify the some of the parameters like Initial values.
Installing and Using Evolve Evolve is written in Java and runs on any system with Java 1.6 Download Evolve from Unzip.
Java IDE Dwight Deugo Nesa Matic
DEV-21: Embracing OpenEdge ® Architect Sunil S Belgaonkar Software Architect.
Customizing PDS OE as per your needs Date: 28 June 2016 Presenter: DivyaTheja Pachipula.
1 New Perspectives on Access 2016 Module 8: Sharing, Integrating, and Analyzing Data.
Open-O Integration Project Introduction
Automating Accounts Payable
Unit Testing.
Data Virtualization Tutorial: XSLT and Streaming Transformations
COMP-10: Managing OpenEdge® Development with the Roundtable® TSMS
Installing and Using Evolve
Access 2013 Introduction
Java Programming Course
The Most Popular Android UI Automation Testing Tool Andrii Voitenko
Dev 11: Embracing OpenEdge® Architect
Presentation transcript:

Occasion: Date: Present: Classification: Unit testing frameworks for OpenEdge Comparison between ProUnit and OEUnit. ABL Unit in OpenEdge 11.4 Mihai Pintea

2 Agenda ProUnit vs OEUnit ABLUnit starting 11.4 What is Unit testing

3 Traditional Development Life Development Test Delivery Testers write the test Fail

4 Unit Testing ●Unit testing is a method by which individual units of source code, sets of one or more computer program modules together with associated control data, usage procedures, and operating procedures are tested to determine if they are fit for use. ●Tests written by Developers. ●Test run as integral part of Development Benefits of Unit Testing ●Find problems early ●Easier to locate bugs ●Facilitate change ●Document units ●Writing tests clarifies design

5 Unit Testing Considerations ●Time consuming and expensive ●Not practical to test everything ●Extra code to maintain, however: Tests often are small Payback: need to do some changes quickly ●Needs team adoption Need to be able to trust the tests ●Needs a unit testing Framework

6 Initial Unit Test Frameworks for OpenEdge Unit test frameworks ProUnit OEUnit

7 Installing ProUnit and OEUnit ProUnit installation: ● ●uncompressing the file in a directory of your choice ●add full path to prounit_dlcXX.pl to the PROPATH ●in case of client/AppServer usage, you should add prounit_dlcXX.pl to PROPATH for both client and AppServer OEUnit installation: ● nWills/OEUnithttps://github.com/Camero nWills/OEUnit ●Uncompressing the file in a directory of your choice ●Add an entry to PROPATH pointing to the \src ●Add the -errorstack startup parameter

8 Running ProUnit and OEUnit Running ProUnit: ●run startProUnitGUI.p. Running OEUnit ●Add a Menu Action to OpenEdge Architect ●right-click to open the context menu from the ABL Editor

9 Writing a Test Case ProUnit: ●A Test Case is just a Progress ABL (4GL) file that follows some simple rules about how to name the internal procedures ●Example simpletest.p OEUnit: ●A test case is a class containing one or more Test methods. Example: ROUTINE-LEVEL ON ERROR UNDO, THROW. USING OEUnit.Assertion.Assert. CLASS METHOD PUBLIC VOID IntegerTest(): DEFINE VARIABLE myInt AS INTEGER NO-UNDO. Assert:AreEqual(myInt,0). END METHOD. END CLASS. PROCEDURE testSimpleTest: DEFINE VARIABLE myInt AS INTEGER NO-UNDO. RUN assertEqualsInt(myInt,0). END.

10 Writing a Test Suite ProUnit: ●ProUnit lets you arrange your tests using Test Sets. OEUnit: ●A test suite is a class that contains a list of test cases and/or other test suites. Test suites are useful for grouping and organizing test cases. Example: ROUTINE-LEVEL ON ERROR UNDO, THROW. CLASS SimpleSuite INHERITS OEUnit.Runner.TestSuite: CONSTRUCTOR SimpleSuite(): AddTest(NEW SimpleTest()). AddTest(NEW SimpleTest1()). END CONSTRUCTOR. END CLASS.

11 ProUnit saving results ●ProUnit provides a very extensible and customizable report engine based on XML and XSLT that make it possible to change completely the report format (adding logos, changing fonts, etc), create multiple styles or saving plain XML files to be imported into a database. ●ProUnit allow you to save results in many forms: XML with SLST JUnit XML CSV file Plain text file with indentation

12 ABLUnit

13 ABL Unit Framework ●ABLUnit is a simple yet powerful unit testing framework for testing ABL programs. ●ABLUnit is similar with OEUnit ●No installation needed because is integrated on OpenEdge 11.4 ●Run in OpenEdge ABLUnit perspective

14 ABLUnit test case ABLUnit: ●Similar with OEUnit, a test case is a class containing one or more Test methods. ABLUnit: OEUnit: ROUTINE-LEVEL ON ERROR UNDO, THROW. USING Progress.Lang.*. USING OpenEdge.Core.Assert. CLASS METHOD PUBLIC VOID IntegerTest(): DEFINE VARIABLE myInt AS INTEGER NO-UNDO. Assert:equals(myInt,0). END METHOD. END CLASS. ROUTINE-LEVEL ON ERROR UNDO, THROW. USING OEUnit.Assertion.Assert. CLASS METHOD PUBLIC VOID IntegerTest(): DEFINE VARIABLE myInt AS INTEGER NO-UNDO. Assert:AreEqual(myInt,0). END METHOD. END CLASS.

15 ABLUnit vs OEUnit vs ProUnit ABLUnitOEUnitProUnit File type support Supports class and procedure Supports only classSupports only procedure AnnotationsRequired: - Before - Setup - Test - TearDown - Ignore - After Required: - BeforeClass - Before - After - Test - Ignore - AfterClass Doesn’t require annotations. - Initialize - setup test - teardown - dispose Nightly Builds Yes (Provided ANT task) -Can be used with PCT ANT Task GUIPDS OECan be embedded into PDSOE Desktop App Command Line YesNoYes

16 ABLUnit vs OEUnit vs ProUnit ABLUnitOEUnitProUnit ResultsSeparate view is provided. - Navigate to failures - Rerun tests - View history of last 10 results - View only failures - Go to test code Pluggable view is provided to show unit test. Summary in tree structure provided Import results Imported by ABLUnit, JUnit, Jenkins No option available to import Export results No custom export options. No export option - XML with SLST - JUnit XML - CSV file - Plain text file with indentation

17 Conclusions ●Benefits of using unit test: find problems early, easier to locate bugs, writing tests clarifies design. ●Unit tests considerations: time consuming and expensive, extra code to maintain, needs team adoption, needs a unit testing Framework ●Unit testing for Open Edge: ProUnit is helpful when creating unit tests for procedural applications OEUnit is very helpful when creating unit tests for OOP applications ABLUnit built in unit testing framework starting progress 11.4

18 Q&A