ComTest = TDD + D + D, Testing in Introductory Level Programming

Samankaltaiset tiedostot
Capacity Utilization

Constructive Alignment in Specialisation Studies in Industrial Pharmacy in Finland

Network to Get Work. Tehtäviä opiskelijoille Assignments for students.

Information on preparing Presentation

On instrument costs in decentralized macroeconomic decision making (Helsingin Kauppakorkeakoulun julkaisuja ; D-31)

Information on Finnish Language Courses Spring Semester 2018 Päivi Paukku & Jenni Laine Centre for Language and Communication Studies

Information on Finnish Language Courses Spring Semester 2017 Jenni Laine

812336A C++ -kielen perusteet,

Windows Phone. Module Descriptions. Opiframe Oy puh Espoo

16. Allocation Models

AYYE 9/ HOUSING POLICY

General studies: Art and theory studies and language studies

7.4 Variability management

The CCR Model and Production Correspondence

ECVETin soveltuvuus suomalaisiin tutkinnon perusteisiin. Case:Yrittäjyyskurssi matkailualan opiskelijoille englantilaisen opettajan toteuttamana

VAASAN YLIOPISTO Humanististen tieteiden kandidaatin tutkinto / Filosofian maisterin tutkinto

OP1. PreDP StudyPlan

Other approaches to restrict multipliers

Teacher's Professional Role in the Finnish Education System Katriina Maaranen Ph.D. Faculty of Educational Sciences University of Helsinki, Finland

anna minun kertoa let me tell you

Curriculum. Gym card

On instrument costs in decentralized macroeconomic decision making (Helsingin Kauppakorkeakoulun julkaisuja ; D-31)

Gap-filling methods for CH 4 data

Efficiency change over time

Results on the new polydrug use questions in the Finnish TDI data

National Building Code of Finland, Part D1, Building Water Supply and Sewerage Systems, Regulations and guidelines 2007

Information on Finnish Courses Autumn Semester 2017 Jenni Laine & Päivi Paukku Centre for Language and Communication Studies

Opiskelijat valtaan! TOPIC MASTER menetelmä lukion englannin opetuksessa. Tuija Kae, englannin kielen lehtori Sotungin lukio ja etälukio

Choose Finland-Helsinki Valitse Finland-Helsinki

Liikkujapalaute & korkeakoulujen palaute sopimuskaudelta

make and make and make ThinkMath 2017

1. Liikkuvat määreet

Hankkeiden vaikuttavuus: Työkaluja hankesuunnittelun tueksi

Ohjelmointikielet ja -paradigmat 5op. Markus Norrena

Kysymys 5 Compared to the workload, the number of credits awarded was (1 credits equals 27 working hours): (4)

BDD (behavior-driven development) suunnittelumenetelmän käyttö open source projektissa, case: SpecFlow/.NET.

Basic Flute Technique

VIDEOTUEN KÄYTTÖKOKEMUKSIA MELUN JA HIUKKASPÄÄSTÖJEN LEVIÄMISMALLINNUKSEN OPETUKSESSA. MaFyKe-päivät Erkki Mäkinen

TIEKE Verkottaja Service Tools for electronic data interchange utilizers. Heikki Laaksamo

RINNAKKAINEN OHJELMOINTI A,

Tarua vai totta: sähkön vähittäismarkkina ei toimi? Satu Viljainen Professori, sähkömarkkinat

OFFICE 365 OPISKELIJOILLE

FinFamily Installation and importing data ( ) FinFamily Asennus / Installation

Students Experiences of Workplace Learning Marja Samppala, Med, doctoral student

Capacity utilization

1. SIT. The handler and dog stop with the dog sitting at heel. When the dog is sitting, the handler cues the dog to heel forward.

Data quality points. ICAR, Berlin,

Osallistujaraportit Erasmus+ ammatillinen koulutus

RANTALA SARI: Sairaanhoitajan eettisten ohjeiden tunnettavuus ja niiden käyttö hoitotyön tukena sisätautien vuodeosastolla

TIETEEN PÄIVÄT OULUSSA

Statistical design. Tuomas Selander

On instrument costs in decentralized macroeconomic decision making (Helsingin Kauppakorkeakoulun julkaisuja ; D-31)

Master's Programme in Life Science Technologies (LifeTech) Prof. Juho Rousu Director of the Life Science Technologies programme 3.1.

Use of spatial data in the new production environment and in a data warehouse

Security server v6 installation requirements

asiantuntijuutta kohti kouluprojektia rakentamalla

Recommended background: Structural Engineering I and II

Infrastruktuurin asemoituminen kansalliseen ja kansainväliseen kenttään Outi Ala-Honkola Tiedeasiantuntija

Immigration Studying. Studying - University. Stating that you want to enroll. Stating that you want to apply for a course.

Vertaispalaute. Vertaispalaute, /9

Research in Chemistry Education

I have seen teachers change teaching methods a little, a little more, and a lot. Erasmus-intensiivikurssien vaikuttavuus koordinaattoreiden silmin

Uusi Ajatus Löytyy Luonnosta 4 (käsikirja) (Finnish Edition)

DS-tunnusten haku Outi Jäppinen CIMO

Tilausvahvistus. Anttolan Urheilijat HENNA-RIIKKA HAIKONEN KUMMANNIEMENTIE 5 B RAHULA. Anttolan Urheilijat

Security server v6 installation requirements

Microsoft Lync 2010 Attendee

Suihkukoneet 1:73 ja pienemmät. Potkurikoneet 1:72-1:49. Suihkukoneet 1:72-1:49. Potkurikoneet 1:35 ja suuremmat. Suihkukoneet 1:35 ja suuremmat

Group 2 - Dentego PTH Korvake. Peer Testing Report

Vaihtoon lähdön motiivit ja esteet Pohjoismaissa. Siru Korkala

Korkeakoulujen tietohallinto ja tutkimus: kumpi ohjaa kumpaa?

Alternative DEA Models

Lapin Rovaniemen moduuli 2 verkko-opiskelijoiden kysymyksiä tetoimiston virkailijoiden tapaamiseen AC-huoneessa:

Valuation of Asian Quanto- Basket Options

LYTH-CONS CONSISTENCY TRANSMITTER

Toppila/Kivistö Vastaa kaikkin neljään tehtävään, jotka kukin arvostellaan asteikolla 0-6 pistettä.

Opiskelijoiden ajatuksia koulun alkuun liittyen / students thoughts about the beginning of their studies at KSYK

Integration of Finnish web services in WebLicht Presentation in Freudenstadt by Jussi Piitulainen

Ohjelmien kehittämisstudiot varmistavat laadukkaat ja linjakkaat maisteriohjelmat Maire Syrjäkari ja Riikka Rissanen

Tietorakenteet ja algoritmit

Miten hyödynnän kv-opiskelijoita kansainvälistymisen alkutaipaleella. Ari Koski & Zaki Khan

Jussi Klemola 3D- KEITTIÖSUUNNITTELUOHJELMAN KÄYTTÖÖNOTTO

T Statistical Natural Language Processing Answers 6 Collocations Version 1.0

Opeka self evaluation tool for teachers and schools about their digital profiles Oppika self evaluation tool for students about their digital profiles

ebooks in the libraries ebib trial and results

Erasmus Intensive Language Course KV kevätpäivät Kuopio Päivi Martin, Lapin yliopisto

Voice Over LTE (VoLTE) By Miikka Poikselkä;Harri Holma;Jukka Hongisto

Tehostettu kisällioppiminen tietojenkäsittelytieteen ja matematiikan opetuksessa yliopistossa Thomas Vikberg

Biojätteen keruu QuattroSelect - monilokerojärjestelmällä Tiila Korhonen SUEZ

Get Instant Access to ebook Kasvuyritys PDF at Our Huge Library KASVUYRITYS PDF. ==> Download: KASVUYRITYS PDF

Land-Use Model for the Helsinki Metropolitan Area

TIE Ohjelmistojen suunnittelu

Ostamisen muutos muutti myynnin. Technopolis Business Breakfast

Jatko-opintovaihtoehdot/ Further studies

Projektityö

Innovative and responsible public procurement Urban Agenda kumppanuusryhmä. public-procurement

Ajettavat luokat: SM: S1 (25 aika-ajon nopeinta)

The role of 3dr sector in rural -community based- tourism - potentials, challenges

Guidebook for Multicultural TUT Users

Arkkitehtuuritietoisku. eli mitä aina olet halunnut tietää arkkitehtuureista, muttet ole uskaltanut kysyä

Transkriptio:

ComTest = TDD + D + D, Testing in Introductory Level Programming TDD + design (D) + documentation/examples (D) Vesa Lappalainen, Jonne Itkonen, Tomi Karppinen

Agenda i.jyu.fi/comtest Problem and motivation Basic idea and usage of ComTest tool Examples (demonstration/video) Assumed benefits Lessons learned (initial evaluation) Future plans

Problem and motivation 1/2 Many have tried to introduce TDD and unit level testing to early programming courses (see references of the paper) Experiences vary: some report success (e.g., Janzen & Saiedian 2006, Wellington et al. 2005), but some identify an increased cognitive and technical load for students (e.g., Keefe et al. 2006, Marrero & Settle 2005) Our research motivation is based on the problem of increased cognitive and technical load

Problem and motivation 2/2 The problem was addressed with a testing tool JUnit was the first choice, but turned out problematic due to increased technical load CS2 students demonstrated a clear resistance to test writing with JUnit A more "transparent" tool was needed, hence ComTest We have collected experiences from more than twenty of our course offerings (3*CS1/Java, 7*CS1/C#, 7*CS2/Java, 5*CS2/Java summer) with ComTest tool, and report initial lessons learned

Basic idea and usage of ComTest ComTest tests are written using a simple macro language (for Java, C#, C++) Tests are written into JavaDoc/Doxygen comments to also get documents and examples ComTest are automatically translated into JUnit/NUnit tests for execution (one can also mix JUnit/NUnit and ComTest) Eclipse/Visual Studio plug-in is used to facilitate test writing and execution

Example 1 JUnit: assertequals(false, isleapyear(1900)); ComTest: isleapyear(1900) === false see example of simple function without any side effects Link to video» LeapYearReady.java» test/leapyearreadytest.java» doc/example/leapyearready.html one can also use syntax: isleapyear(1900) => false

Example of student written test * @example * <pre name="test"> * karkausvuosi(0) === true; * karkausvuosi(4) === true; * karkausvuosi(400) === true; * karkausvuosi(1000) === false; * karkausvuosi(1900) === false; * karkausvuosi(2000) === true; * karkausvuosi(3000) === false; * karkausvuosi(1805) === false; * karkausvuosi(1988) === true; * </pre> "I would never get the leapyear done without ComTest" In C++ Course: "Is there no ComTest for C++"

Example 2 Example from function with side effects: Link to video TakeCharsReady.java test/takecharsreadytest.java doc/example/takecharsready.html It is also possible to use tabular syntax to make complicated tests more readable: * $s $n $letters $result $left * ---------------------------------------------------------------------------- * "Mieleni minun tekevi" 3 "aeiouyåäö" "iee" "Mlni minun tekevi" * --- 3 "xyz" "" "Mlni minun tekevi" * --- 4 "klmn" "Mlnm" "i inun tekevi" * --- 4 "e" "ee" "i inun tkvi" Compare: https://trac.cc.jyu.fi/projects/comtest/wiki/vertailuerottelija

Benefits ComTest tests are shorter and easier to write than their JUnit counterparts Tests in JavaDoc comments keep the tests close to the implementations the cognitive load in browsing between tests and implementations diminishes ComTest is a tool for designing classes and methods, particularly interfaces Tests inside JavaDoc comments serve as examples of method usage

LESSONS LEARNED 1 CS2 N Tool users AVG n of tests ComTest JUnit ComTest JUnit 2007 93 - s=57,t=150-2.6 2008 95 s=75,t=258 s=23, t=69 3.4 3.0 2009 99 s=80,t=264 s=15, t=37 3.3 2.85 s=nr of students written tests, t=nr of tests Table 1: The number of ComTest and JUnit users and their test writing in a CS2 weekly assignment more students wrote tests using ComTest they wrote more tests compared to JUnit users

LESSONS LEARNED 2 Open questionnaire: Mitä on ohjelmointi? Mikä on tärkeää ohjelmoinnissa? Mitä taitoja ohjelmoinnissa tarvitaan? Kerro, mistä asioista... Pidät? Et pidä? Millä tavalla käsityksesi ohjelmoinnista on muuttunut suorittamiesi kurssien aikana? Open questionnaire Nr of students with %test% Before CS1-2013 7/218 After CS1/Before CS2 40/207 After CS2-2014 83/138 Positiivista: Testeistä tuleva vihreä viiva tuottaa hyvän mielen raskaan yritys-erehdys-näpyttelyn jälkeen. Aiemmin ajatteli vain koodin kirjoittamista, mutta ohjelmointiin kuuluu myös testaaminen. Huolellinen suunnittelu, testaus ja näiden kautta ylläpidettävän, toimivan ja selkeän koodin kirjoittaminen. Testit kiinnittivät monesti huomiota ohjelmissa oleviin ongelmiin, jotka eivät selvinneet ohjelman toimiessa varsin hyvin rajatussa tehtävänannossa. Testit myös auttoivat miettimään, kuinka laajentaa ohjelmien käytettävyyttä parametrien muuttuessa. Haasteita: Se ei ole kivaa, kun itse ohjelma on lyhyt ja testit vievät ohjelmaa enemmän tilaa ja aikaa. Minusta kääntäjän virheilmoitus kertoi enemmän kuin excpected but was Tykkäsin enemmän itse muutella arvoja ja testailla tuleeko oikeita tuloksia.

Challenges GUI-testing Only few (Swing) examples in CS2, not obligatory Understanding that tests are also for later use as are also comments Visual Studio installation (CS1) Too small examples

Future plans Improvements to plug-in (auto-complete, syntax check) Quick Check (random testing) Mutation testing (test quality?) Test protected and private methods To get other users also A content analysis and a phenomenographic study on student conceptions of programming: how well the curriculum supports different areas of expertize, including testing => improving teaching with ComTest (work-in-progress)

Questions?