A Light in a Dark Place: Test-Driven Development with 3rd Party Packages
Proceedings of the Second XP Universe and First Agile Universe Conference on Extreme Programming and Agile Methods - XP/Agile Universe 2002
Introducing XP into Greenfield Projects: Lessons Learned
IEEE Software
Assessing test-driven development at IBM
Proceedings of the 25th International Conference on Software Engineering
Unit testing: test early, test often
Journal of Computing Sciences in Colleges
Rethinking computer science education from a test-first perspective
OOPSLA '03 Companion of the 18th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Teaching software testing: automatic grading meets test-first coding
OOPSLA '03 Companion of the 18th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Agile regression testing using record & playback
OOPSLA '03 Companion of the 18th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Using Spanning Sets for Coverage Testing
IEEE Transactions on Software Engineering
An initial investigation of test driven development in industry
Proceedings of the 2003 ACM symposium on Applied computing
Embryonic object versus mature object: object-oriented style and pedagogical theme
Proceedings of the 8th annual conference on Innovation and technology in computer science education
"Good enough" software reliability estimation plug-in for Eclipse
eclipse '03 Proceedings of the 2003 OOPSLA workshop on eclipse technology eXchange
A testing-based framework for programming contests
eclipse '03 Proceedings of the 2003 OOPSLA workshop on eclipse technology eXchange
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
What are the key issues for commercial AOP use: how does AspectWerkz address them?
Proceedings of the 3rd international conference on Aspect-oriented software development
Toward a Software Testing and Reliability Early Warning Metric Suite
Proceedings of the 26th International Conference on Software Engineering
An experimental evaluation of continuous testing during development
ISSTA '04 Proceedings of the 2004 ACM SIGSOFT international symposium on Software testing and analysis
On the need for a process for making reliable quality comparisons with industrial data
ACM SIGSOFT Software Engineering Notes
Proceedings of the 12th ACM SIGSOFT twelfth international symposium on Foundations of software engineering
Improving student performance by evaluating how well students test their own programs
Journal on Educational Resources in Computing (JERIC)
Aikido and software engineering
Proceedings of the 2004 ACM workshop on Interdisciplinary software engineering research
Teaching extreme programming to large groups of students
Journal of Systems and Software - Special issue: The new context for software engineering education and training
Methodology work is ontology work
ACM SIGPLAN Notices
ACM SIGPLAN Notices
Calculator problem and the design recipe
ACM SIGPLAN Notices
Teaching software development skills early in the Curriculum through software engineering
ITiCSE '05 Proceedings of the 10th annual SIGCSE conference on Innovation and technology in computer science education
On the Effectiveness of the Test-First Approach to Programming
IEEE Transactions on Software Engineering
Explicitly and implicitly teaching Java best practices across the undergraduate curriculum
ISICT '04 Proceedings of the 2004 international symposium on Information and communication technologies
An architecture for multi-view information overlays
APVis '04 Proceedings of the 2004 Australasian symposium on Information Visualisation - Volume 35
Early estimation of defect density using an in-process Haskell metrics model
A-MOST '05 Proceedings of the 1st international workshop on Advances in model-based testing
Subtext: uncovering the simplicity of programming
OOPSLA '05 Proceedings of the 20th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Finding the forest in the trees
OOPSLA '05 Companion to the 20th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Arithmetic with measurements on dynamically-typed object-oriented languages
OOPSLA '05 Companion to the 20th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
OOPSLA '05 Companion to the 20th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
IDE Support for test-driven development and automated grading in both Java and C++
eclipse '05 Proceedings of the 2005 OOPSLA workshop on Eclipse technology eXchange
The compiler course in today's curriculum: three strategies
Proceedings of the 37th SIGCSE technical symposium on Computer science education
Test-driven learning: intrinsic integration of testing into the CS/SE curriculum
Proceedings of the 37th SIGCSE technical symposium on Computer science education
Analysis of the interaction between practices for introducing XP effectively
Proceedings of the 28th international conference on Software engineering
What Do We Know about Defect Detection Methods?
IEEE Software
Advanced unit testing: how to scale up a unit test framework
Proceedings of the 2006 international workshop on Automation of software test
EasyAccept: a tool to easily create, run and drive development with automated acceptance tests
Proceedings of the 2006 international workshop on Automation of software test
Mathematics based on incremental learning: excluded middle and inductive inference
Theoretical Computer Science - Algorithmic learning theory(ALT 2002)
Towards a BPEL unit testing framework
Proceedings of the 2006 workshop on Testing, analysis, and verification of web services and applications
Tool support for randomized unit testing
Proceedings of the 1st international workshop on Random testing
Automated testing of stochastic systems: a statistically grounded approach
Proceedings of the 2006 international symposium on Software testing and analysis
Introducing TDD on a free libre open source software project: a simulation experiment
Proceedings of the 2004 workshop on Quantitative techniques for software agile process
Using a subject area model as a learning improvement model
ACE '06 Proceedings of the 8th Australasian Conference on Computing Education - Volume 52
Exploring learner conceptions of programming
ACE '06 Proceedings of the 8th Australasian Conference on Computing Education - Volume 52
A Survey of Unit Testing Practices
IEEE Software
Agile Software Testing in a Large-Scale Project
IEEE Software
Results from introducing component-level test automation and test-driven development
Journal of Systems and Software - Special issue: Selected papers from the 11th Asia Pacific software engineering conference (APSEC 2004)
Evaluating the efficacy of test-driven development: industrial case studies
Proceedings of the 2006 ACM/IEEE international symposium on Empirical software engineering
Automatic test-based assessment of programming: A review
Journal on Educational Resources in Computing (JERIC)
An empirical study into class testability
Journal of Systems and Software - Special issue: Selected papers from the 4th source code analysis and manipulation (SCAM 2004) workshop
A novice's process of object-oriented programming
Companion to the 21st ACM SIGPLAN symposium on Object-oriented programming systems, languages, and applications
Interlanguage migration: from scripts to programs
Companion to the 21st ACM SIGPLAN symposium on Object-oriented programming systems, languages, and applications
Composing simulation architectures for autonomic systems
The Knowledge Engineering Review
Carving differential unit test cases from system test cases
Proceedings of the 14th ACM SIGSOFT international symposium on Foundations of software engineering
Modeling and simulation of open source development using an agile practice
Journal of Systems Architecture: the EUROMICRO Journal - Special issue: AGILE methodologies for software production
Technology designers as technology users: the intertwining of infrastructure and product
OZCHI '06 Proceedings of the 18th Australia conference on Computer-Human Interaction: Design: Activities, Artefacts and Environments
A case study in test management
ACM-SE 45 Proceedings of the 45th annual southeast regional conference
Product lines for digital information products
Information Systems
Test-Driven Development of Relational Databases
IEEE Software
Test-Driven Development of a PID Controller
IEEE Software
Test-Driven GUI Development with TestNG and Abbot
IEEE Software
Learning Test-Driven Development by Counting Lines
IEEE Software
A TDD approach to introducing students to embedded programming
Proceedings of the 12th annual SIGCSE conference on Innovation and technology in computer science education
Proceedings of the 12th annual SIGCSE conference on Innovation and technology in computer science education
Assuring Quality and Usability in Open Soruce Software Development
FLOSS '07 Proceedings of the First International Workshop on Emerging Trends in FLOSS Research and Development
An open source software culture in the undergraduate computer science curriculum
ACM SIGCSE Bulletin
The simplest unit test tool that could possibly work
Journal of Computing Sciences in Colleges - Papers of the Fourteenth Annual CCSC Midwestern Conference and Papers of the Sixteenth Annual CCSC Rocky Mountain Conference
Achieving both model and code coverage with automated gray-box testing
Proceedings of the 3rd international workshop on Advances in model-based testing
CodeGenie:: a tool for test-driven source code search
Companion to the 22nd ACM SIGPLAN conference on Object-oriented programming systems and applications companion
On The Detection of Test Smells: A Metrics-Based Approach for General Fixture and Eager Test
IEEE Transactions on Software Engineering
CodeGenie: using test-cases to search and reuse source code
Proceedings of the twenty-second IEEE/ACM international conference on Automated software engineering
Test-driven learning in early programming courses
Proceedings of the 39th SIGCSE technical symposium on Computer science education
Teaching software development with ATDD and easyaccept
Proceedings of the 39th SIGCSE technical symposium on Computer science education
Teach Scheme, reach Java: introducing object-oriented programming without drowning in syntax
Journal of Computing Sciences in Colleges
Web-based tool for automatic acceptance test execution and scripting for programmers and customers
EATIS '07 Proceedings of the 2007 Euro American conference on Telematics and information systems
Developing and debugging algebraic specifications for Java classes
ACM Transactions on Software Engineering and Methodology (TOSEM)
Vision: testing of mechatronics software using agile simulation
Proceedings of the 3rd international workshop on Automation of software test
Test-driven development: can it work for spreadsheets?
Proceedings of the 4th international workshop on End-user software engineering
Empirical Software Engineering
A survey of evidence for test-driven development in academia
ACM SIGCSE Bulletin
Automated Test Generation and Verified Software
Verified Software: Theories, Tools, Experiments
Interval Subroutine Library Mission
Reliable Implementation of Real Number Algorithms: Theory and Practice
Capable Leader and Skilled and Motivated Team Practices to Introduce eXtreme Programming
Balancing Agility and Formalism in Software Engineering
Balancing Agility and Formalism in Software Engineering
ECMDA-FA '08 Proceedings of the 4th European conference on Model Driven Architecture: Foundations and Applications
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
Test Strategies for Evaluation of Semantic eGovernment Applications
EGOV '08 Proceedings of the 7th international conference on Electronic Government
Test code differencing for test-driven refactoring automation
ACM SIGSOFT Software Engineering Notes
Using acceptance tests as a support for clarifying requirements: A series of experiments
Information and Software Technology
Empirical investigation towards the effectiveness of Test First programming
Information and Software Technology
Innovations for Requirement Analysis. From Stakeholders' Needs to Formal Designs
Test-driven design for introductory OO programming
Proceedings of the 40th ACM technical symposium on Computer science education
Test-driven data structures: revitalizing CS2
Proceedings of the 40th ACM technical symposium on Computer science education
STREAM: A First Programming Process
ACM Transactions on Computing Education (TOCE)
Performance testing based on test-driven development for mobile applications
Proceedings of the 3rd International Conference on Ubiquitous Information Management and Communication
Applying test-driven code search to the reuse of auxiliary functionality
Proceedings of the 2009 ACM symposium on Applied Computing
A Test-oriented Embedded System Production Methodology
Journal of Signal Processing Systems
Safe-commit analysis to facilitate team software development
ICSE '09 Proceedings of the 31st International Conference on Software Engineering
Barely sufficient software engineering: 10 practices to improve your CSE software
SECSE '09 Proceedings of the 2009 ICSE Workshop on Software Engineering for Computational Science and Engineering
Integration strategies for Computational Science & Engineering software
SECSE '09 Proceedings of the 2009 ICSE Workshop on Software Engineering for Computational Science and Engineering
Characterizing Example Embedding as a software activity
SUITE '09 Proceedings of the 2009 ICSE Workshop on Search-Driven Development-Users, Infrastructure, Tools and Evaluation
Towards traceable test-driven development
TEFSE '09 Proceedings of the 2009 ICSE Workshop on Traceability in Emerging Forms of Software Engineering
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
A story-telling approach for a software engineering course design
ITiCSE '09 Proceedings of the 14th annual ACM SIGCSE conference on Innovation and technology in computer science education
Embedding continuous lifelong verification in service life cycles
PESOS '09 Proceedings of the 2009 ICSE Workshop on Principles of Engineering Service Oriented Systems
Proceedings of the 2005 conference on Software Engineering: Evolution and Emerging Technologies
Proceedings of the 2008 conference on Knowledge-Based Software Engineering: Proceedings of the Eighth Joint Conference on Knowledge-Based Software Engineering
Why an AI research team adopted XP practices
Proceedings of the 47th Annual Southeast Regional Conference
Unit Testing of Software Components with Inter-component Dependencies
CBSE '09 Proceedings of the 12th International Symposium on Component-Based Software Engineering
Bridging Test and Model-Driven Approaches in Web Engineering
ICWE '9 Proceedings of the 9th International Conference on Web Engineering
Dealing with Complexity Using Conceptual Models Based on Tropos
Conceptual Modeling: Foundations and Applications
Implementing an LTL-to-Büchi translator in Erlang: a protest experience report
Proceedings of the 8th ACM SIGPLAN workshop on ERLANG
Early development of graphical user interface (GUI) in agile methodologies
Journal of Computational Methods in Sciences and Engineering
The Managed Adapter Pattern: Facilitating Glue Code Generation for Component Reuse
ICSR '09 Proceedings of the 11th International Conference on Software Reuse: Formal Foundations of Reuse and Domain Engineering
A Control Theory Perspective on Agile Methodology Use and Changing User Requirements
Information Systems Research
An Agile MDA Approach for Service-Oriented Components
Electronic Notes in Theoretical Computer Science (ENTCS)
The axioms strike back: testing with concepts and axioms in C++
GPCE '09 Proceedings of the eighth international conference on Generative programming and component engineering
Should software testers use mutation analysis to augment a test set?
Journal of Systems and Software
Unit testing for multi-threaded Java programs
Proceedings of the 7th Workshop on Parallel and Distributed Systems: Testing, Analysis, and Debugging
Proceedings of the 24th ACM SIGPLAN conference companion on Object oriented programming systems languages and applications
Proceedings of the 24th ACM SIGPLAN conference companion on Object oriented programming systems languages and applications
Predicting Effectiveness of Automatic Testing Tools
ASE '08 Proceedings of the 2008 23rd IEEE/ACM International Conference on Automated Software Engineering
A point based model of the Gregorian Calendar
Computer Languages, Systems and Structures
Towards an Efficient Prover for the C1 Paraconsistent Logic
Electronic Notes in Theoretical Computer Science (ENTCS)
Information and Software Technology
Goal-oriented testing for MASs
International Journal of Agent-Oriented Software Engineering
Operational definition and automated inference of test-driven development with Zorro
Automated Software Engineering
Towards Test-Driven Semantics Specification
MODELS '09 Proceedings of the 12th International Conference on Model Driven Engineering Languages and Systems
OCLLib, OCLUnit, OCLDoc: Pragmatic Extensions for the Object Constraint Language
MODELS '09 Proceedings of the 12th International Conference on Model Driven Engineering Languages and Systems
Test-Driven Development of Model Transformations
MODELS '09 Proceedings of the 12th International Conference on Model Driven Engineering Languages and Systems
Lessons in Software Evolution Learned by Listening to Smalltalk
SOFSEM '10 Proceedings of the 36th Conference on Current Trends in Theory and Practice of Computer Science
Practically Applicable Formal Methods
SOFSEM '10 Proceedings of the 36th Conference on Current Trends in Theory and Practice of Computer Science
Electronic Notes in Theoretical Computer Science (ENTCS)
Introducing Test Automation and Test-Driven Development: An Experience Report
Electronic Notes in Theoretical Computer Science (ENTCS)
Combating architectural degeneration: a survey
Information and Software Technology
Testing properties of generic functions
IFL'06 Proceedings of the 18th international conference on Implementation and application of functional languages
Towards model-driven unit testing
MoDELS'06 Proceedings of the 2006 international conference on Models in software engineering
XP'03 Proceedings of the 4th international conference on Extreme programming and agile processes in software engineering
XP'03 Proceedings of the 4th international conference on Extreme programming and agile processes in software engineering
Three patterns in java unit testing
XP'03 Proceedings of the 4th international conference on Extreme programming and agile processes in software engineering
A customer test generator for web-based systems
XP'03 Proceedings of the 4th international conference on Extreme programming and agile processes in software engineering
Inline method considered helpful: an approach to interface evolution
XP'03 Proceedings of the 4th international conference on Extreme programming and agile processes in software engineering
Building standard ERP software packages using self-developed agile methodologies
XP'03 Proceedings of the 4th international conference on Extreme programming and agile processes in software engineering
Using instructor written acceptance tests using the fit framework
XP'03 Proceedings of the 4th international conference on Extreme programming and agile processes in software engineering
Challenges in teaching test driven development
XP'03 Proceedings of the 4th international conference on Extreme programming and agile processes in software engineering
Software configuration management for test-driven development
XP'03 Proceedings of the 4th international conference on Extreme programming and agile processes in software engineering
Supporting agile reuse through extreme harvesting
XP'07 Proceedings of the 8th international conference on Agile processes in software engineering and extreme programming
FitClipse: a fit-based eclipse plug-in for executable acceptance test driven development
XP'07 Proceedings of the 8th international conference on Agile processes in software engineering and extreme programming
Inspecting automated test code: a preliminary study
XP'07 Proceedings of the 8th international conference on Agile processes in software engineering and extreme programming
Empirical evidence principle and joint engagement practice to introduce XP
XP'07 Proceedings of the 8th international conference on Agile processes in software engineering and extreme programming
XP'07 Proceedings of the 8th international conference on Agile processes in software engineering and extreme programming
Precise scenarios: a customer-friendly foundation for formal specifications
IFM'07 Proceedings of the 6th international conference on Integrated formal methods
An approach to testing conceptual schemas
Data & Knowledge Engineering
Testable requirements for offshore outsourcing
SEAFOOD'07 Proceedings of the 1st international conference on Software engineering approaches for offshore and outsourced development
Incremental quality improvement in web applications using web model refactoring
WISE'07 Proceedings of the 2007 international conference on Web information systems engineering
A goal-oriented software testing methodology
AOSE'07 Proceedings of the 8th international conference on Agent-oriented software engineering VIII
On the effectiveness of unit test automation at Microsoft
ISSRE'09 Proceedings of the 20th IEEE international conference on software reliability engineering
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
Property driven development in Erlang, by example
Proceedings of the 5th Workshop on Automation of Software Test
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
Knowledge transfer in global software development: leveraging acceptance test case specifications
Proceedings of the 32nd ACM/IEEE International Conference on Software Engineering - Volume 2
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
Test-driven roles for pair programming
Proceedings of the 32nd ACM/IEEE International Conference on Software Engineering - Volume 2
From phenomenography study to planning teaching
Proceedings of the fifteenth annual conference on Innovation and technology in computer science education
Developing verification-driven learning cases
Proceedings of the fifteenth annual conference on Innovation and technology in computer science education
ComTest: a tool to impart TDD and unit testing to introductory level programming
Proceedings of the fifteenth annual conference on Innovation and technology in computer science education
Test-driven roles for pair programming
Proceedings of the 2010 ICSE Workshop on Cooperative and Human Aspects of Software Engineering
Proceedings of the 2010 ICSE Workshop on Cooperative and Human Aspects of Software Engineering
On the importance of understanding the strategies that developers use
Proceedings of the 2010 ICSE Workshop on Cooperative and Human Aspects of Software Engineering
Behaviour-Driven Development of Foundational UML Components
Electronic Notes in Theoretical Computer Science (ENTCS)
From test cases to FSMs: augmented test-driven development and property inference
Proceedings of the 9th ACM SIGPLAN workshop on Erlang
Software evolution in agile development: a case study
Proceedings of the ACM international conference companion on Object oriented programming systems languages and applications companion
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
Modeling dynamics in agile software development
ACM Transactions on Management Information Systems (TMIS)
Advanced IDE for modeling and simulation of discrete event systems
SpringSim '10 Proceedings of the 2010 Spring Simulation Multiconference
A study of applying a research prototype tool in industrial practice
Proceedings of the eighteenth ACM SIGSOFT international symposium on Foundations of software engineering
Bridging gaps between developers and testers in globally-distributed software development
Proceedings of the FSE/SDP workshop on Future of software engineering research
Future of developer testing: building quality in code
Proceedings of the FSE/SDP workshop on Future of software engineering research
Avoiding bugs pro-actively by change-oriented programming
Proceedings of the 1st Workshop on Testing Object-Oriented Systems
Towards software configuration management for test-driven development
SCM'01/SCM'03 Proceedings of the 2001 ICSE Workshops on SCM 2001, and SCM 2003 conference on Software configuration management
Testing techniques in software engineering
Testing techniques in software engineering
Experimental testing in the future internet PERIMETER project
FIS'10 Proceedings of the Third future internet conference on Future internet
Information and Software Technology
A test-driven approach to code search and its application to the reuse of auxiliary functionality
Information and Software Technology
Extreme apprenticeship method in teaching programming for beginners
Proceedings of the 42nd ACM technical symposium on Computer science education
Using global pairs for reducing software development time
Proceedings of the 4th India Software Engineering Conference
Empirical software engineering at Microsoft Research
Proceedings of the ACM 2011 conference on Computer supported cooperative work
A study to support agile methods more effectively through traceability
Innovations in Systems and Software Engineering
Impact of test-driven development on productivity, code and tests: A controlled experiment
Information and Software Technology
Empirical Software Engineering
Collabode: collaborative coding in the browser
Proceedings of the 4th International Workshop on Cooperative and Human Aspects of Software Engineering
Automated acceptance test refactoring
Proceedings of the 4th Workshop on Refactoring Tools
Understanding the longevity of code smells: preliminary results of an explanatory survey
Proceedings of the 4th Workshop on Refactoring Tools
Goal-driven evaluation of process fragments using weighted dependency graphs
Proceedings of the 2011 International Conference on Software and Systems Process
An incremental approach for building accessible and usable web applications
WISE'10 Proceedings of the 11th international conference on Web information systems engineering
UI-driven test-first development of interactive systems
Proceedings of the 3rd ACM SIGCHI symposium on Engineering interactive computing systems
An open implementation for context-oriented layer composition in ContextJS
Science of Computer Programming
Web application evaluation and refactoring: a qualityoriented improvement approach
Journal of Web Engineering
Incorporating usability requirements in a test/model-driven web engineering approach
Journal of Web Engineering
Applying agile and lean practices in a software development project into a CMMI organization
PROFES'11 Proceedings of the 12th international conference on Product-focused software process improvement
Critical issues on test-driven development
PROFES'11 Proceedings of the 12th international conference on Product-focused software process improvement
Test-driven development of concurrent programs using concuerror
Proceedings of the 10th ACM SIGPLAN workshop on Erlang
Extracting QuickCheck specifications from EUnit test cases
Proceedings of the 10th ACM SIGPLAN workshop on Erlang
The effectiveness of test-driven development: an industrial case study
Software Quality Control
Role-based interfaces for collaborative software development
Proceedings of the 24th annual ACM symposium adjunct on User interface software and technology
Real-time collaborative coding in a web IDE
Proceedings of the 24th annual ACM symposium on User interface software and technology
Integrated language definition testing: enabling test-driven language development
Proceedings of the 2011 ACM international conference on Object oriented programming systems languages and applications
Towards a development framework based on behavior recombination
OTM'11 Proceedings of the 2011th Confederated international conference on On the move to meaningful internet systems
Proceedings of the 10th SIGPLAN symposium on New ideas, new paradigms, and reflections on programming and software
PROFES'06 Proceedings of the 7th international conference on Product-Focused Software Process Improvement
A road map for implementing extreme programming
SPW'05 Proceedings of the 2005 international conference on Unifying the Software Process Spectrum
Conceptual schema-centric development: a grand challenge for information systems research
CAiSE'05 Proceedings of the 17th international conference on Advanced Information Systems Engineering
Evaluate XP effectiveness using simulation modeling
XP'05 Proceedings of the 6th international conference on Extreme Programming and Agile Processes in Software Engineering
XP'05 Proceedings of the 6th international conference on Extreme Programming and Agile Processes in Software Engineering
UCM-Driven testing of web applications
SDL'05 Proceedings of the 12th international conference on Model Driven
RISE'04 Proceedings of the First international conference on Rapid Integration of Software Engineering Techniques
Running students' software tests against each others' code: new life for an old "gimmick"
Proceedings of the 43rd ACM technical symposium on Computer Science Education
A software craftsman's approach to data structures
Proceedings of the 43rd ACM technical symposium on Computer Science Education
SPW/ProSim'06 Proceedings of the 2006 international conference on Software Process Simulation and Modeling
Rolling the DICE® for agile software projects
XP'06 Proceedings of the 7th international conference on Extreme Programming and Agile Processes in Software Engineering
Test-Driven development: can it work for spreadsheet engineering?
XP'06 Proceedings of the 7th international conference on Extreme Programming and Agile Processes in Software Engineering
Integrated and automated abstract interpretation, verification and testing of c/c++ modules
Concurrency, Compositionality, and Correctness
Idea: using system level testing for revealing SQL injection-related error message information leaks
ESSoS'10 Proceedings of the Second international conference on Engineering Secure Software and Systems
Agile formal method engineering
IFM'05 Proceedings of the 5th international conference on Integrated Formal Methods
Model transformation by-example: a survey of the first wave
Conceptual Modelling and Its Theoretical Foundations
Test driven development: the state of the practice
Proceedings of the 50th Annual Southeast Regional Conference
Capturing performance assumptions using stochastic performance logic
ICPE '12 Proceedings of the 3rd ACM/SPEC International Conference on Performance Engineering
Using acceptance tests to validate accessibility requirements in RIA
Proceedings of the International Cross-Disciplinary Conference on Web Accessibility
Empirical support for two refactoring studies using commercial C# software
EASE'09 Proceedings of the 13th international conference on Evaluation and Assessment in Software Engineering
Towards simulation-aided design of multi-agent systems
ProMAS'10 Proceedings of the 8th international conference on Programming Multi-Agent Systems
Using spring Roo for the test-driven development of Web applications
Proceedings of the 27th Annual ACM Symposium on Applied Computing
The entity system architecture and its application in an undergraduate game development studio
Proceedings of the International Conference on the Foundations of Digital Games
An approach to test-driven development of conceptual schemas
Data & Knowledge Engineering
On teaching arrays with test-driven learning in WebIDE
Proceedings of the 17th ACM annual conference on Innovation and technology in computer science education
Emerging user interfaces through first-class viewers
CHINZ '03 Proceedings of the 4th Annual Conference of the ACM Special Interest Group on Computer-Human Interaction
Automatically finding performance problems with feedback-directed learning software testing
Proceedings of the 34th International Conference on Software Engineering
Proceedings of the 34th International Conference on Software Engineering
Proceedings of the 34th International Conference on Software Engineering
Restructuring unit tests with TestSurgeon
Proceedings of the 34th International Conference on Software Engineering
Software quality assurance economics
Information and Software Technology
Property-driven design for swarm robotics
Proceedings of the 11th International Conference on Autonomous Agents and Multiagent Systems - Volume 1
Extending alloy with partial instances
ABZ'12 Proceedings of the Third international conference on Abstract State Machines, Alloy, B, VDM, and Z
Advances in Software Engineering
Understanding and persuading adherence to test-driven development
Proceedings of the ninth annual international conference on International computing education research
Assisted behavior driven development using natural language processing
TOOLS'12 Proceedings of the 50th international conference on Objects, Models, Components, Patterns
Evaluation of tools for automated unit testing for applications in OSGi
Proceedings of the Fifth Balkan Conference in Informatics
A pattern for reconstructing test code based on test coverage
Proceedings of the 1st Asian Conference on Pattern Languages of Programs
Articulating everyday actions: an activity theoretical approach to scrum
Proceedings of the 30th ACM international conference on Design of communication
Multi-faceted support for MOOC in programming
Proceedings of the 13th annual conference on Information technology education
Three years of design-based research to reform a software engineering curriculum
Proceedings of the 13th annual conference on Information technology education
Proceedings of the ACM international symposium on New ideas, new paradigms, and reflections on programming and software
On the effects of pair programming on thoroughness and fault-finding effectiveness of unit tests
PROFES'07 Proceedings of the 8th international conference on Product-Focused Software Process Improvement
Quality impact of introducing component-level test automation and test-driven development
EuroSPI'07 Proceedings of the 14th European conference on Software Process Improvement
The impact of test-driven development on software development productivity: an empirical study
EuroSPI'07 Proceedings of the 14th European conference on Software Process Improvement
Proceedings of the 12th Koli Calling International Conference on Computing Education Research
Completeness-driven development
ICGT'12 Proceedings of the 6th international conference on Graph Transformations
Annotating answer-set programs in lana*
Theory and Practice of Logic Programming
A Source Code Change Impact Analysis Algorithm for Iterative Software Development
International Journal of Decision Support System Technology
An Analysis of Process Characteristics for Developing Scientific Software
Journal of Organizational and End User Computing
Journal of Cases on Information Technology
Scaffolding students' learning using test my code
Proceedings of the 18th ACM conference on Innovation and technology in computer science education
Incorporating Formal Techniques into Industrial Practice: an Experience Report
Electronic Notes in Theoretical Computer Science (ENTCS)
Proceedings of the 2013 International Symposium on Software Testing and Analysis
What good are strong specifications?
Proceedings of the 2013 International Conference on Software Engineering
An evaluation of interactive test-driven labs with WebIDE in CS0
Proceedings of the 2013 International Conference on Software Engineering
On extracting unit tests from interactive live programming sessions
Proceedings of the 2013 International Conference on Software Engineering
Supporting incremental programming with ghosts
Proceedings of the 2013 International Conference on Software Engineering
Strategies for avoiding text fixture smells during software evolution
Proceedings of the 10th Working Conference on Mining Software Repositories
Effective and ineffective software testing behaviors by novice programmers
Proceedings of the ninth annual international ACM conference on International computing education research
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
Engineering model transformations with transML
Software and Systems Modeling (SoSyM)
Learning agile software engineering practices using coding dojo
Proceedings of the 14th annual ACM SIGITE conference on Information technology education
Empirical Evaluation of Test Driven Modeling
International Journal of Information System Modeling and Design
A business protocol unit testing framework for web service composition
CAiSE'13 Proceedings of the 25th international conference on Advanced Information Systems Engineering
AUIC '13 Proceedings of the Fourteenth Australasian User Interface Conference - Volume 139
Designing multi-agent unit tests using systematic test design patterns-(extended version)
Engineering Applications of Artificial Intelligence
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
POETIC: Interactive solutions to alleviate the reversal error in student-professor type problems
International Journal of Human-Computer Studies
UI-design driven model-based testing
Innovations in Systems and Software Engineering
International Journal of Technology Enhanced Learning
On the role of tests in test-driven development: a differentiated and partial replication
Empirical Software Engineering
Hi-index | 0.00 |
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 do—drive 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 decisionsYou must write your own tests, since you can’t wait twenty times a day for someone else to write a testYour development environment must provide rapid response to small changesYour designs must consist of many highly cohesive, loosely coupled components, just to make testing easyThe two rules imply an order to the tasks ofprogramming:1. Red—write a little test that doesn’t work, perhaps doesn’t even compile at first2. Green—make the test work quickly, committing whatever sins necessary in the process3. Refactor—eliminate all the duplication created in just getting the test to workRed/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 workIf the number of nasty surprises can be reduced enough, project managers can estimate accurately enough to involve real customers in daily developmentIf the topics of technical conversations can be made clear enough, programmers can work in minute-by-minute collaboration instead of daily or weekly collaborationAgain, if the defect density can be reduced enough, we can have shippable software with new functionality every day, leading to new business relationships with customersSo, 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.CourageTest-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 tentativeMakes you want to communicate lessMakes you shy from feedbackMakes you grumpyNone 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 simplyWrite automated testsRefactor to add design decisions one at a timeThis 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.