Presentation is loading. Please wait.

Presentation is loading. Please wait.

Blue’s Support for Object-Oriented Testing By: James Majidian Christopher Nersisyan.

Similar presentations


Presentation on theme: "Blue’s Support for Object-Oriented Testing By: James Majidian Christopher Nersisyan."— Presentation transcript:

1 Blue’s Support for Object-Oriented Testing By: James Majidian Christopher Nersisyan

2 Agenda  Abstract  Introduction  Reason for this article  Object Oriented Testing  Blue Environment Testing  Conclusion  Personal Thoughts  Questions?

3 Abstract  Reasons for Object-Oriented testing: Object-Oriented programming is commonly used for large scale projects. Object-Oriented programming is commonly used for large scale projects. Much research has been done on design and implementation, but minimal research on testing.Much research has been done on design and implementation, but minimal research on testing.  By taking an object-oriented approach to testing, this presentation will show that with appropriate tools the cost of testing will not be greatly increased.

4 Introduction  Reasons for Object-Oriented Large Scale Systems Excellent structuring mechanism Excellent structuring mechanism Units may be implemented separately.Units may be implemented separately. Implementation hiding Implementation hiding Internal structure of data may be hidden, and changes will not affect users of the class, simplifying maintenance.Internal structure of data may be hidden, and changes will not affect users of the class, simplifying maintenance. Software reuse Software reuse Reduction in the amount of software written improves reliability of system since tested classes may be reused.Reduction in the amount of software written improves reliability of system since tested classes may be reused.

5 Introduction (Cont’d)  Difficulties of Object-Oriented Testing Advantages of Object-Oriented Programming become disadvantages Advantages of Object-Oriented Programming become disadvantages AdvantagesAdvantages Excellent structuring mechanism. Excellent structuring mechanism. Implementation Hiding. Implementation Hiding. DisadvantagesDisadvantages Large number of individual units must be tested Large number of individual units must be tested State of internal data not accessible via interfaces State of internal data not accessible via interfaces Individual test cases must be developed for all units Individual test cases must be developed for all units Test cases must call each method supported by the class, prompt user for parameters and display results of method.Test cases must call each method supported by the class, prompt user for parameters and display results of method. Various combinations of these method calls must be exercised.Various combinations of these method calls must be exercised. Resulting test program may be more complex and larger than the class being testedResulting test program may be more complex and larger than the class being tested

6 Introduction (Cont’d)  Solutions for Object-Oriented Testing: “Debug” print statements “Debug” print statements AdvantagesAdvantages Prints out relevant internal data. Prints out relevant internal data. DisadvantagesDisadvantages Could introduce new errors. Could introduce new errors. Large volume of output may become difficult to interpret. Large volume of output may become difficult to interpret. Symbolic debugger Symbolic debugger AdvantagesAdvantages Insert break points and examine data. Insert break points and examine data. DisadvantagesDisadvantages Adds complexity. Adds complexity. May not be able to display complex link structures. May not be able to display complex link structures. Blue Blue

7 Introduction (Cont’d)  What is Blue? Specifically designed for testing object-oriented applications. Specifically designed for testing object-oriented applications. Graphical environment which supports interactive creation of instances of classes and interactive invocation of their methods. Graphical environment which supports interactive creation of instances of classes and interactive invocation of their methods. Ability to examine the internal state variables of objects. Ability to examine the internal state variables of objects. Allows the programmer to interactively test their classes without writing a single line of test code. Allows the programmer to interactively test their classes without writing a single line of test code. Both an object-oriented programming language and development environment. Both an object-oriented programming language and development environment.

8 Reason for this article  Object Oriented programming is common method of programming, but limited information exists on testing it.  We felt that it would be beneficial to all to examine one method of Object Oriented testing, the Blue environment.

9 Object Oriented Testing  Procedure to test a class: Create an instance of the class Create an instance of the class Call of method of the object Call of method of the object Examine the internal data of object Examine the internal data of object  This can be achieved by the inclusion of appropriate mechanisms in the program development environment.

10 Object Oriented Testing (cont’d)  Environment Mechanisms Mechanism 1 Mechanism 1 Interactively create an object of any class.Interactively create an object of any class. Pass parameters to object.Pass parameters to object. Once created, interactively invoke methods.Once created, interactively invoke methods. Results are displayed.Results are displayed. Mechanism 2 Mechanism 2 Environment provides an inspection facility allowing internal data to be examined.Environment provides an inspection facility allowing internal data to be examined. Results are displayedResults are displayed  Characteristic of Environment To support passing of objects, mechanisms must allow an arbitrary number of objects of arbitrary classes to be constructed. To support passing of objects, mechanisms must allow an arbitrary number of objects of arbitrary classes to be constructed.

11 Blue Environment Testing Project Editor The empty area at the bottom of the main window is the object bench. Once a class within a project has been compiled, objects of that class may be created. Interactive creation of objects is achieved by selecting the class and clicking the “ Create” button. An instance is interactively created and available for operation. Invoking the creation operation on a class results in a normal object creation, including the execution of the creation routine (the ‘‘ constructor” in C++/Java terminology).

12 Blue Environment Testing (cont’d)  Object Creation Dialogue Appears after create operation is invoked Appears after create operation is invoked Allows user to enter routine parameters. Allows user to enter routine parameters. At the top of this dialogue, the interface of the creation routine is displayed, with its header and comment. At the top of this dialogue, the interface of the creation routine is displayed, with its header and comment. Further down is a text field for entering parameter values. Further down is a text field for entering parameter values. Under the parameters is another field to provide a name for the object to be created. Under the parameters is another field to provide a name for the object to be created. The large empty area in the middle of the dialogue provides a list of previously used parameters. It is provided for convenience during testing of a class. The large empty area in the middle of the dialogue provides a list of previously used parameters. It is provided for convenience during testing of a class. Previously made calls can be easily repeated by selecting a parameter combination from the list.Previously made calls can be easily repeated by selecting a parameter combination from the list.

13 Blue Environment Testing (cont’d)  An object on the “Object Bench” Once the OK button is clicked in the dialogue the object is created and displayed on the object bench. Once the OK button is clicked in the dialogue the object is created and displayed on the object bench. The object is then available to the user for direct interaction. The object is then available to the user for direct interaction.

14 Blue Environment Testing (cont’d)  Calling a routine on an object Clicking on the object with the right mouse button displays a menu that includes all interface routines of that object. Clicking on the object with the right mouse button displays a menu that includes all interface routines of that object. Also included in the menu are two special operations available for all objects: inspect and remove. Also included in the menu are two special operations available for all objects: inspect and remove.

15 Blue Environment Testing (cont’d)  Symbols in the routine menu indicate whether a routine has parameters or return values.  If the routine has parameters, a parameter dialogue similar to the one seen at the creation of the object is displayed  On the click of the OK button the routine is executed and, if the routine returns results, the result values are displayed in another dialogue.

16 Blue Environment Testing (cont’d)  How interactive creation helps: There is no need to complete all classes in a project before the first tests can be performed. There is no need to complete all classes in a project before the first tests can be performed. Each class can be tested as soon as some of its routines have been completed. Each class can be tested as soon as some of its routines have been completed. No need to write special purpose test code.No need to write special purpose test code.

17 Blue Environment Testing (cont’d)  Composition During the interactive testing of the system, objects accessible on the object bench may be composed. During the interactive testing of the system, objects accessible on the object bench may be composed. i.e. one object may be passed as a parameter to the routine of another object.i.e. one object may be passed as a parameter to the routine of another object.

18 Blue Environment Testing (cont’d)  Inspection of Objects Inspect operation Inspect operation Allows viewing of instance data of objects that don’t provide accessor functions.Allows viewing of instance data of objects that don’t provide accessor functions. Results are displayed graphically.Results are displayed graphically. Get places object on object bench to be examined later. Get places object on object bench to be examined later. Inspect opens another dialogue for Instance variable inspection. Inspect opens another dialogue for Instance variable inspection. Inspections allow users to observe the effect of routine execution of internal data. Inspections allow users to observe the effect of routine execution of internal data.

19 Blue Environment Testing (cont’d) Record Facility Record Facility Textually records all interactive object creations, method invocations, return values, text input and text output.Textually records all interactive object creations, method invocations, return values, text input and text output. This helps with test documentation.This helps with test documentation.

20 Blue Environment Testing (cont’d)  Pedagogical Benefits Blue environment was initially developed as a teaching environment for first year students. Blue environment was initially developed as a teaching environment for first year students. Benefits as a teaching aid: Benefits as a teaching aid: Incremental developmentIncremental development No need to syntactically complete a whole application No need to syntactically complete a whole application As soon as one class or routine is completed it can be compiled, and objects can be created, executed, and tested. As soon as one class or routine is completed it can be compiled, and objects can be created, executed, and tested. Leads to greater motivation and earlier error detection (which is also beneficial for professional development). Leads to greater motivation and earlier error detection (which is also beneficial for professional development). Class/object distinction.Class/object distinction. Allowing the direct creation of and interaction with objects greatly facilitates understanding. Allowing the direct creation of and interaction with objects greatly facilitates understanding. If a student has a class “Person” and creates three different people with different names, the role of the class and the role of each object becomes much more directly understandable. If a student has a class “Person” and creates three different people with different names, the role of the class and the role of each object becomes much more directly understandable. Programming without I/OProgramming without I/O Allows a clearer understanding of the abstraction concepts if routine calls are taught before language exceptions Allows a clearer understanding of the abstraction concepts if routine calls are taught before language exceptions Interface/implementation distinctionInterface/implementation distinction Testing supportTesting support As was the goal of Blue, good testing is supported much better than in conventional systems. As was the goal of Blue, good testing is supported much better than in conventional systems.

21 Blue Environment Testing (cont’d)  Implementation A shell Blue class will be created and its constructor will hold the interactive call. A shell Blue class will be created and its constructor will hold the interactive call. When the shell class is compiled and executed, the interactive calls will be performed. When the shell class is compiled and executed, the interactive calls will be performed. This shell class will store the interval object’s values and this data will be shown in the result dialogue box. This shell class will store the interval object’s values and this data will be shown in the result dialogue box.

22 Blue Environment Testing (cont’d)  Interactive call under testing.  Blue Shell Source Code

23 Conclusion  Object Oriented programming has great advantages to software development, but creates difficulties in testing.  Blue has been designed to aid in testing Object Oriented programs, by reducing special purpose test code.  Blue supports incremental testing to occur early in the project, aiding the stability of the application.  Blue was created to aid teaching languages, and should be available online today.

24 Personal Thoughts  Its simplicity seems more detrimental than beneficial.  Blue may be an effective tool for simple unit testing, but seems too elementary for industry use.  First year students taught in the Blue environment may have trouble transitioning to actual programming environments.

25 Any Questions?


Download ppt "Blue’s Support for Object-Oriented Testing By: James Majidian Christopher Nersisyan."

Similar presentations


Ads by Google