From the Book: Clean code that works is Ron Jeffries' pithy phrase. The goal is clean code that works, and for a whole bunch of reasons: Clean code that works is a predictable way to develop. You know when you are finished, without having to worry about a long bug trail. Clean code that works gives you a chance to learn all the lessons that the code has to teach you. If you only ever slap together the first thing you think of, you never have time to think of a second, better, thing. Clean code that works improves the lives of users of our software. Clean code that works lets your teammates count on you, and you on them. Writing clean code that works feels good.But how do you get to clean code that works Many forces drive you away from clean code, and even code that works. Without taking too much counsel of our fears, here's what we dodrive development with automated tests, a style of development called Test-Driven Development (TDD for short). In Test-Driven Development, you: Write new code only if you first have a failing automated test. Eliminate duplication. Two simple rules, but they generate complex individual and group behavior. Some of the technical implications are: You must design organically, with running code providing feedback between decisions You must write your own tests, since you can't wait twenty times a day for someone else to write a test Your development environment must provide rapid response to small changes Your designs must consist of many highly cohesive, loosely coupled components, just to make testing easy The two rules imply an order to the tasks ofprogramming: 1. Redwrite a little test that doesn't work, perhaps doesn't even compile at first 2. Greenmake the test work quickly, committing whatever sins necessary in the process 3. Refactoreliminate all the duplication created in just getting the test to work Red/green/refactor. The TDD's mantra. Assuming for the moment that such a style is possible, it might be possible to dramatically reduce the defect density of code and make the subject of work crystal clear to all involved. If so, writing only code demanded by failing tests also has social implications: If the defect density can be reduced enough, QA can shift from reactive to pro-active work If the number of nasty surprises can be reduced enough, project managers can estimate accurately enough to involve real customers in daily development If the topics of technical conversations can be made clear enough, programmers can work in minute-by-minute collaboration instead of daily or weekly collaboration Again, if the defect density can be reduced enough, we can have shippable software with new functionality every day, leading to new business relationships with customers So, the concept is simple, but what's my motivation Why would a programmer take on the additional work of writing automated tests Why would a programmer work in tiny little steps when their mind is capable of great soaring swoops of design Courage.Courage Test-driven development is a way of managing fear during programming. I don't mean fear in a bad way, pow widdle prwogwammew needs a pacifiew, but fear in the legitimate, this-is-a-hard-problem-and-I-can't-see-the-end-from-the-beginning sense. If pain is nature's way of saying Stop!, fear is nature's way of saying Be careful. Being careful is good, but fear has a host of other effects: Makes you tentative Makes you want to communicate less Makes you shy from feedback Makes you grumpy None of these effects are helpful when programming, especially when programming something hard. So, how can you face a difficult situation and: Instead of being tentative, begin learning concretely as quickly as possible. Instead of clamming up, communicate more clearly. Instead of avoiding feedback, search out helpful, concrete feedback. (You'll have to work on grumpiness on your own.) Imagine programming as turning a crank to pull a bucket of water from a well. When the bucket is small, a free-spinning crank is fine. When the bucket is big and full of water, you're going to get tired before the bucket is all the way up. You need a ratchet mechanism to enable you to rest between bouts of cranking. The heavier the bucket, the closer the teeth need to be on the ratchet. The tests in test-driven development are the teeth of the ratchet. Once you get one test working, you know it is working, now and forever. You are one step closer to having everything working than you were when the test was broken. Now get the next one working, and the next, and the next. By analogy, the tougher the programming problem, the less ground should be covered by each test. Readers of Extreme Programming Explained will notice a difference in tone between XP and TDD. TDD isn't an absolute like Extreme Programming. XP says, Here are things you must be able to do to be prepared to evolve further. TDD is a little fuzzier. TDD is an awareness of the gap between decision and feedback during programming, and techniques to control that gap. What if I do a paper design for a week, then test-drive the code Is that TDD Sure, it's TDD. You were aware of the gap between decision and feedback and you controlled the gap deliberately. That said, most people who learn TDD find their programming practice changed for good. Test Infected is the phrase Erich Gamma coined to describe this shift. You might find yourself writing more tests earlier, and working in smaller steps than you ever dreamed would be sensible. On the other hand, some programmers learn TDD and go back to their earlier practices, reserving TDD for special occasions when ordinary programming isn't making progress. There are certainly programming tasks that can't be driven solely by tests (or at least, not yet). Security software and concurrency, for example, are two topics where TDD is not sufficient to mechanically demonstrate that the goals of the software have been met. Security relies on essentially defect-free code, true, but also on human judgement about the methods used to secure the software. Subtle concurrency problems can't be reliably duplicated by running the code. Once you are finished reading this book, you should be ready to: Start simply Write automated tests Refactor to add design decisions one at a time This book is organized into three sections. An example of writing typical model code using TDD. The example is one I got from Ward Cunningham years ago, and have used many times since, multi-currency arithmetic. In it you will learn to write tests before code and grow a design organically. An example of testing more complicated logic, including reflection and exceptions, by developing a framework for automated testing. This example also serves to introduce you to the xUnit architecture that is at the heart of many programmer-oriented testing tools. In the second example you will learn to work in even smaller steps than in the first example, including the kind of self-referential hooha beloved of computer scientists. Patterns for TDD. Included are patterns for the deciding what tests to write, how to write tests using xUnit, and a greatest hits selection of the design patterns and refactorings used in the examples. I wrote the examples imagining a pair programming session. If you like looking at the map before wandering around, you may want to go straight to the patterns in Section 3 and use the examples as illustrations. If you prefer just wandering around and then looking at the map to see where you've been, try reading the examples through and refering to the patterns when you want more detail about a technique, then using the patterns as a reference. Several reviewers have commented they got the most out of the examples when they started up a programming environment and entered the code and ran the tests as they read. A note about the examples. Both examples, multi-currency calculation and a testing framework, appear simple. There are (and I have seen) complicated, ugly, messy ways of solving the same problems. I could have chosen one of those complicated, ugly, messy solutions to give the book an air of reality. However, my goal, and I hope your goal, is to write clean code that works. Before teeing off on the examples as being too simple, spend 15 seconds imagining a programming world in which all code was this clear and direct, where there were no complicated solutions, only apparently complicated problems begging for careful thought. TDD is a practice that can help you lead yourself to exactly that careful thought.
Cited By
- Mathews N and Nagappan M Test-Driven Development and LLM-based Code Generation Proceedings of the 39th IEEE/ACM International Conference on Automated Software Engineering, (1583-1594)
- Padhye R Software Engineering Methods for AI-Driven Deductive Legal Reasoning Proceedings of the 2024 ACM SIGPLAN International Symposium on New Ideas, New Paradigms, and Reflections on Programming and Software, (85-95)
- Lemos O, Silveira F, Ferrari F, Silva T, Guerra E and Garcia A (2024). Unraveling the code: an in-depth empirical study on the impact of development practices in auxiliary functions implementation, Software Quality Journal, 32:3, (1137-1174), Online publication date: 1-Sep-2024.
- Long P and Zhao J (2024). Testing Multi-Subroutine Quantum Programs: From Unit Testing to Integration Testing, ACM Transactions on Software Engineering and Methodology, 33:6, (1-61), Online publication date: 31-Jul-2024.
- Hora A PathSpotter: Exploring Tested Paths to Discover Missing Tests Companion Proceedings of the 32nd ACM International Conference on the Foundations of Software Engineering, (647-651)
- Hora A Predicting Test Results without Execution Companion Proceedings of the 32nd ACM International Conference on the Foundations of Software Engineering, (542-546)
- Hora A Test Polarity: Detecting Positive and Negative Tests Companion Proceedings of the 32nd ACM International Conference on the Foundations of Software Engineering, (537-541)
- Siddiq M, Da Silva Santos J, Tanvir R, Ulfat N, Al Rifat F and Carvalho Lopes V Using Large Language Models to Generate JUnit Tests: An Empirical Study Proceedings of the 28th International Conference on Evaluation and Assessment in Software Engineering, (313-322)
- Bettini L, Di Salle A, Iovino L and Pierantonio A (2024). Supporting reusable model migration with Edelta, Journal of Systems and Software, 212:C, Online publication date: 1-Jun-2024.
- Krings S, Körner P, Dunkelau J and Rutenkolk K (2024). A verified low-level implementation and visualization of the adaptive exterior light and speed control system, International Journal on Software Tools for Technology Transfer (STTT), 26:3, (403-419), Online publication date: 1-Jun-2024.
- Methfessel P, Beckmann T, Rein P, Ramson S and Hirschfeld R MµSE: Supporting Exploration of Software-Hardware Interactions Through Examples Proceedings of the 2024 CHI Conference on Human Factors in Computing Systems, (1-16)
- Berente N, Kormylo C and Rosenkranz C (2024). Test-Driven Ethics for Machine Learning, Communications of the ACM, 67:5, (45-47), Online publication date: 1-May-2024.
- Mafi Z and Mirian-Hosseinabadi S (2023). Regression test selection in test-driven development, Automated Software Engineering, 31:1, Online publication date: 1-May-2024.
- Pintz M, Becker D and Mock M PARMA: a Platform Architecture to enable Automated, Reproducible, and Multi-party Assessments of AI Trustworthiness Proceedings of the 2nd International Workshop on Responsible AI Engineering, (20-27)
- Hora A TestDossier: A Dataset of Tested Values Automatically Extracted from Test Execution Proceedings of the 21st International Conference on Mining Software Repositories, (299-303)
- Kim K, Ghatpande S, Kim D, Zhou X, Liu K, Bissyandé T, Klein J and Le Traon Y (2023). Big Code Search: A Bibliography, ACM Computing Surveys, 56:1, (1-49), Online publication date: 31-Jan-2024.
- Ren W Gamification in Test-Driven Development Practice Proceedings of the 2nd International Workshop on Gamification in Software Development, Verification, and Validation, (38-46)
- Garfinkel S and Stewart J (2023). Sharpening Your Tools, Communications of the ACM, 66:8, (44-52), Online publication date: 1-Aug-2023.
- Ren W and Barrett S (2023). Test‐driven development, engagement in activity, and maintainability, IET Software, 17:4, (509-525), Online publication date: 27-Jul-2023.
- Fiebig T Crisis, Ethics, Reliability & a measurement.network Proceedings of the 2023 Applied Networking Research Workshop, (44-50)
- van Spaendonck P Efficient Dynamic Model Based Testing Formal Techniques for Distributed Objects, Components, and Systems, (173-188)
- Aljedaani W, Mkaouer M, Peruma A and Ludi S Do the Test Smells Assertion Roulette and Eager Test Impact Students' Troubleshooting and Debugging Capabilities? Proceedings of the 45th International Conference on Software Engineering: Software Engineering Education and Training, (29-39)
- Buffardi K Cognitive Reflection in Software Verification and Testing Proceedings of the 45th International Conference on Software Engineering: Software Engineering Education and Training, (1-10)
- Calais P and Franzini L Test-Driven Development Benefits beyond Design Quality: Flow State and Developer Experience Proceedings of the 45th International Conference on Software Engineering: New Ideas and Emerging Results, (106-111)
- Wang X, Xiao L, Yu T, Woepse A and Wong S (2023). From Inheritance to Mockito: An Automatic Refactoring Approach, IEEE Transactions on Software Engineering, 49:4, (2791-2814), Online publication date: 1-Apr-2023.
- Garfinkel S and Stewart J (2023). Sharpening Your Tools, Queue, 21:1, (30-56), Online publication date: 28-Feb-2023.
- Lonati V, Brodnik A, Bell T, Csizmadia A, De Mol L, Hickman H, Keane T, Mirolo C and Monga M What We Talk About When We Talk About Programs Proceedings of the 2022 Working Group Reports on Innovation and Technology in Computer Science Education, (117-164)
- Jones W, Gun P and Foumani M An MVP Approach to Developing Complex Hybrid Simulation Models Proceedings of the Winter Simulation Conference, (1176-1187)
- Robe P, Kuttal S, AuBuchon J and Hart J Pair programming conversations with agents vs. developers: challenges and opportunities for SE community Proceedings of the 30th ACM Joint European Software Engineering Conference and Symposium on the Foundations of Software Engineering, (319-331)
- Fuksa M ViMoTest Proceedings of the 25th International Conference on Model Driven Engineering Languages and Systems: Companion Proceedings, (189-194)
- Liu Y, Nie P, Legunsen O and Gligoric M Inline Tests Proceedings of the 37th IEEE/ACM International Conference on Automated Software Engineering, (1-13)
- Romano S, Zampetti F, Baldassarre M, Di Penta M and Scanniello G Do Static Analysis Tools Affect Software Quality when Using Test-driven Development? Proceedings of the 16th ACM / IEEE International Symposium on Empirical Software Engineering and Measurement, (80-91)
- Rodler P (2022). One step at a time, Knowledge-Based Systems, 251:C, Online publication date: 5-Sep-2022.
- Chen H, Miao Y, Chen L, Sun H, Xu H, Liu L, Zhang G and Wang W Software-defined network assimilation Proceedings of the ACM SIGCOMM 2022 Conference, (281-297)
- Kang H, Nguyen T, Le B, Păsăreanu C and Lo D Test mimicry to assess the exploitability of library vulnerabilities Proceedings of the 31st ACM SIGSOFT International Symposium on Software Testing and Analysis, (276-288)
- Persiani S, Daquino M and Peroni S A Programming Interface for Creating Data According to the SPAR Ontologies and the OpenCitations Data Model The Semantic Web, (305-322)
- Hofbauer M, Bachhuber C, Kuhn C and Steinbach E Teaching software engineering as programming over time Proceedings of the 4th International Workshop on Software Engineering Education for the Next Generation, (51-58)
- Papis B, Grochowski K, Subzda K and Sijko K (2022). Experimental Evaluation of Test-Driven Development With Interns Working on a Real Industrial Project, IEEE Transactions on Software Engineering, 48:5, (1644-1664), Online publication date: 1-May-2022.
- Arab M, LaToza T, Liang J and Ko A An Exploratory Study of Sharing Strategic Programming Knowledge Proceedings of the 2022 CHI Conference on Human Factors in Computing Systems, (1-15)
- Chatley R, Donaldson A and Mycroft A The Next 7000 Programming Languages Computing and Software Science, (250-282)
- Baldassarre M, Caivano D, Fucci D, Romano S and Scanniello G (2022). Affective reactions and test-driven development, Journal of Systems and Software, 185:C, Online publication date: 1-Mar-2022.
- Pike M, Lee B and Towey D (2022). TAFFIES: Tailored Automated Feedback Framework for Developing Integrated and Extensible Feedback Systems, SN Computer Science, 3:2, Online publication date: 1-Mar-2022.
- Fernández-Izquierdo A and García-Castro R (2022). Ontology verification testing using lexico-syntactic patterns, Information Sciences: an International Journal, 582:C, (89-113), Online publication date: 1-Jan-2022.
- Chioteli E, Batas I and Spinellis D Does Unit-Tested Code Crash? A Case Study of Eclipse Proceedings of the 25th Pan-Hellenic Conference on Informatics, (260-264)
- Wang X, Xiao L, Yu T, Woepse A and Wong S An automatic refactoring framework for replacing test-production inheritance by mocking mechanism Proceedings of the 29th ACM Joint Meeting on European Software Engineering Conference and Symposium on the Foundations of Software Engineering, (540-552)
- Espinoza-Arias P, Garijo D and Corcho O (2021). Crossing the chasm between ontology engineering and application development, Web Semantics: Science, Services and Agents on the World Wide Web, 70:C, Online publication date: 1-Jul-2021.
- Koo Y, Kim S and Ha Y (2021). OpenCL-Darknet: implementation and optimization of OpenCL-based deep learning object detection framework, World Wide Web, 24:4, (1299-1319), Online publication date: 1-Jul-2021.
- Tan S, Hu C, Li Z, Zhang X and Zhou Y GitHub-OSS fixit Proceedings of the 43rd International Conference on Software Engineering: Joint Track on Software Engineering Education and Training, (1-10)
- Eloe N (2021). Teach like a git, Journal of Computing Sciences in Colleges, 36:6, (27-36), Online publication date: 1-Apr-2021.
- Fisher M, Mascardi V, Rozier K, Schlingloff B, Winikoff M and Yorke-Smith N (2020). Towards a framework for certification of reliable autonomous systems, Autonomous Agents and Multi-Agent Systems, 35:1, Online publication date: 1-Apr-2021.
- kaneshige Y, Satake S, Kanda T and Imai M How to Overcome the Difficulties in Programming and Debugging Mobile Social Robots? Proceedings of the 2021 ACM/IEEE International Conference on Human-Robot Interaction, (361-369)
- Kroll J Outlining Traceability Proceedings of the 2021 ACM Conference on Fairness, Accountability, and Transparency, (758-771)
- Roman A and Mnich M (2021). Test-driven development with mutation testing – an experimental study, Software Quality Journal, 29:1, (1-38), Online publication date: 1-Mar-2021.
- Santos A, Vegas S, Oivo M and Juristo N (2021). Comparing the results of replications in software engineering, Empirical Software Engineering, 26:2, Online publication date: 1-Mar-2021.
- Güncan D and Onay Durdu P (2020). A user‐centered behavioral software development model, Journal of Software: Evolution and Process, 33:2, Online publication date: 14-Feb-2021.
- Ciancarini P, Masyagin S and Succi G Software design as story telling: reflecting on the work of Italo Calvino Proceedings of the 2020 ACM SIGPLAN International Symposium on New Ideas, New Paradigms, and Reflections on Programming and Software, (195-208)
- Nascimento N, Santos A, Sales A and Chanin R Behavior-Driven Development Proceedings of the XXXIV Brazilian Symposium on Software Engineering, (41-46)
- Reginaldo F and Santos G Challenges in Agile Transformation Journey Proceedings of the XXXIV Brazilian Symposium on Software Engineering, (11-20)
- Şerban C, Niculescu V and Vescan A Attaining competences in software quality oriented design based on cyclic learning 2020 IEEE Frontiers in Education Conference (FIE), (1-9)
- Silva L and Vilain P LCCSS Proceedings of the 14th Brazilian Symposium on Software Components, Architectures, and Reuse, (91-100)
- Pereira G, Nunes I and Pimenta M Test-case-based Code Navigation in Dynamically Typed Programming Languages Proceedings of the 14th Brazilian Symposium on Software Components, Architectures, and Reuse, (81-90)
- Kussmaul C Patterns in activity models for process oriented guided inquiry learning (POGIL) Proceedings of the 27th Conference on Pattern Languages of Programs, (1-18)
- Parsai A and Demeyer S (2020). Comparing mutation coverage against branch coverage in an industrial setting, International Journal on Software Tools for Technology Transfer (STTT), 22:4, (365-388), Online publication date: 1-Aug-2020.
- Liem C and Panichella A Oracle Issues in Machine Learning and Where to Find Them Proceedings of the IEEE/ACM 42nd International Conference on Software Engineering Workshops, (483-488)
- Nascimento N, Santos A, Sales A and Chanin R Behavior-Driven Development Proceedings of the IEEE/ACM 42nd International Conference on Software Engineering Workshops, (109-116)
- Edmison B and Edwards S Turn up the heat! Proceedings of the ACM/IEEE 42nd International Conference on Software Engineering: Software Engineering Education and Training, (34-44)
- Krings S, Körner P, Dunkelau J and Rutenkolk C A Verified Low-Level Implementation of the Adaptive Exterior Light and Speed Control System Rigorous State-Based Methods, (382-397)
- Truscan D, Ahmad T and Tran C Applying Test-Driven Development for Improved Feedback and Automation of Grading in Academic Courses on Software Development Frontiers in Software Engineering Education, (310-323)
- Medeiros H, Vilain P, Mylopoulos J and Jacobsen H SolUnit Proceedings of the 29th Annual International Conference on Computer Science and Software Engineering, (264-273)
- Ziegler A, Geus J, Heinloth B, Hönig T and Lohmann D (2019). Honey, I Shrunk the ELFs, ACM Transactions on Embedded Computing Systems, 18:5s, (1-23), Online publication date: 31-Oct-2019.
- Tarasov A Assessing Job Satisfaction of Software Engineers Using GQM Approach Software Technology: Methods and Tools, (121-135)
- Grano G, Palomba F, Di Nucci D, De Lucia A and Gall H (2019). Scented since the beginning, Journal of Systems and Software, 156:C, (312-327), Online publication date: 1-Oct-2019.
- Palomba F and Zaidman A (2019). The smell of fear: on the relation between test smells and flaky tests, Empirical Software Engineering, 24:5, (2907-2946), Online publication date: 1-Oct-2019.
- Fazzolino R and Rodrigues G Feature-Trace Proceedings of the XXXIII Brazilian Symposium on Software Engineering, (332-336)
- Wiecher C, Greenyer J and Korte J Test-driven scenario specification of automotive software components Proceedings of the 22nd International Conference on Model Driven Engineering Languages and Systems, (12-17)
- Meixner K, Winkler D and Biffl S Supporting Domain Experts by using Model-Based Equivalence Class Partitioning for Efficient Test Data Generation 2019 24th IEEE International Conference on Emerging Technologies and Factory Automation (ETFA), (134-141)
- Koyuncu A, Liu K, Bissyandé T, Kim D, Monperrus M, Klein J and Le Traon Y iFixR: bug report driven program repair Proceedings of the 2019 27th ACM Joint Meeting on European Software Engineering Conference and Symposium on the Foundations of Software Engineering, (314-325)
- Danglot B, Vera-Pérez O, Baudry B and Monperrus M (2019). Automatic test improvement with DSpot, Empirical Software Engineering, 24:4, (2603-2635), Online publication date: 1-Aug-2019.
- De Bleser J, Di Nucci D and De Roover C SoCRATES Proceedings of the Tenth ACM SIGPLAN Symposium on Scala, (22-26)
- Grano G A new dimension of test quality: assessing and generating higher quality unit test cases Proceedings of the 28th ACM SIGSOFT International Symposium on Software Testing and Analysis, (419-423)
- Rodler P and Eichholzer M On the Usefulness of Different Expert Question Types for Fault Localization in Ontologies Advances and Trends in Artificial Intelligence. From Theory to Practice, (360-375)
- Szabo C and Pointon M Final Year Students' Approaches to Implementing Complex Distributed Systems Proceedings of the 2019 ACM Conference on Innovation and Technology in Computer Science Education, (217-223)
- Losada B, López-Gil J and Urretavizcaya M Improving Agile Software Development Methods by means of User Objectives Proceedings of the XX International Conference on Human Computer Interaction, (1-4)
- Udupi S, Urdahl J, Stoffel D and Kunz W (2019). Exploiting Hardware Unobservability for Low-Power Design and Safety Analysis in Formal Verification-Driven Design Flows, IEEE Transactions on Very Large Scale Integration (VLSI) Systems, 27:6, (1262-1275), Online publication date: 1-Jun-2019.
- Gergely T, Balogh G, Horváth F, Vancsics B, Beszédes Á and Gyimóthy T (2019). Differences between a static and a dynamic test-to-code traceability recovery method, Software Quality Journal, 27:2, (797-822), Online publication date: 1-Jun-2019.
- Spadini D, Aniche M, Bruntink M and Bacchelli A (2019). Mock objects for testing java systems, Empirical Software Engineering, 24:3, (1461-1498), Online publication date: 1-Jun-2019.
- Matthies C, Huegle J, Dürschmid T and Teusner R Attitudes, beliefs, and development data concerning agile software development practices Proceedings of the 41st International Conference on Software Engineering: Software Engineering Education and Training, (158-169)
- Ríos J, Kopec-Harding K, Eraslan S, Page C, Haines R, Jay C and Embury S A methodology for using GitLab for software engineering learning analytics Proceedings of the 12th International Workshop on Cooperative and Human Aspects of Software Engineering, (3-6)
- De Bleser J, Di Nucci D and De Roover C Assessing diffusion and perception of test smells in scala projects Proceedings of the 16th International Conference on Mining Software Repositories, (457-467)
- Spadini D, Palomba F, Baum T, Hanenberg S, Bruntink M and Bacchelli A Test-driven code review Proceedings of the 41st International Conference on Software Engineering, (1061-1072)
- Tarasov A Impact of lifestyle and working process organization on the job satisfaction level of software engineers Proceedings of the 41st International Conference on Software Engineering: Companion Proceedings, (177-179)
- Florea R and Stray V A global view on the hard skills and testing tools in software testing Proceedings of the 14th International Conference on Global Software Engineering, (133-141)
- Medeiros H, Vilain P and Pereira V Reducing the execution time of unit tests of smart contracts in blockchain platforms Proceedings of the XV Brazilian Symposium on Information Systems, (1-8)
- Craig M, Petersen A and Campbell J Answering the Correct Question Proceedings of the ACM Conference on Global Computing Education, (72-77)
- Kim M and Lee E A novel approach to automatic query reformulation for IR-based bug localization Proceedings of the 34th ACM/SIGAPP Symposium on Applied Computing, (1752-1759)
- Mens T, Decan A and Spanoudakis N (2019). A method for testing and validating executable statechart models, Software and Systems Modeling (SoSyM), 18:2, (837-863), Online publication date: 1-Apr-2019.
- López-Fernández J, Garmendia A, Guerra E and Lara J (2019). An example is worth a thousand words, Software and Systems Modeling (SoSyM), 18:2, (961-993), Online publication date: 1-Apr-2019.
- Kazerouni A, Shaffer C, Edwards S and Servant F Assessing Incremental Testing Practices and Their Impact on Project Outcomes Proceedings of the 50th ACM Technical Symposium on Computer Science Education, (407-413)
- Buffardi K, Valdivia P and Rogers D Measuring Unit Test Accuracy Proceedings of the 50th ACM Technical Symposium on Computer Science Education, (578-584)
- Oka A, Masuhara H and Aotani T Live, synchronized, and mental map preserving visualization for data structure programming Proceedings of the 2018 ACM SIGPLAN International Symposium on New Ideas, New Paradigms, and Reflections on Programming and Software, (72-87)
- Zaytsev V An industrial case study in compiler testing (tool demo) Proceedings of the 11th ACM SIGPLAN International Conference on Software Language Engineering, (97-102)
- Warner J, Lafreniere B, Fitzmaurice G and Grossman T ElectroTutor Proceedings of the 31st Annual ACM Symposium on User Interface Software and Technology, (435-446)
- Fucci D, Romano S, Baldassarre M, Caivano D, Scanniello G, Turhan B and Juristo N A longitudinal cohort study on the retainment of test-driven development Proceedings of the 12th ACM/IEEE International Symposium on Empirical Software Engineering and Measurement, (1-10)
- Stratis P, Yaneva V and Rajan A Assessing the effect of data transformations on test suite compilation Proceedings of the 12th ACM/IEEE International Symposium on Empirical Software Engineering and Measurement, (1-10)
- Bijlsma A, Passier H, Pootjes H and Stuurman S Integrated Test Development Proceedings of the 7th Computer Science Education Research Conference, (9-20)
- Alquraan A, Takruri H, Alfatafta M and Al-Kiswany S An analysis of network-partitioning failures in cloud systems Proceedings of the 13th USENIX conference on Operating Systems Design and Implementation, (51-68)
- de Oliveira C, Canedo E, Faria H, Amaral L and Bonifácio R Improving Student’s Learning and Cooperation Skills Using Coding Dojos (In the Wild!) 2018 IEEE Frontiers in Education Conference (FIE), (1-8)
- Fan X Orchestrating Agile Sprint Reviews in Undergraduate Capstone Projects 2018 IEEE Frontiers in Education Conference (FIE), (1-8)
- Fazzolino R, de Faria H, Amaral L, Canedo E, Rodrigues G and Bonifácio R Assessing Agile Testing Practices for Enterprise Systems Proceedings of the III Brazilian Symposium on Systematic and Automated Software Testing, (29-38)
- Nezhad A, Lukkien J and Mak R Behavior-driven Development for Real-time Embedded Systems 2018 IEEE 23rd International Conference on Emerging Technologies and Factory Automation (ETFA), (59-66)
- Karpov Y, Karpov L and Smetanin Y (2018). Adaptation of General Concepts of Software Testing to Neural Networks, Programming and Computing Software, 44:5, (324-334), Online publication date: 1-Sep-2018.
- Bouraqadi N and Mason D (2018). Test-driven development for generated portable Javascript apps, Science of Computer Programming, 161:C, (2-17), Online publication date: 1-Sep-2018.
- Akerele O (2018). System dynamics modelling of the impact of agile practice on the quality of continuous delivery projects, Innovations in Systems and Software Engineering, 14:3, (183-208), Online publication date: 1-Sep-2018.
- Borle N, Feghhi M, Stroulia E, Greiner R and Hindle A (2018). Analyzing the effects of test driven development in GitHub, Empirical Software Engineering, 23:4, (1931-1958), Online publication date: 1-Aug-2018.
- Blasquez I and Leblanc H Experience in learning test-driven development: space invaders project-driven Proceedings of the 23rd Annual ACM Conference on Innovation and Technology in Computer Science Education, (111-116)
- Ju A and Fox A TEAMSCOPE: measuring software engineering processes with teamwork telemetry Proceedings of the 23rd Annual ACM Conference on Innovation and Technology in Computer Science Education, (123-128)
- Karac I and Turhan B (2018). What Do We (Really) Know about Test-Driven Development?, IEEE Software, 35:4, (81-85), Online publication date: 1-Jul-2018.
- Munari S, Valle S and Vardanega T Microservice-Based Agile Architectures: An Opportunity for Specialized Niche Technologies Reliable Software Technologies – Ada-Europe 2018, (158-174)
- Kessel M and Atkinson C Integrating reuse into the rapid, continuous software engineering cycle through test-driven search Proceedings of the 4th International Workshop on Rapid Continuous Software Engineering, (8-11)
- Grano G, Scalabrino S, Gall H and Oliveto R An empirical investigation on the readability of manual and generated test cases Proceedings of the 26th Conference on Program Comprehension, (348-351)
- Li B, Vendome C, Linares-Vásquez M and Poshyvanyk D Aiding comprehension of unit test cases and test suites with stereotype-based tagging Proceedings of the 26th Conference on Program Comprehension, (52-63)
- Russo D, Taccogna G, Ciancarini P, Messina A and Succi G Contracting agile developments for mission critical systems in the public sector Proceedings of the 40th International Conference on Software Engineering: Software Engineering in Society, (47-56)
- Tosun A, Ahmed M, Turhan B and Juristo N On the effectiveness of unit tests in test-driven development Proceedings of the 2018 International Conference on Software and System Process, (113-122)
- Lundene K and Mohagheghi P How autonomy emerges as agile cross-functional teams mature Proceedings of the 19th International Conference on Agile Software Development: Companion, (1-5)
- Holzworth D, Huth N, Fainges J, Brown H, Zurcher E, Cichota R, Verrall S, Herrmann N, Zheng B and Snow V (2018). APSIM Next Generation, Environmental Modelling & Software, 103:C, (43-51), Online publication date: 1-May-2018.
- Haisjackl C, Soffer P, Lim S and Weber B (2018). How do humans inspect BPMN models, Software and Systems Modeling (SoSyM), 17:2, (655-673), Online publication date: 1-May-2018.
- Dimanidis A, Chatzidimitriou K and Symeonidis A A Natural Language Driven Approach for Automated Web API Development Companion Proceedings of the The Web Conference 2018, (1869-1874)
- Videla A Lector in Codigo or the role of the reader Companion Proceedings of the 2nd International Conference on the Art, Science, and Engineering of Programming, (180-186)
- Tsukamoto K, Maezawa Y and Honiden S AutoPUT Proceedings of the 33rd Annual ACM Symposium on Applied Computing, (1944-1951)
- Buchwald H Subject-Orientation and Agility Proceedings of the 10th International Conference on Subject-Oriented Business Process Management, (1-7)
- Gestwicki P Design and Evaluation of an Undergraduate Course on Software Development Practices Proceedings of the 49th ACM Technical Symposium on Computer Science Education, (221-226)
- Börstler J, Störrle H, Toll D, van Assema J, Duran R, Hooshangi S, Jeuring J, Keuning H, Kleiner C and MacKellar B "I know it when I see it" Perceptions of Code Quality Proceedings of the 2017 ITiCSE Conference on Working Group Reports, (70-85)
- Hsieh C, Ye S, Hua R and Huang S Development and Analysis of Synchronization Detection Framework in TDD Proceedings of the 2018 2nd International Conference on Management Engineering, Software Engineering and Service Sciences, (167-171)
- da R. Rodrigues P, Franz L, Cheiran J, da Silva J and Bordin A Coding Dojo as a transforming practice in collaborative learning of programming Proceedings of the XXXI Brazilian Symposium on Software Engineering, (348-357)
- Nascimento L and Travassos G Software Knowledge Registration Practices at Software Innovation Startups Proceedings of the XXXI Brazilian Symposium on Software Engineering, (234-243)
- Polito G, Ducasse S and Fabresse L First-Class Undefined Classes for Pharo Proceedings of the 12th edition of the International Workshop on Smalltalk Technologies, (1-8)
- Cheresharov S, Krushkov H, Stoyanov S and Popchev I (2017). Modules for Rapid Application Development of Web-Based Information Systems (RADWIS), Cybernetics and Information Technologies, 17:3, (109-127), Online publication date: 1-Sep-2017.
- Bettini L and Damiani F (2017). Xtraitj, Journal of Systems and Software, 131:C, (419-441), Online publication date: 1-Sep-2017.
- Naumchev A and Meyer B (2017). Seamless requirements, Computer Languages, Systems and Structures, 49:C, (119-132), Online publication date: 1-Sep-2017.
- Fucci D, Erdogmus H, Turhan B, Oivo M and Juristo N (2017). A Dissection of the Test-Driven Development Process: Does It Really Matter to Test-First or to Test-Last?, IEEE Transactions on Software Engineering, 43:7, (597-614), Online publication date: 1-Jul-2017.
- Dietrich J, Sui L, Rasheed S and Tahir A On the construction of soundness oracles Proceedings of the 6th ACM SIGPLAN International Workshop on State Of the Art in Program Analysis, (37-42)
- Chen L (2017). Continuous Delivery, Journal of Systems and Software, 128:C, (72-86), Online publication date: 1-Jun-2017.
- Bowes D, Hall T, Petrić J, Shippey T and Turhan B How good are my tests? Proceedings of the 8th Workshop on Emerging Trends in Software Metrics, (9-14)
- Spadini D, Aniche M, Bruntink M and Bacchelli A To mock or not to mock? Proceedings of the 14th International Conference on Mining Software Repositories, (402-412)
- Laukkarinen T, Kuusinen K and Mikkonen T DevOps in regulated software development Proceedings of the 39th International Conference on Software Engineering: New Ideas and Emerging Results Track, (15-18)
- Roopa M, Sankarasubbiah C and Mani V Usable software at the end of each takt Proceedings of the 12th International Conference on Global Software Engineering, (116-120)
- Mikami H, Sakamoto D and Igarashi T Micro-Versioning Tool to Support Experimentation in Exploratory Programming Proceedings of the 2017 CHI Conference on Human Factors in Computing Systems, (6208-6219)
- Hermans F and Aldewereld M Programming is Writing is Programming Companion Proceedings of the 1st International Conference on the Art, Science, and Engineering of Programming, (1-8)
- Oka A, Masuhara H, Imai T and Aotani T Live Data Structure Programming Companion Proceedings of the 1st International Conference on the Art, Science, and Engineering of Programming, (1-7)
- Wang R, Azab A, Enck W, Li N, Ning P, Chen X, Shen W and Cheng Y SPOKE Proceedings of the 2017 ACM on Asia Conference on Computer and Communications Security, (612-624)
- Edmison B, Edwards S and Pérez-Quiñones M Using Spectrum-Based Fault Location and Heatmaps to Express Debugging Suggestions to Student Programmers Proceedings of the Nineteenth Australasian Computing Education Conference, (48-54)
- Paul J (2016). Test-driven approach in programming pedagogy, Journal of Computing Sciences in Colleges, 32:2, (53-60), Online publication date: 1-Dec-2016.
- López-Fernández J, Guerra E and de Lara J (2016). Combining unit and specification-based testing for meta-model validation and verification, Information Systems, 62:C, (104-135), Online publication date: 1-Dec-2016.
- Longo D, Vilain P, da Silva L and Mello R A web framework for test automation Proceedings of the 18th International Conference on Information Integration and Web-based Applications and Services, (458-467)
- Urdahl J, Udupi S, Ludwig T, Stoffel D and Kunz W Properties first? A new design methodology for hardware, and its perspectives in safety analysis 2016 IEEE/ACM International Conference on Computer-Aided Design (ICCAD), (1-8)
- Häser F, Felderer M and Breu R (2016). Is business domain language support beneficial for creating test case specifications, Information and Software Technology, 79:C, (52-62), Online publication date: 1-Nov-2016.
- Chabot M, Pierre L and Nabais-Moreno A A requirement driven testing method for multi-disciplinary system design Proceedings of the ACM/IEEE 19th International Conference on Model Driven Engineering Languages and Systems, (396-405)
- Munro D, Calitz A and Vogts D AARemu Proceedings of the Annual Conference of the South African Institute of Computer Scientists and Information Technologists, (1-9)
- Richenhagen J, Rumpe B, Schloßer A, Schulze C, Thissen K and von Wenckstern M Test-driven semantical similarity analysis for software product line extraction Proceedings of the 20th International Systems and Software Product Line Conference, (174-183)
- Fucci D, Scanniello G, Romano S, Shepperd M, Sigweni B, Uyaguari F, Turhan B, Juristo N and Oivo M An External Replication on the Effects of Test-driven Development Using a Multi-site Blind Analysis Approach Proceedings of the 10th ACM/IEEE International Symposium on Empirical Software Engineering and Measurement, (1-10)
- Lübke D and van Lessen T (2016). Modeling Test Cases in BPMN for Behavior-Driven Development, IEEE Software, 33:5, (15-21), Online publication date: 1-Sep-2016.
- Öqvist J, Hedin G and Magnusson B Extraction-Based Regression Test Selection Proceedings of the 13th International Conference on Principles and Practices of Programming on the Java Platform: Virtual Machines, Languages, and Tools, (1-10)
- Passier H, Bijlsma L and Bockisch C Maintaining Unit Tests During Refactoring Proceedings of the 13th International Conference on Principles and Practices of Programming on the Java Platform: Virtual Machines, Languages, and Tools, (1-6)
- Tufano M, Palomba F, Bavota G, Di Penta M, Oliveto R, De Lucia A and Poshyvanyk D An empirical investigation into the nature of test smells Proceedings of the 31st IEEE/ACM International Conference on Automated Software Engineering, (4-15)
- Bouraqadi N and Mason D Mocks, Proxies, and Transpilation as Development Strategies for Web Development Proceedings of the 11th edition of the International Workshop on Smalltalk Technologies, (1-6)
- Palomba F, Panichella A, Zaidman A, Oliveto R and De Lucia A Automatic test case generation: what if test code quality matters? Proceedings of the 25th International Symposium on Software Testing and Analysis, (130-141)
- Tang T, Smith R, Rixner S and Warren J Data-Driven Test Case Generation for Automated Programming Assessment Proceedings of the 2016 ACM Conference on Innovation and Technology in Computer Science Education, (260-265)
- Romano S, Fucci D, Scanniello G, Turhan B and Juristo N Results from an Ethnographically-informed Study in the Context of Test Driven Development Proceedings of the 20th International Conference on Evaluation and Assessment in Software Engineering, (1-10)
- Bissi W, Serra Seca Neto A and Emer M (2016). The effects of test driven development on internal quality, external quality and productivity, Information and Software Technology, 74:C, (45-54), Online publication date: 1-Jun-2016.
- Riesco A and Rodríguez-Hortalá J Temporal Random Testing for Spark Streaming Proceedings of the 12th International Conference on Integrated Formal Methods - Volume 9681, (393-408)
- Keet C and Ławrynowicz A Test-Driven Development of Ontologies Proceedings of the 13th International Conference on The Semantic Web. Latest Advances and New Domains - Volume 9678, (642-657)
- Anwar A, Kamel A and Ahmed E Agile Adoption Case Study, Pains, Challenges & Benefits Proceedings of the 2nd Africa and Middle East Conference on Software Engineering, (60-65)
- Estácio B, Zieris F, Prechelt L and Prikladnicki R On the randori training dynamics Proceedings of the 9th International Workshop on Cooperative and Human Aspects of Software Engineering, (44-47)
- Palomba F, Di Nucci D, Panichella A, Oliveto R and De Lucia A On the diffusion of test smells in automatically generated test code Proceedings of the 9th International Workshop on Search-Based Software Testing, (5-14)
- Luo Q, Poshyvanyk D, Nair A and Grechanik M FOREPOST Proceedings of the 38th International Conference on Software Engineering Companion, (593-596)
- Çulha D (2016). Applying competition-based learning to agile software engineering, Computer Applications in Engineering Education, 24:3, (382-387), Online publication date: 1-May-2016.
- Scanniello G, Romano S, Fucci D, Turhan B and Juristo N Students' and professionals' perceptions of test-driven development Proceedings of the 31st Annual ACM Symposium on Applied Computing, (1422-1427)
- Pachulski Camara B and Graciotto Silva M A Strategy to Combine Test-Driven Development and Test Criteria to Improve Learning of Programming Skills Proceedings of the 47th ACM Technical Symposium on Computing Science Education, (443-448)
- Onggo B and Karatas M Agent-based model of maritime search operations Proceedings of the 2015 Winter Simulation Conference, (254-265)
- Chiş A, Denker M, Gîrba T and Nierstrasz O (2015). Practical domain-specific debuggers using the Moldable Debugger framework, Computer Languages, Systems and Structures, 44:PA, (89-113), Online publication date: 1-Dec-2015.
- Gestwicki P (2015). Teaching game programming with PlayN, Journal of Computing Sciences in Colleges, 31:1, (90-97), Online publication date: 1-Oct-2015.
- Ulrich A Sustainable Architectures Proceedings of the 2015 European Conference on Software Architecture Workshops, (1-2)
- Mitrović D, Ivanović M and Budimac Z Test-driven development of web and enterprise agents Proceedings of the 7th Balkan Conference on Informatics Conference, (1-5)
- Javdani Gandomani T and Ziaei Nafchi M (2015). An empirically-developed framework for Agile transition and adoption, Journal of Systems and Software, 107:C, (204-219), Online publication date: 1-Sep-2015.
- Xiong Y, Hao D, Zhang L, Zhu T, Zhu M and Lan T Inner oracles: input-specific assertions on internal states Proceedings of the 2015 10th Joint Meeting on Foundations of Software Engineering, (902-905)
- Beller M, Gousios G, Panichella A and Zaidman A When, how, and why developers (do not) test in their IDEs Proceedings of the 2015 10th Joint Meeting on Foundations of Software Engineering, (179-190)
- Yue T, Ali S and Zhang M RTCM: a natural language based, automated, and practical test case generation framework Proceedings of the 2015 International Symposium on Software Testing and Analysis, (397-408)
- Parsai A, Murgia A, Soetens Q and Demeyer S Mutation testing as a safety net for test code refactoring Scientific Workshop Proceedings of the XP2015, (1-7)
- Tahir A and MacDonell S Combining dynamic analysis and visualization to explore the distribution of unit test suites Proceedings of the Sixth International Workshop on Emerging Trends in Software Metrics, (21-30)
- Padhye R, Dhoolia P, Mani S and Sinha V Smart programming playgrounds Proceedings of the 37th International Conference on Software Engineering - Volume 2, (607-610)
- Yoon Y and Myers B Supporting selective undo in a code editor Proceedings of the 37th International Conference on Software Engineering - Volume 1, (223-233)
- Fucci D, Turhan B and Oivo M On the effects of programming and testing skills on external quality and productivity in a test-driven development context Proceedings of the 19th International Conference on Evaluation and Assessment in Software Engineering, (1-6)
- Carretero J, Distefano S, Petcu D, Pop D, Rauber T, Runger G and Singh D (2015). Energy-efficient Algorithms for Ultrascale Systems, Supercomputing Frontiers and Innovations: an International Journal, 2:2, (77-104), Online publication date: 6-Apr-2015.
- Anslow C and Maurer F An Experience Report at Teaching a Group Based Agile Software Development Project Course Proceedings of the 46th ACM Technical Symposium on Computer Science Education, (500-505)
- Bradshaw M Ante Up Proceedings of the 46th ACM Technical Symposium on Computer Science Education, (488-493)
- Blaheta D Unci Proceedings of the 46th ACM Technical Symposium on Computer Science Education, (475-480)
- Brambilla M, Brutschy A, Dorigo M and Birattari M (2014). Property-Driven Design for Robot Swarms, ACM Transactions on Autonomous and Adaptive Systems, 9:4, (1-28), Online publication date: 14-Jan-2015.
- Besson F, Moura P, Kon F and Milojicic D (2015). Bringing Test-Driven Development to web service choreographies, Journal of Systems and Software, 99:C, (135-154), Online publication date: 1-Jan-2015.
- Unterholzner M (2014). Improving refactoring tools in Smalltalk using static type inference, Science of Computer Programming, 96:P1, (70-83), Online publication date: 15-Dec-2014.
- Rilee M and Clune T Towards test driven development for computational science with pFUnit Proceedings of the 2nd International workshop on Software Engineering for High Performance Computing in Computational Science and Engineering, (20-27)
- Pham R, Kiesling S, Liskin O, Singer L and Schneider K Enablers, inhibitors, and perceptions of testing in novice software teams Proceedings of the 22nd ACM SIGSOFT International Symposium on Foundations of Software Engineering, (30-40)
- Jörges S and Steffen B Back-To-Back Testing of Model-Based Code Generators Part I of the Proceedings of the 6th International Symposium on Leveraging Applications of Formal Methods, Verification and Validation. Technologies for Mastering Change - Volume 8802, (425-444)
- LaToza T, Towne W, Adriano C and van der Hoek A Microtask programming Proceedings of the 27th annual ACM symposium on User interface software and technology, (43-54)
- Dibble C and Gestwicki P (2014). Refactoring code to increase readability and maintainability, Journal of Computing Sciences in Colleges, 30:1, (41-51), Online publication date: 1-Oct-2014.
- Bettini L and Damiani F Generic traits for the Java platform Proceedings of the 2014 International Conference on Principles and Practices of Programming on the Java platform: Virtual machines, Languages, and Tools, (5-16)
- Fucci D, Turhan B and Oivo M Impact of process conformance on the effects of test-driven development Proceedings of the 8th ACM/IEEE International Symposium on Empirical Software Engineering and Measurement, (1-10)
- Molotnikov Z, Völter M and Ratiu D Automated domain-specific C verification with mbeddr Proceedings of the 29th ACM/IEEE International Conference on Automated Software Engineering, (539-550)
- Guerra E, Moura P, Besson F, Rebouças A and Kon F Patterns for testing distributed systems interaction Proceedings of the 21st Conference on Pattern Languages of Programs, (1-8)
- Guerra E, Aniche M, Gerosa M and Yoder J Preparing for a test driven development session Proceedings of the 21st Conference on Pattern Languages of Programs, (1-12)
- Politz J, Krishnamurthi S and Fisler K In-flow peer-review of tests in test-first programming Proceedings of the tenth annual conference on International computing education research, (11-18)
- Buffardi K and Edwards S Responses to adaptive feedback for software testing Proceedings of the 2014 conference on Innovation & technology in computer science education, (165-170)
- Rajlich V Software evolution and maintenance Future of Software Engineering Proceedings, (133-144)
- Omar C, Aldrich J and Gerkin R Collaborative infrastructure for test-driven scientific model validation Companion Proceedings of the 36th International Conference on Software Engineering, (524-527)
- Beck F, Gulan S, Biegel B, Baltes S and Weiskopf D RegViz: visual debugging of regular expressions Companion Proceedings of the 36th International Conference on Software Engineering, (504-507)
- Fucci D Understanding the dynamics of test-driven development Companion Proceedings of the 36th International Conference on Software Engineering, (690-693)
- Fucci D, Turhan B and Oivo M Conformance factor in test-driven development Proceedings of the 18th International Conference on Evaluation and Assessment in Software Engineering, (1-4)
- Souza C and Figueiredo E How do programmers use optional typing? Proceedings of the 13th international conference on Modularity, (109-120)
- Collier N and Ozik J Test-driven agent-based simulation development Proceedings of the 2013 Winter Simulation Conference: Simulation: Making Decisions in a Complex World, (1551-1559)
- Guerra E, Yoder J, Aniche M and Gerosa M Test-driven development step patterns for designing objects dependencies Proceedings of the 20th Conference on Pattern Languages of Programs, (1-15)
- Heinonen K, Hirvikoski K, Luukkainen M and Vihavainen A Learning agile software engineering practices using coding dojo Proceedings of the 14th annual ACM SIGITE conference on Information technology education, (97-102)
- Khamis M and Nagi K (2013). Designing multi-agent unit tests using systematic test design patterns-(extended version), Engineering Applications of Artificial Intelligence, 26:9, (2128-2142), Online publication date: 1-Oct-2013.
- Tamisier T, Karski P and Feltz F Visualization of Unit and Selective Regression Software Tests Proceedings of the 10th International Conference on Cooperative Design, Visualization, and Engineering - Volume 8091, (227-230)
- Bettini L and Damiani F Pure trait-based programming on the Java platform Proceedings of the 2013 International Conference on Principles and Practices of Programming on the Java Platform: Virtual Machines, Languages, and Tools, (67-78)
- Atkinson C, Kessel M and Schumacher M On the Synergy between Search-Based and Search-Driven Software Engineering Proceedings of the 5th International Symposium on Search Based Software Engineering - Volume 8084, (239-244)
- Buffardi K and Edwards S Effective and ineffective software testing behaviors by novice programmers Proceedings of the ninth annual international ACM conference on International computing education research, (83-90)
- Samimi H, Hicks R, Fogel A and Millstein T Declarative mocking Proceedings of the 2013 International Symposium on Software Testing and Analysis, (246-256)
- Vihavainen A, Vikberg T, Luukkainen M and Pärtel M Scaffolding students' learning using test my code Proceedings of the 18th ACM conference on Innovation and technology in computer science education, (117-122)
- Utting I, Tew A, McCracken M, Thomas L, Bouvier D, Frye R, Paterson J, Caspersen M, Kolikant Y, Sorva J and Wilusz T A fresh look at novice programmers' performance and their teachers' expectations Proceedings of the ITiCSE working group reports conference on Innovation and technology in computer science education-working group reports, (15-32)
- Yu J, Han J, Gunarso S and Versteeg S A business protocol unit testing framework for web service composition Proceedings of the 25th international conference on Advanced Information Systems Engineering, (17-34)
- Dick M, Drangmeister J, Kern E and Naumann S Green software engineering with agile methods Proceedings of the 2nd International Workshop on Green and Sustainable Software, (78-85)
- Hsieh C, Tsai C and Cheng Y Test-duo Proceedings of the 8th International Workshop on Automation of Software Test, (89-92)
- Diepenbeck M, Soeken M, Große D and Drechsler R Towards automatic scenario generation from coverage information Proceedings of the 8th International Workshop on Automation of Software Test, (82-88)
- Greiler M, Zaidman A, Deursen A and Storey M Strategies for avoiding text fixture smells during software evolution Proceedings of the 10th Working Conference on Mining Software Repositories, (387-396)
- Callaú O Supporting incremental programming with ghosts Proceedings of the 2013 International Conference on Software Engineering, (1429-1431)
- Kuhn A On extracting unit tests from interactive live programming sessions Proceedings of the 2013 International Conference on Software Engineering, (1241-1244)
- Janzen D, Clements J and Hilton M An evaluation of interactive test-driven labs with WebIDE in CS0 Proceedings of the 2013 International Conference on Software Engineering, (1090-1098)
- Polikarpova N, Furia C, Pei Y, Wei Y and Meyer B What good are strong specifications? Proceedings of the 2013 International Conference on Software Engineering, (262-271)
- Fidge C, Hogan J and Lister R What vs. how Proceedings of the Fifteenth Australasian Computing Education Conference - Volume 136, (97-106)
- Bowen J, Reeves S and Schweer A A tale of two studies Proceedings of the Fourteenth Australasian User Interface Conference - Volume 139, (81-89)
- Itkonen J Test-driven lecturing Proceedings of the 12th Koli Calling International Conference on Computing Education Research, (141-142)
- Guerra E Fundamental test driven development step patterns Proceedings of the 19th Conference on Pattern Languages of Programs, (1-15)
- Taeumel M, Steinert B and Hirschfeld R The VIVIDE programming environment Proceedings of the ACM international symposium on New ideas, new paradigms, and reflections on programming and software, (117-126)
- Luukkainen M, Vihavainen A and Vikberg T Three years of design-based research to reform a software engineering curriculum Proceedings of the 13th annual conference on Information technology education, (209-214)
- Vihavainen A, Luukkainen M and Kurhila J Multi-faceted support for MOOC in programming Proceedings of the 13th annual conference on Information technology education, (171-176)
- McNely B, Gestwicki P, Burke A and Gelms B Articulating everyday actions Proceedings of the 30th ACM international conference on Design of communication, (95-104)
- Wilkerson J (2012). A Source Code Change Impact Analysis Algorithm for Iterative Software Development, International Journal of Decision Support System Technology, 4:4, (60-75), Online publication date: 1-Oct-2012.
- Geletka F, Samuelis L and Vojtko J Evaluation of tools for automated unit testing for applications in OSGi Proceedings of the Fifth Balkan Conference in Informatics, (295-297)
- Buffardi K Understanding and persuading adherence to test-driven development Proceedings of the ninth annual international conference on International computing education research, (155-156)
- Hilton M and Janzen D On teaching arrays with test-driven learning in WebIDE Proceedings of the 17th ACM annual conference on Innovation and technology in computer science education, (93-98)
- Brambilla M, Pinciroli C, Birattari M and Dorigo M Property-driven design for swarm robotics Proceedings of the 11th International Conference on Autonomous Agents and Multiagent Systems - Volume 1, (139-146)
- Pham R, Holzmann H, Schneider K and Brüggemann C Beyond plain video recording of GUI tests Proceedings of the 7th International Workshop on Automation of Software Test, (103-109)
- Estefó P Restructuring unit tests with TestSurgeon Proceedings of the 34th International Conference on Software Engineering, (1632-1634)
- Lemos O, Ferrari F, Silveira F and Garcia A Development of auxiliary functions: should you be agile? an empirical assessment of pair programming and test-first programming Proceedings of the 34th International Conference on Software Engineering, (529-539)
- Ressia J, Bergel A and Nierstrasz O Object-centric debugging Proceedings of the 34th International Conference on Software Engineering, (485-495)
- Grechanik M, Fu C and Xie Q Automatically finding performance problems with feedback-directed learning software testing Proceedings of the 34th International Conference on Software Engineering, (156-166)
- Gestwicki P The entity system architecture and its application in an undergraduate game development studio Proceedings of the International Conference on the Foundations of Digital Games, (73-80)
- Soeken M, Wille R and Drechsler R Assisted behavior driven development using natural language processing Proceedings of the 50th international conference on Objects, Models, Components, Patterns, (269-287)
- Bulej L, Bureš T, Keznikl J, Koubková A, Podzimek A and Tůma P Capturing performance assumptions using stochastic performance logic Proceedings of the 3rd ACM/SPEC International Conference on Performance Engineering, (311-322)
- Watanabe W, Fortes R and Dias A Using acceptance tests to validate accessibility requirements in RIA Proceedings of the International Cross-Disciplinary Conference on Web Accessibility, (1-10)
- Hammond S and Umphress D Test driven development Proceedings of the 50th annual ACM Southeast Conference, (158-163)
- Majchrzak T and Simon A Using spring Roo for the test-driven development of Web applications Proceedings of the 27th Annual ACM Symposium on Applied Computing, (664-671)
- Luukkainen M, Vihavainen A and Vikberg T A software craftsman's approach to data structures Proceedings of the 43rd ACM technical symposium on Computer Science Education, (439-444)
- Edwards S, Shams Z, Cogswell M and Senkbeil R Running students' software tests against each others' code Proceedings of the 43rd ACM technical symposium on Computer Science Education, (221-226)
- Kappel G, Langer P, Retschitzegger W, Schwinger W and Wimmer M Model transformation by-example Conceptual Modelling and Its Theoretical Foundations, (197-215)
- Archanjo G and Von Zuben F (2012). Genetic programming for automating the development of data management algorithms in information technology systems, Advances in Software Engineering, 2012, (4-4), Online publication date: 1-Jan-2012.
- Barzilay O Example embedding Proceedings of the 10th SIGPLAN symposium on New ideas, new paradigms, and reflections on programming and software, (137-144)
- Kats L, Vermaas R and Visser E Integrated language definition testing Proceedings of the 2011 ACM international conference on Object oriented programming systems languages and applications, (139-154)
- Kats L, Vermaas R and Visser E (2011). Integrated language definition testing, ACM SIGPLAN Notices, 46:10, (139-154), Online publication date: 18-Oct-2011.
- Younessi H, Pawlak R and Cuesta C Towards a development framework based on behavior recombination Proceedings of the 2011th Confederated international conference on On the move to meaningful internet systems, (632-636)
- Goldman M, Little G and Miller R Real-time collaborative coding in a web IDE Proceedings of the 24th annual ACM symposium on User interface software and technology, (155-164)
- Goldman M Role-based interfaces for collaborative software development Proceedings of the 24th annual ACM symposium adjunct on User interface software and technology, (23-26)
- Arts T, Seijas P and Thompson S Extracting QuickCheck specifications from EUnit test cases Proceedings of the 10th ACM SIGPLAN workshop on Erlang, (62-71)
- Gotovos A, Christakis M and Sagonas K Test-driven development of concurrent programs using concuerror Proceedings of the 10th ACM SIGPLAN workshop on Erlang, (51-61)
- Kollanus S Critical issues on test-driven development Proceedings of the 12th international conference on Product-focused software process improvement, (322-336)
- Trujillo M, Oktaba H, Pino F and Orozco M Applying agile and lean practices in a software development project into a CMMI organization Proceedings of the 12th international conference on Product-focused software process improvement, (17-29)
- Bowen J and Reeves S UI-driven test-first development of interactive systems Proceedings of the 3rd ACM SIGCHI symposium on Engineering interactive computing systems, (165-174)
- Pančur M and Ciglarič M (2011). Impact of test-driven development on productivity, code and tests, Information and Software Technology, 53:6, (557-573), Online publication date: 1-Jun-2011.
- Arcoverde R, Garcia A and Figueiredo E Understanding the longevity of code smells Proceedings of the 4th Workshop on Refactoring Tools, (33-36)
- Borg R and Kropp M Automated acceptance test refactoring Proceedings of the 4th Workshop on Refactoring Tools, (15-21)
- Birkhölzer T, Chiniforooshan Esfahani H, Dickmann C, Vaupel J and Ast S Goal-driven evaluation of process fragments using weighted dependency graphs Proceedings of the 2011 International Conference on Software and Systems Process, (184-188)
- Goldman M, Little G and Miller R Collabode Proceedings of the 4th International Workshop on Cooperative and Human Aspects of Software Engineering, (65-68)
- Lazzarini Lemos O, Bajracharya S, Ossher J, Masiero P and Lopes C (2011). A test-driven approach to code search and its application to the reuse of auxiliary functionality, Information and Software Technology, 53:4, (294-306), Online publication date: 1-Apr-2011.
- Bird C, Murphy B, Nagappan N and Zimmermann T Empirical software engineering at Microsoft Research Proceedings of the ACM 2011 conference on Computer supported cooperative work, (143-150)
- Vihavainen A, Paksula M and Luukkainen M Extreme apprenticeship method in teaching programming for beginners Proceedings of the 42nd ACM technical symposium on Computer science education, (93-98)
- Jalote P and Gupta A Using global pairs for reducing software development time Proceedings of the 4th India Software Engineering Conference, (115-118)
- Medina N, Burella J, Rossi G, Grigera J and Luna E An incremental approach for building accessible and usable web applications Proceedings of the 11th international conference on Web information systems engineering, (564-577)
- Medina N, Burella J, Rossi G, Grigera J and Luna E An Incremental Approach for Building Accessible and Usable Web Applications 11th International Conference on Web Information Systems Engineering --- WISE 2010 - Volume 6488, (564-577)
- Cao L, Ramesh B and Abdel-Hamid T (2010). Modeling dynamics in agile software development, ACM Transactions on Management Information Systems, 1:1, (1-26), Online publication date: 1-Dec-2010.
- Xie T, Tillmann N, de Halleux J and Schulte W Future of developer testing Proceedings of the FSE/SDP workshop on Future of software engineering research, (415-420)
- Grechanik M, Jones J, Orso A and van der Hoek A Bridging gaps between developers and testers in globally-distributed software development Proceedings of the FSE/SDP workshop on Future of software engineering research, (149-154)
- Badreddin O and Lethbridge T A study of applying a research prototype tool in industrial practice Proceedings of the eighteenth ACM SIGSOFT international symposium on Foundations of software engineering, (353-356)
- Xie T, de Halleux J, Tillmann N and Schulte W Teaching and training developer-testing techniques and tool support Proceedings of the ACM international conference companion on Object oriented programming systems languages and applications companion, (175-182)
- Sindhgatta R, Narendra N and Sengupta B Software evolution in agile development Proceedings of the ACM international conference companion on Object oriented programming systems languages and applications companion, (105-114)
- Arts T and Thompson S From test cases to FSMs Proceedings of the 9th ACM SIGPLAN workshop on Erlang, (1-12)
- Dillon E, Power G and Grant F Experimental testing in the future internet PERIMETER project Proceedings of the Third future internet conference on Future internet, (30-39)
- Lappalainen V, Itkonen J, Isomöttönen V and Kollanus S ComTest Proceedings of the fifteenth annual conference on Innovation and technology in computer science education, (63-67)
- Tu S, Oh S, Kale R, Kallem A and Tankashala S Developing verification-driven learning cases Proceedings of the fifteenth annual conference on Innovation and technology in computer science education, (58-62)
- Thompson E From phenomenography study to planning teaching Proceedings of the fifteenth annual conference on Innovation and technology in computer science education, (13-17)
- Soetens Q, Ebraert P and Demeyer S Avoiding bugs pro-actively by change-oriented programming Proceedings of the 1st Workshop on Testing Object-Oriented Systems, (1-7)
- Pěchouček M, Jakob M and Novák P Towards simulation-aided design of multi-agent systems Proceedings of the 8th international conference on Programming Multi-Agent Systems, (3-21)
- Rivas S, Francisco M and Gulías V Property driven development in Erlang, by example Proceedings of the 5th Workshop on Automation of Software Test, (75-78)
- LaToza T and Myers B On the importance of understanding the strategies that developers use Proceedings of the 2010 ICSE Workshop on Cooperative and Human Aspects of Software Engineering, (72-75)
- Guimarães M and Rito-Silva A Towards real-time integration Proceedings of the 2010 ICSE Workshop on Cooperative and Human Aspects of Software Engineering, (56-63)
- Goldman M and Miller R Test-driven roles for pair programming Proceedings of the 2010 ICSE Workshop on Cooperative and Human Aspects of Software Engineering, (13-20)
- Goldman M Test-driven roles for pair programming Proceedings of the 32nd ACM/IEEE International Conference on Software Engineering - Volume 2, (515-516)
- Robles Luna E, Burella J, Grigera J and Rossi G A flexible tool suite for change-aware test-driven development of web applications Proceedings of the 32nd ACM/IEEE International Conference on Software Engineering - Volume 2, (297-298)
- Salger F and Engels G Knowledge transfer in global software development Proceedings of the 32nd ACM/IEEE International Conference on Software Engineering - Volume 2, (211-214)
- Hummel O Facilitating the comparison of software retrieval systems through a reference reuse collection Proceedings of 2010 ICSE Workshop on Search-driven Development: Users, Infrastructure, Tools and Evaluation, (17-20)
- Hazzan O and Dubinsky Y A HOT --- Human, Organizational and Technological --- framework for a software engineering course Proceedings of the 32nd ACM/IEEE International Conference on Software Engineering - Volume 1, (559-566)
- Bonaventura M, Wainer G and Castro R Advanced IDE for modeling and simulation of discrete event systems Proceedings of the 2010 Spring Simulation Multiconference, (1-8)
- Sakamoto K, Washizaki H, Wada T and Fukazawa Y A pattern for reconstructing test code based on test coverage Proceedings of the 1st Asian Conference on Pattern Languages of Programs, (1-4)
- Smith B, Williams L and Austin A Idea Proceedings of the Second international conference on Engineering Secure Software and Systems, (192-200)
- Bagge A, David V and Haveraaen M (2009). The axioms strike back, ACM SIGPLAN Notices, 45:2, (15-24), Online publication date: 1-Feb-2010.
- Madeyski L (2010). The impact of Test-First programming on branch coverage and mutation score indicator of unit tests, Information and Software Technology, 52:2, (169-184), Online publication date: 1-Feb-2010.
- Peleska J Integrated and automated abstract interpretation, verification and testing of c/c++ modules Concurrency, Compositionality, and Correctness, (277-299)
- Smith B and Williams L (2009). Should software testers use mutation analysis to augment a test set?, Journal of Systems and Software, 82:11, (1819-1832), Online publication date: 1-Nov-2009.
- Rayside D, Milicevic A, Yessenov K, Dennis G and Jackson D Agile specifications Proceedings of the 24th ACM SIGPLAN conference companion on Object oriented programming systems languages and applications, (999-1006)
- Janes A and Succi G To pull or not to pull Proceedings of the 24th ACM SIGPLAN conference companion on Object oriented programming systems languages and applications, (889-894)
- Bagge A, David V and Haveraaen M The axioms strike back Proceedings of the eighth international conference on Generative programming and component engineering, (15-24)
- Motogna S, Lazăr I, Pârv B and Czibula I (2009). An Agile MDA Approach for Service-Oriented Components, Electronic Notes in Theoretical Computer Science (ENTCS), 253:1, (95-110), Online publication date: 1-Oct-2009.
- Giner P and Pelechano V Test-Driven Development of Model Transformations Proceedings of the 12th International Conference on Model Driven Engineering Languages and Systems, (748-752)
- Chimiak-Opoka J OCLLib, OCLUnit, OCLDoc Proceedings of the 12th International Conference on Model Driven Engineering Languages and Systems, (665-669)
- Soltenborn C and Engels G Towards Test-Driven Semantics Specification Proceedings of the 12th International Conference on Model Driven Engineering Languages and Systems, (378-392)
- Svensson H Implementing an LTL-to-Büchi translator in Erlang Proceedings of the 8th ACM SIGPLAN workshop on ERLANG, (63-70)
- Christensen H (2009). A story-telling approach for a software engineering course design, ACM SIGCSE Bulletin, 41:3, (60-64), Online publication date: 25-Aug-2009.
- Szeder G Unit testing for multi-threaded Java programs Proceedings of the 7th Workshop on Parallel and Distributed Systems: Testing, Analysis, and Debugging, (1-8)
- Christensen H A story-telling approach for a software engineering course design Proceedings of the 14th annual ACM SIGCSE conference on Innovation and technology in computer science education, (60-64)
- Robles Luna E, Grigera J and Rossi G Bridging Test and Model-Driven Approaches in Web Engineering Proceedings of the 9th International Conference on Web Engineering, (136-150)
- Bartlett R Integration strategies for Computational Science & Engineering software Proceedings of the 2009 ICSE Workshop on Software Engineering for Computational Science and Engineering, (35-42)
- Heroux M and Willenbring J Barely sufficient software engineering Proceedings of the 2009 ICSE Workshop on Software Engineering for Computational Science and Engineering, (15-21)
- Hayes J, Dekhtyar A and Janzen D Towards traceable test-driven development Proceedings of the 2009 ICSE Workshop on Traceability in Emerging Forms of Software Engineering, (26-30)
- Bianculli D, Ghezzi C and Pautasso C Embedding continuous lifelong verification in service life cycles Proceedings of the 2009 ICSE Workshop on Principles of Engineering Service Oriented Systems, (99-102)
- Barzilay O, Hazzan O and Yehudai A Characterizing Example Embedding as a software activity Proceedings of the 2009 ICSE Workshop on Search-Driven Development-Users, Infrastructure, Tools and Evaluation, (5-8)
- Wloka J, Ryder B, Tip F and Ren X Safe-commit analysis to facilitate team software development Proceedings of the 31st International Conference on Software Engineering, (507-517)
- Armstrong R and Mayo J Leveraging complexity in software for cybersecurity Proceedings of the 5th Annual Workshop on Cyber Security and Information Intelligence Research: Cyber Security and Information Intelligence Challenges and Strategies, (1-4)
- Labib C, Hasanein E and Hegazy O (2009). Early development of graphical user interface (GUI) in agile methodologies, Journal of Computational Methods in Sciences and Engineering, 9:1,2S2, (239-249), Online publication date: 1-Apr-2009.
- Vejandla P and Sherrell L Why an AI research team adopted XP practices Proceedings of the 47th annual ACM Southeast Conference, (1-4)
- Lazzarini Lemos O, Bajracharya S, Ossher J, Masiero P and Lopes C Applying test-driven code search to the reuse of auxiliary functionality Proceedings of the 2009 ACM symposium on Applied Computing, (476-482)
- Adams J (2009). Test-driven data structures, ACM SIGCSE Bulletin, 41:1, (143-147), Online publication date: 4-Mar-2009.
- Proulx V (2009). Test-driven design for introductory OO programming, ACM SIGCSE Bulletin, 41:1, (138-142), Online publication date: 4-Mar-2009.
- Adams J Test-driven data structures Proceedings of the 40th ACM technical symposium on Computer science education, (143-147)
- Proulx V Test-driven design for introductory OO programming Proceedings of the 40th ACM technical symposium on Computer science education, (138-142)
- Caspersen M and Kolling M (2009). STREAM, ACM Transactions on Computing Education, 9:1, (1-29), Online publication date: 1-Mar-2009.
- Kim H, Choi B and Yoon S Performance testing based on test-driven development for mobile applications Proceedings of the 3rd International Conference on Ubiquitous Information Management and Communication, (612-617)
- Ricca F, Torchiano M, Di Penta M, Ceccato M and Tonella P (2009). Using acceptance tests as a support for clarifying requirements, Information and Software Technology, 51:2, (270-283), Online publication date: 1-Feb-2009.
- Jiau H and Chen J (2009). Test code differencing for test-driven refactoring automation, ACM SIGSOFT Software Engineering Notes, 34:1, (1-10), Online publication date: 31-Jan-2009.
- Daniel B and Boshernitsan M Predicting Effectiveness of Automatic Testing Tools Proceedings of the 23rd IEEE/ACM International Conference on Automated Software Engineering, (363-366)
- Peleska J A Unified Approach to Abstract Interpretation, Formal Verification and Testing of C/C++ Modules Proceedings of the 5th international colloquium on Theoretical Aspects of Computing, (3-22)
- Sakakibara M, Sakurai K and Komiya S An Assertion Mechanism for Software Unit Testing to Remain Unaffected by Program ModificationThe Mechanism to Eliminate Dependency from/to Unnecessary Object Proceedings of the 2008 conference on Knowledge-Based Software Engineering: Proceedings of the Eighth Joint Conference on Knowledge-Based Software Engineering, (125-134)
- Desai C, Janzen D and Savage K (2008). A survey of evidence for test-driven development in academia, ACM SIGCSE Bulletin, 40:2, (97-101), Online publication date: 1-Jun-2008.
- Henkel J, Reichenbach C and Diwan A (2008). Developing and debugging algebraic specifications for Java classes, ACM Transactions on Software Engineering and Methodology, 17:3, (1-37), Online publication date: 1-Jun-2008.
- McDaid K, Rust A and Bishop B Test-driven development Proceedings of the 4th international workshop on End-user software engineering, (25-29)
- Masticola S and Gall M Vision Proceedings of the 3rd international workshop on Automation of software test, (79-84)
- Bloch S (2008). Teach Scheme, reach Java, Journal of Computing Sciences in Colleges, 23:5, (65-67), Online publication date: 1-May-2008.
- Sauvé J and Abath Neto O Teaching software development with ATDD and easyaccept Proceedings of the 39th SIGCSE technical symposium on Computer science education, (542-546)
- Janzen D and Saiedian H Test-driven learning in early programming courses Proceedings of the 39th SIGCSE technical symposium on Computer science education, (532-536)
- Sauvé J and Abath Neto O (2008). Teaching software development with ATDD and easyaccept, ACM SIGCSE Bulletin, 40:1, (542-546), Online publication date: 29-Feb-2008.
- Janzen D and Saiedian H (2008). Test-driven learning in early programming courses, ACM SIGCSE Bulletin, 40:1, (532-536), Online publication date: 29-Feb-2008.
- Olsina L, Rossi G, Garrido A, Distante D and Canfora G Incremental quality improvement in web applications using web model refactoring Proceedings of the 2007 international conference on Web information systems engineering, (411-422)
- Van Rompaey B, Du Bois B, Demeyer S and Rieger M (2007). On The Detection of Test Smells, IEEE Transactions on Software Engineering, 33:12, (800-817), Online publication date: 1-Dec-2007.
- Lemos O, Bajracharya S, Ossher J, Morla R, Masiero P, Baldi P and Lopes C CodeGenie Proceedings of the 22nd IEEE/ACM International Conference on Automated Software Engineering, (525-526)
- Lazzarini Lemos O, Bajracharya S and Ossher J CodeGenie: Companion to the 22nd ACM SIGPLAN conference on Object-oriented programming systems and applications companion, (917-918)
- Allison C (2007). The simplest unit test tool that could possibly work, Journal of Computing Sciences in Colleges, 23:1, (183-189), Online publication date: 1-Oct-2007.
- Szala & and Madeyski L The impact of test-driven development on software development productivity Proceedings of the 14th European conference on Software Process Improvement, (200-211)
- Damm L and Lundberg L Quality impact of introducing component-level test automation and test-driven development Proceedings of the 14th European conference on Software Process Improvement, (187-199)
- Kicillof N, Grieskamp W, Tillmann N and Braberman V Achieving both model and code coverage with automated gray-box testing Proceedings of the 3rd international workshop on Advances in model-based testing, (1-11)
- Madeyski L On the effects of pair programming on thoroughness and fault-finding effectiveness of unit tests Proceedings of the 8th international conference on Product-Focused Software Process Improvement, (207-221)
- Au O, Stone R and Cooke J Precise scenarios Proceedings of the 6th international conference on Integrated formal methods, (21-36)
- Tremblay G, Malenfant B, Salah A and Zentilli P (2007). Introducing students to professional software construction, ACM SIGCSE Bulletin, 39:3, (176-180), Online publication date: 25-Jun-2007.
- Miller J and Smith M (2007). A TDD approach to introducing students to embedded programming, ACM SIGCSE Bulletin, 39:3, (33-37), Online publication date: 25-Jun-2007.
- Tremblay G, Malenfant B, Salah A and Zentilli P Introducing students to professional software construction Proceedings of the 12th annual SIGCSE conference on Innovation and technology in computer science education, (176-180)
- Miller J and Smith M A TDD approach to introducing students to embedded programming Proceedings of the 12th annual SIGCSE conference on Innovation and technology in computer science education, (33-37)
- Van Dijk I and Wijnands R Test driving the wrong car Proceedings of the 8th international conference on Agile processes in software engineering and extreme programming, (250-252)
- Madeyski L and Biela W Empirical evidence principle and joint engagement practice to introduce XP Proceedings of the 8th international conference on Agile processes in software engineering and extreme programming, (141-144)
- Lanubile F and Mallardo T Inspecting automated test code Proceedings of the 8th international conference on Agile processes in software engineering and extreme programming, (115-122)
- Deng C, Wilson P and Maurer F FitClipse Proceedings of the 8th international conference on Agile processes in software engineering and extreme programming, (93-100)
- Hummel O and Atkinson C Supporting agile reuse through extreme harvesting Proceedings of the 8th international conference on Agile processes in software engineering and extreme programming, (28-37)
- Dionisio J, Dickson C, August S, Dorin P and Toal R (2007). An open source software culture in the undergraduate computer science curriculum, ACM SIGCSE Bulletin, 39:2, (70-74), Online publication date: 1-Jun-2007.
- Hedberg H, Iivari N, Rajanen M and Harjumaa L Assuring Quality and Usability in Open Soruce Software Development Proceedings of the First International Workshop on Emerging Trends in FLOSS Research and Development
- Nguyen D, Perini A and Tonella P A goal-oriented software testing methodology Proceedings of the 8th international conference on Agent-oriented software engineering VIII, (58-72)
- Araújo B, Rocha A, Xavier A, Muniz A and Garcia F Web-based tool for automatic acceptance test execution and scripting for programmers and customers Proceedings of the 2007 Euro American conference on Telematics and information systems, (1-4)
- Ruiz A and Price Y (2007). Test-Driven GUI Development with TestNG and Abbot, IEEE Software, 24:3, (51-57), Online publication date: 1-May-2007.
- Ambler S (2007). Test-Driven Development of Relational Databases, IEEE Software, 24:3, (37-43), Online publication date: 1-May-2007.
- Dohmke T and Gollee H (2007). Test-Driven Development of a PID Controller, IEEE Software, 24:3, (44-50), Online publication date: 1-May-2007.
- Vodde B and Koskela L (2007). Learning Test-Driven Development by Counting Lines, IEEE Software, 24:3, (74-79), Online publication date: 1-May-2007.
- Andrea J (2007). Envisioning the Next Generation of Functional Testing Tools, IEEE Software, 24:3, (58-66), Online publication date: 1-May-2007.
- Parveen T, Tilley S and Gonzalez G A case study in test management Proceedings of the 45th annual ACM Southeast Conference, (82-87)
- Corriveau J Testable requirements for offshore outsourcing Proceedings of the 1st international conference on Software engineering approaches for offshore and outsourced development, (27-43)
- Prior J, Robertson T and Leaney J Technology designers as technology users Proceedings of the 18th Australia conference on Computer-Human Interaction: Design: Activities, Artefacts and Environments, (353-356)
- Elbaum S, Chin H, Dwyer M and Dokulil J Carving differential unit test cases from system test cases Proceedings of the 14th ACM SIGSOFT international symposium on Foundations of software engineering, (253-264)
- Turnu I, Melis M, Cau A, Setzu A, Concas G and Mannaro K (2006). Modeling and simulation of open source development using an agile practice, Journal of Systems Architecture: the EUROMICRO Journal, 52:11, (610-618), Online publication date: 1-Nov-2006.
- Tobin-Hochstadt S and Felleisen M Interlanguage migration Companion to the 21st ACM SIGPLAN symposium on Object-oriented programming systems, languages, and applications, (964-974)
- Caspersen M and Kölling M A novice's process of object-oriented programming Companion to the 21st ACM SIGPLAN symposium on Object-oriented programming systems, languages, and applications, (892-900)
- Engels G, Güldali B and Lohmann M Towards model-driven unit testing Proceedings of the 2006 international conference on Models in software engineering, (182-192)
- Bhat T and Nagappan N Evaluating the efficacy of test-driven development Proceedings of the 2006 ACM/IEEE international symposium on Empirical software engineering, (356-363)
- Jansson P, Jeuring J, Cabenda L, Engels G, Kleerekoper J, Mak S, Overeem M and Visser K Testing properties of generic functions Proceedings of the 18th international conference on Implementation and application of functional languages, (217-234)
- Ševčíková H, Borning A, Socha D and Bleek W Automated testing of stochastic systems Proceedings of the 2006 international symposium on Software testing and analysis, (215-224)
- Andrews J, Haldar S, Lei Y and Li F Tool support for randomized unit testing Proceedings of the 1st international workshop on Random testing, (36-45)
- Mayer P and Lübke D Towards a BPEL unit testing framework Proceedings of the 2006 workshop on Testing, analysis, and verification of web services and applications, (33-42)
- Talby D, Hazzan O, Dubinsky Y and Keren A (2006). Agile Software Testing in a Large-Scale Project, IEEE Software, 23:4, (30-37), Online publication date: 1-Jul-2006.
- Runeson P (2006). A Survey of Unit Testing Practices, IEEE Software, 23:4, (22-29), Online publication date: 1-Jul-2006.
- Tillmann N and Schulte W (2006). Unit Tests Reloaded, IEEE Software, 23:4, (38-47), Online publication date: 1-Jul-2006.
- Damm L and Lundberg L (2006). Results from introducing component-level test automation and Test-Driven Development, Journal of Systems and Software, 79:7, (1001-1014), Online publication date: 1-Jul-2006.
- Rust A, Bishop B and McDaid K Test-Driven development Proceedings of the 7th international conference on Extreme Programming and Agile Processes in Software Engineering, (209-210)
- Ziółkowski B and Drake G Rolling the DICE® for agile software projects Proceedings of the 7th international conference on Extreme Programming and Agile Processes in Software Engineering, (114-122)
- Madeyski L The impact of pair programming and test-driven development on package dependencies in object-oriented design — an experiment Proceedings of the 7th international conference on Product-Focused Software Process Improvement, (278-289)
- Kobayashi O, Kawabata M, Sakai M and Parkinson E Analysis of the interaction between practices for introducing XP effectively Proceedings of the 28th international conference on Software engineering, (544-550)
- Sauvé J, Abath Neto O and Cirne W EasyAccept Proceedings of the 2006 international workshop on Automation of software test, (111-117)
- Artho C and Biere A Advanced unit testing Proceedings of the 2006 international workshop on Automation of software test, (92-98)
- Kou H and Johnson P Automated recognition of low-level process Proceedings of the 2006 international conference on Software Process Simulation and Modeling, (322-333)
- Runeson P, Andersson C, Thelin T, Andrews A and Berling T (2006). What Do We Know about Defect Detection Methods?, IEEE Software, 23:3, (82-90), Online publication date: 1-May-2006.
- Janzen D and Saiedian H (2006). Test-driven learning, ACM SIGCSE Bulletin, 38:1, (254-258), Online publication date: 31-Mar-2006.
- Waite W (2006). The compiler course in today's curriculum, ACM SIGCSE Bulletin, 38:1, (87-91), Online publication date: 31-Mar-2006.
- Janzen D and Saiedian H Test-driven learning Proceedings of the 37th SIGCSE technical symposium on Computer science education, (254-258)
- Waite W The compiler course in today's curriculum Proceedings of the 37th SIGCSE technical symposium on Computer science education, (87-91)
- Thompson E, Hunt L and Kinshuk K Exploring learner conceptions of programming Proceedings of the 8th Australasian Conference on Computing Education - Volume 52, (205-211)
- Thompson E Using a subject area model as a learning improvement model Proceedings of the 8th Australasian Conference on Computing Education - Volume 52, (197-203)
- Paige R and Brooke P Agile formal method engineering Proceedings of the 5th international conference on Integrated Formal Methods, (109-128)
- Edwards J Subtext Proceedings of the 20th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications, (505-518)
- Allowatt A and Edwards S IDE Support for test-driven development and automated grading in both Java and C++ Proceedings of the 2005 OOPSLA workshop on Eclipse technology eXchange, (100-104)
- Melnik G and Maurer F The practice of specifying requirements using executable acceptance tests in computer science courses Companion to the 20th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications, (365-370)
- Wilkinson H, Prieto M and Romeo L Arithmetic with measurements on dynamically-typed object-oriented languages Companion to the 20th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications, (292-300)
- Patton J Finding the forest in the trees Companion to the 20th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications, (266-274)
- Edwards J (2005). Subtext, ACM SIGPLAN Notices, 40:10, (505-518), Online publication date: 12-Oct-2005.
- Liew C (2005). Teaching software development skills early in the Curriculum through software engineering, ACM SIGCSE Bulletin, 37:3, (133-137), Online publication date: 1-Sep-2005.
- Sherriff M, Nagappan N, Williams L and Vouk M (2005). Early estimation of defect density using an in-process Haskell metrics model, ACM SIGSOFT Software Engineering Notes, 30:4, (1-6), Online publication date: 1-Jul-2005.
- Martin R (2005). The Test Bus Imperative, IEEE Software, 22:4, (65-67), Online publication date: 1-Jul-2005.
- Liew C Teaching software development skills early in the Curriculum through software engineering Proceedings of the 10th annual SIGCSE conference on Innovation and technology in computer science education, (133-137)
- Amyot D, Roy J and Weiss M UCM-Driven testing of web applications Proceedings of the 12th international conference on Model Driven, (247-264)
- Cau A, Concas G, Melis M and Turnu I Evaluate XP effectiveness using simulation modeling Proceedings of the 6th international conference on Extreme Programming and Agile Processes in Software Engineering, (48-56)
- Mugridge R and Cunningham W Agile test composition Proceedings of the 6th international conference on Extreme Programming and Agile Processes in Software Engineering, (137-144)
- Olivé A Conceptual schema-centric development Proceedings of the 17th international conference on Advanced Information Systems Engineering, (1-15)
- Lui K and Chan K A road map for implementing extreme programming Proceedings of the 2005 international conference on Unifying the Software Process Spectrum, (474-481)
- Sherriff M, Nagappan N, Williams L and Vouk M Early estimation of defect density using an in-process Haskell metrics model Proceedings of the 1st international workshop on Advances in model-based testing, (1-6)
- Proulx V and Cashorali T (2005). Calculator problem and the design recipe, ACM SIGPLAN Notices, 40:3, (4-11), Online publication date: 1-Mar-2005.
- Erdogmus H, Morisio M and Torchiano M (2005). On the Effectiveness of the Test-First Approach to Programming, IEEE Transactions on Software Engineering, 31:3, (226-237), Online publication date: 1-Mar-2005.
- Saff D and Ernst M (2004). Continuous Testing in Eclipse, Electronic Notes in Theoretical Computer Science (ENTCS), 107:C, (103-117), Online publication date: 12-Dec-2004.
- Edwards J (2004). Example centric programming, ACM SIGPLAN Notices, 39:12, (84-91), Online publication date: 1-Dec-2004.
- Marick B (2004). Methodology work is ontology work, ACM SIGPLAN Notices, 39:12, (64-72), Online publication date: 1-Dec-2004.
- Nelson C and Kim J Integration of software engineering techniques through the use of architecture, process, and people management Proceedings of the First international conference on Rapid Integration of Software Engineering Techniques, (1-10)
- Turnu I, Melis M, Cau A, Marchesi M and Setzu A Introducing TDD on a free libre open source software project Proceedings of the 2004 workshop on Quantitative techniques for software agile process, (59-65)
- Socha D Aikido and software engineering Proceedings of the 2004 ACM workshop on Interdisciplinary software engineering research, (4-7)
- de Souza C, Redmiles D, Cheng L, Millen D and Patterson J (2004). How a good software practice thwarts collaboration, ACM SIGSOFT Software Engineering Notes, 29:6, (221-230), Online publication date: 1-Nov-2004.
- de Souza C, Redmiles D, Cheng L, Millen D and Patterson J How a good software practice thwarts collaboration Proceedings of the 12th ACM SIGSOFT twelfth international symposium on Foundations of software engineering, (221-230)
- Williams L (2004). On the need for a process for making reliable quality comparisons with industrial data, ACM SIGSOFT Software Engineering Notes, 29:5, (1-4), Online publication date: 1-Sep-2004.
- Saff D and Ernst M An experimental evaluation of continuous testing during development Proceedings of the 2004 ACM SIGSOFT international symposium on Software testing and analysis, (76-85)
- Saff D and Ernst M (2004). An experimental evaluation of continuous testing during development, ACM SIGSOFT Software Engineering Notes, 29:4, (76-85), Online publication date: 1-Jul-2004.
- Hollingsworth J and Powell D Explicitly and implicitly teaching Java best practices across the undergraduate curriculum Proceedings of the 2004 international symposium on Information and communication technologies, (262-267)
- Nagappan N Toward a Software Testing and Reliability Early Warning Metric Suite Proceedings of the 26th International Conference on Software Engineering, (60-62)
- Bonér J What are the key issues for commercial AOP use Proceedings of the 3rd international conference on Aspect-oriented software development, (5-6)
- Edwards S Using software testing to move students from trial-and-error to reflection-in-action Proceedings of the 35th SIGCSE technical symposium on Computer science education, (26-30)
- Edwards S (2004). Using software testing to move students from trial-and-error to reflection-in-action, ACM SIGCSE Bulletin, 36:1, (26-30), Online publication date: 1-Mar-2004.
- Weber D and Phillips M An architecture for multi-view information overlays Proceedings of the 2004 Australasian symposium on Information Visualisation - Volume 35, (9-15)
- Marré M and Bertolino A (2003). Using Spanning Sets for Coverage Testing, IEEE Transactions on Software Engineering, 29:11, (974-984), Online publication date: 1-Nov-2003.
- Andrianoff S, Levine D, Gewand S and Heissenberger G A testing-based framework for programming contests Proceedings of the 2003 OOPSLA workshop on eclipse technology eXchange, (94-98)
- Nagappan N, Williams L and Vouk M "Good enough" software reliability estimation plug-in for Eclipse Proceedings of the 2003 OOPSLA workshop on eclipse technology eXchange, (30-34)
- Meszaros G Agile regression testing using record & playback Companion of the 18th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications, (353-360)
- Edwards S Teaching software testing Companion of the 18th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications, (318-319)
- Edwards S Rethinking computer science education from a test-first perspective Companion of the 18th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications, (148-155)
- Rasala R (2003). Embryonic object versus mature object, ACM SIGCSE Bulletin, 35:3, (89-93), Online publication date: 1-Sep-2003.
- Mugridge R, Nataraj M and Singh D Emerging user interfaces through first-class viewers Proceedings of the 4th Annual Conference of the ACM Special Interest Group on Computer-Human Interaction, (75-80)
- Rasala R Embryonic object versus mature object Proceedings of the 8th annual conference on Innovation and technology in computer science education, (89-93)
- Freese T Software configuration management for test-driven development Proceedings of the 4th international conference on Extreme programming and agile processes in software engineering, (431-432)
- Mugridge R Challenges in teaching test driven development Proceedings of the 4th international conference on Extreme programming and agile processes in software engineering, (410-413)
- Steinberg D Using instructor written acceptance tests using the fit framework Proceedings of the 4th international conference on Extreme programming and agile processes in software engineering, (378-385)
- Rinaldi A and Benedicenti L Building standard ERP software packages using self-developed agile methodologies Proceedings of the 4th international conference on Extreme programming and agile processes in software engineering, (366-368)
- Freese T Inline method considered helpful Proceedings of the 4th international conference on Extreme programming and agile processes in software engineering, (271-278)
- Mugridge R, MacDonald B and Roop P A customer test generator for web-based systems Proceedings of the 4th international conference on Extreme programming and agile processes in software engineering, (189-197)
- Nickell E and Smith I Three patterns in java unit testing Proceedings of the 4th international conference on Extreme programming and agile processes in software engineering, (170-179)
- Hedin G, Bendix L and Magnusson B Coaching coaches Proceedings of the 4th international conference on Extreme programming and agile processes in software engineering, (154-160)
- Gelowitz C, Sloman I, Benedicenti L and Paranjape R Real-time extreme programming Proceedings of the 4th international conference on Extreme programming and agile processes in software engineering, (63-72)
- Freese T Towards software configuration management for test-driven development Proceedings of the 2001 ICSE Workshops on SCM 2001, and SCM 2003 conference on Software configuration management, (267-273)
- Maximilien E and Williams L Assessing test-driven development at IBM Proceedings of the 25th International Conference on Software Engineering, (564-569)
- Rasmusson J (2003). Introducing XP into Greenfield Projects, IEEE Software, 20:3, (21-28), Online publication date: 1-May-2003.
- Williams L (2003). Guest Editor's Introduction, IEEE Software, 20:3, (16-20), Online publication date: 1-May-2003.
- George B and Williams L An initial investigation of test driven development in industry Proceedings of the 2003 ACM symposium on Applied computing, (1135-1139)
- Uyaguari F, Acuña S, Castro J, Fucci D, Dieste O and Vegas S Relevant information in TDD experiment reporting, ACM Transactions on Software Engineering and Methodology, 0:0
- Carter J and Gardner W BHive: Towards Behaviour-Driven Development Supported by B-Method 2016 IEEE 17th International Conference on Information Reuse and Integration (IRI), (249-256)
- Niculescu V, Şerban C and Vescan A Does Cyclic Learning have Positive Impact on Teaching Object-Oriented Programming? 2019 IEEE Frontiers in Education Conference (FIE), (1-9)
- Hu Z, Song Y and Gehringer E A Test-Driven Approach to Improving Student Contributions to Open-Source Projects 2019 IEEE Frontiers in Education Conference (FIE), (1-9)
Index Terms
- Test Driven Development: By Example
Recommendations
Designing a Framework with Test-Driven Development: A Journey
Usually we read about agile development practices that seem like no more than hand waving. If that's how you feel, you'll enjoy traveling this detailed design journey and seeing up close how test-driven development (TDD) and refactoring are done in an ...