Editorial:
Flipping the Testing Classroom

Published in volume 22, issue 8, December 2012

This issue has three terrific papers. The first paper, A testing-based process for component substitutability, by Flores and Polo, shows us how to test reusable components. The research uses back-to-back testing to evaluate the behavior of the internal functions of a component, helping the tester decide when a component is stable enough to be reused, and when new tests are needed. (Recommended by Sudipto Ghosh.) The second, A framework for automatic generation of security controllers, by Martinelli and Matteucci, addresses the problem of guaranteeing the security of complex systems. This is done through a formal process of modeling components of the systems, then aggregating those models into a security model of the entire complex system. (Recommended by Jeff Offutt.) The third, A formal framework to test soft and hard deadlines in timed systems, by Merayo, Nunez and Rodriguez, presents a method to test timely properties of software. The tests are designed from real-time specifications of the software. (Recommended by Antoniol Guiliano.)

I usually write about research issues here, but I am going to diverge to talk about a recent educational experiment I tried. I first heard about "the flipped classroom" [1] in a presentation by my university's Center for Teaching Excellence. Instead of listening to the professor talk for an hour (or 2.5 hours in our one-day-a-week schedule), then going home to do homework, in a flipped (or inverted) classroom the student listens to recorded lectures at home, then works problems in the classroom.

The flipped model has several advantages. (1) Students don't need to be in a crowd to listen to a lecture, but working problems in a group can be very helpful. (2) It's hard to listen for a complete hour (or 2.5 hours), so flipping lets students pause the recordings at any time. (3) Flipping lets students go at different speeds, which is a huge relief to gifted students and a benefit for struggling students. (4) Finally, the in-class sessions let professors focus on what each student needs individually, rather than treat all students the same.

Although dubious, I decided to try flipping my classroom for two weeks in my graduate software testing class [2]. These weeks cover Chapter 3 from the green book [3], logic-based testing, which in the past has been difficult for some students. This chapter also lends itself well to the kind of problem solving that can be done in a classroom.

I started by recording lectures for sections 1, 2, and 3. Educational experts suggest making recorded lectures 10 to 15 minutes, so I broke my lectures into distinct pieces. I used Camtasia, which records voice over powerpoint. I told the students that they were required to view the lectures before coming to class.

My class prep for the in-person meeting was pleasantly light. I prepared and posted the assignment, and wrote a few problems down on a piece of paper. We worked some problems together, then I told the students to start their homework and call out if they needed help.

The results were surprisingly positive. Two students submitted the assignment during class and three others said they had solved the problems but wanted to recopy their answers. The in-class questions were interesting. Much of my time was spent explaining subtle points of the material to students who missed it in the reading and lecture. Other students needed help with manipulating logic expressions. It's easy to say "they should have known that before," but this format gave us the opportunity to fill in a hole in their knowledge so they could succeed in this part of the class.

My second findings are from an opinion poll. I asked the students three questions on our class discussion board: "Did you view the lectures before class?", "Did you feel the class was useful?", and "Do you think you did better on the homework because of the class session?". 100% of the respondents said yes to all three questions. The followup comments were extremely positive.

The most important question, however, is whether the flipped model helped the students learn. I measured this by comparing with the same assignment from the previous two years. The only differences were the specific logic predicates on the assignment, the students in the class, and the flipped model. The average on this assignment was 88% in 2010 and 86% in 2011, but 98% in 2012 with the flipped classroom. The lowest score also increased, from 65% in 2010 and 63% in 2011 to 90% in 2012. Theorizing that a flipped classroom might help struggling students more, I computed the average of the bottom half of each class. These averages went from 75% in 2010 and 74% in 2011 to 94% in 2012.

Though dubious at first, I am now convinced the flipped classroom model is a very effective way to teach some types of material. I recommend you give it a try.

[1] Flip teaching, Wikipedia. Online: http://en.wikipedia.org/wiki/Flip_teaching, last access October 2012.

[2] SWE 637 Software Testing Schedule, Jeff Offutt, Online: http://www.cs.gmu.edu/~offutt/classes/637/sched.html, last access October 2012.

[3] Introduction to Software Testing, Paul Ammann and Jeff Offutt, Cambridge University Press, Cambridge, UK, 2008. ISBN 0-52188-038-1.

Jeff Offutt
offutt@gmu.edu
21 October 2012