An Internet Environment for Learning Software Testing ProcessesSita Ramakrishnan
School of Computer Science and Software Engineering, Monash University
The Internet has been recognised not only as a tool for communication in the 21st century but also as an environment for enabling changes in the paradigm of teaching and learning. This report describes our development effort (sponsored by the CUTSD98 Grant) in designing educational material on object-oriented (O-O) testing in an Internet environment. O-O software testing has the advantage of being easily visualizable in terms of state changes and data-flows. By making use of this advantage, we have attempted to show the inner workings of the complex processes involved in O-O testing.
As part of this project, we have developed a system, known as "Light Views", which contains O-O testing case studies described by visual images, animation, and interactive lessons, to assist active participation by learners to result in better understanding and knowledge retention.
The distributed teaching and learning approach discussed in this report employs appropriate UML diagrams, makes the diagrams test ready by including details of constraints as part of state/event transitions, and provides interactive lessons for learning O-O software testing. More details are available on the project web page - http://www.sd.monash.edu.au/~sitar/se_educ_proj/
The aim of this work on an Internet environment for learning O-O testing processes is to enhance the state of the art in learning O-O testing by visualizing O-O testing and interactive courseware in virtual communities.
Our project objective is to develop a system to learn O-O-testing, where testing itself is only one component. The O-O testing case studies contain visual images, animation, and interactive lessons, with a belief that active participation by the learner results in better understanding and knowledge retention. The other important aspects are visualization and interactivity with the system under test, instructional material on preparing test plans, and provisions for evaluation and feedback.
Traditionally, students of undergraduate courses in software engineering have been taught techniques to design and develop relatively small programs, with only minor emphasis on software testing and maintenance. However, testing is an important activity both at the development and maintenance phases of software development. Industry data show that around 60% of software costs go into the maintenance phase of the software life cycle. It is important that software engineering students learn systematic testing of software systems.
O-O technology encourages modular and incremental development of large systems. At Monash University, we teach O-O software development for building complex systems, in which testing is an integral part. However, a lack of adequate teaching environments and tools support has made it difficult for students to master the complexity of software testing.
Expected benefits of our approach
Students are expected to undertake this task of software testing systematically by visualizing execution paths and state changes in the tested program. Students are expected to produce better test data (for their assessable components) that tests the possible states of the objects and their interaction during system execution by simulated and animated examples using Unified Modeling Language (UML) state diagrams augmented with constraints.
The project shifts the learning process from the traditional teacher-centred approach to a student-centred approach. The change from a traditional teaching paradigm to distributed learning and teaching in virtual communities is aimed to engage the student in active participation as part of the learning process. Since software testing is a complex process, the learning pace of students may not be uniform and therefore this shift to resource-based learning in the students' laboratories in the University should help the students. A significant number of students have home computers with connections to the Internet. By providing the system on the Internet, students have the flexibility of learning at their own place. Thus we provide both time and space flexibility in the learning process.
Visualizing aspects of O-O testing on the Internet
Visual images and animation are used in the education process. Computer based animation and visualization are powerful and motivationally attractive education techniques, which can simplify the presentation of the conceptual frameworks and schematic overviews, thereby enhancing learning. O-O software testing has the advantage of being easily 'visualizable' in terms of state changes and data-flows. By making use of this advantage, a complex process can be taught in a better way. It is vital for students to internalize the notion of testing so that they can produce systems, which are reliable, and of good quality.
Teaching and learning of O-O testing on the Internet
Our current work entitled, "Light Views", for learning the process of O-O testing is an interactive hypermedia courseware geared towards a distributed learning community model for visualizing the O-O software testing process through web-based software. The Internet technology has been used as an enabler for creating pedagogically sound material, such as active participatory learning in collaborative environments.
The courseware has adopted the good principles of instructional design and human computer interaction. A short textual description of the problem is provided interspersed with passive learning material containing UML diagrams. These diagrams can be stepped through moving from one state to the next in a system directed fashion. UML diagrams with the learner controlling the interactivity and also the paths taken as a consequence are part of the active learning material provided. Links to O-O theory, and glossary terms of relevance to O-O testing in general and to those case studies in particular are also part of the courseware. Each case study contains an evaluation component with a questionnaire and quizzes. Questionnaires are aimed at receiving feedback from the users about the effectiveness of the web content. We have used their feedback in providing improvements. Students are also required to answer quizzes which range from simple True/False, multiple choice questions to interactions with state diagrams (running Java applets, Java script and Perl scripts). Quizzes are used as an on-line testing mechanism to check their understanding. When the student chooses the wrong answer, we show the correct answer for the quiz in question as part of their learning and feedback.
We have found that UML state diagrams annotated with these easy to understand visual cues are beneficial in students' understanding of test selection, test coverage, and the inner workings of simple UML dynamic models.
Java applets and interactive visualization of O-O testing processes
The use of Java applets for passive and active illustration of dynamic O-O models suits our requirement to make the courseware accessible on a platform independent basis. We have implemented some animations using Java. However, we have also used the tool, Flash, to draw and animate a number of these diagrams, and Macromedia's scripting language, Lingo, for producing interactive illustrations of the test paths. Since our learning environment is an interactive, web-based environment, we convert these diagrams to Shockwave movies or Java applets. Initially, we created the content pages by writing standard html. However, we have reworked them using DreamWeaver, a visual authoring tool for creating and managing web pages.
For web-based distance learning to work, the designer must take care of the content, web instructional design, interactivity, and take the students' feedback and assessment of the effectiveness of the material into account. This evaluation may necessitate redesign and reimplementation. Since we wanted to experiment with a number of test strategies, and take the students' feedback to evolve the solution, we have chosen to use these authoring tools to develop an Internet solution.
We have included four case studies in the courseware, geared to learn about the various test strategies employed in testing O-O software systems. We focus on various aspects of O-O testing: black-box testing of a simple account object; systems testing and white-box testing in a VCR system; event based testing and applets; and distributed component testing.
Dissemination of information
We have endeavoured to disseminate the project information amongst academics in our faculty and benchmark our effort against other work in O-O testing in other universities and research organisations by:
We have endeavoured to create an effective Internet based courseware by having content experts in O-O testing, programmers, human computer interaction and web-based course designers, educational professionals with experience in interactive web-based application, and distance teaching and learning, and graphic designers.
We have designed an Internet environment to visualize the inner workings of the complex processes involved in O-O testing. Our objective is for students to learn the basic goal of achieving high productivity in testing by being able to create a minimum number of test cases to uncover the maximum number of errors for a given amount of effort.
To achieve this objective, we have used four case studies to explore the various test selection techniques. We have included the specification based black-box testing - at the unit level in case study 1 for an Account object, and at the system level in case study 3 for a JavaBean application. Case study 2 has been used to illustrate event based testing by visually representing the dynamics of Java applets at work, and using interactivity to learn how to test Java applets, threads, and applet communication. For unit level black-box testing, we have shown how to use the UML state diagram augmented with design by contract notions as part of the transition, to verify the behaviour of an object with few test cases. For system testing, we have shown how to derive meaningful test cases by using testing techniques that focus on related events that occur in the system level model of the VCR system in case study 3.
In 1998, the author's final year undergraduate students studying a subject entitled "Object-Oriented Programming Systems" learned about O-O testing using the case study on Accounts as the web-based interactive teaching resource, in addition to standard classroom lectures. They took part in formative evaluations of the material and completed on-line quizzes to check their understanding. These students received this material very positively. This approach presents a new road to self-paced learning by enabling learners in distributed locations to follow the new ROAD - Read the on-line material; Observe the static and animated O-O diagrams (Passive learning); Absorb; and Do (Active learning). The interactivity features allow the learner to direct the test paths taken by the system.
Students studying O-O testing in the Department of Computer Science, Clemson University during January - April 1999 participated by studying the case studies and undertaking the student questionnaires and quizzes. The evaluations look positive at first glance and we are working on a detailed evaluation of the same. The details of the evaluation will be included in the final report to the national funding body, CUTSD and also to the wider community through our project web pages. We are also considering using this design experience in interactivity to develop a framework in Java for learning O-O testing strategies and processes.
UniServe Science News Volume 13 July 1999
Page Maintained By: PhySciCH@mail.usyd.edu.au