Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
Skip header Section
Fit for Developing Software: Framework for Integrated Tests (Robert C. Martin)June 2005
Publisher:
  • Prentice Hall PTR
  • Upper Saddle River, NJ
  • United States
ISBN:978-0-321-26934-8
Published:01 June 2005
Skip Bibliometrics Section
Reflects downloads up to 08 Feb 2025Bibliometrics
Abstract

No abstract available.

Cited By

  1. ACM
    Costa P, Canedo E and Bonifácio R On the Use of Metaprogramming and Domain Specific Languages Proceedings of the VII Brazilian Symposium on Software Components, Architectures, and Reuse, (102-111)
  2. ACM
    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)
  3. ACM
    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)
  4. ACM
    Ricca F, Scanniello G, Torchiano M, Reggio G and Astesiano E (2014). Assessing the Effect of Screen Mockups on the Comprehension of Functional Requirements, ACM Transactions on Software Engineering and Methodology, 24:1, (1-38), Online publication date: 14-Oct-2014.
  5. Clavreul J, Baumeister H, Christensen T and Damgaard A (2014). An environmental assessment system for environmental technologies, Environmental Modelling & Software, 60:C, (18-30), Online publication date: 1-Oct-2014.
  6. Morrison P, Holmgreen C, Massey A and Williams L Proposing regulatory-driven automated test suites for electronic health record systems Proceedings of the 5th International Workshop on Software Engineering in Health Care, (46-49)
  7. Hsieh C, Tsai C and Cheng Y Test-duo Proceedings of the 8th International Workshop on Automation of Software Test, (89-92)
  8. Neto V, Coelho R, Leite L, Guerrero D and Mendonça A POPT: a problem-oriented programming and testing approach for novice students Proceedings of the 2013 International Conference on Software Engineering, (1099-1108)
  9. ACM
    Barbosa A, Paiva A and Campos J Test case generation from mutated task models Proceedings of the 3rd ACM SIGCHI symposium on Engineering interactive computing systems, (175-184)
  10. ACM
    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)
  11. 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.
  12. Atkinson C, Brenner D, Hummel O and Stoll D A Trustable Brokerage Solution for Component and Service Markets Proceedings of the 10th international conference on Software Reuse: High Confidence Software Reuse in Large Systems, (64-75)
  13. ACM
    Ricca F, Di Penta M, Torchiano M, Tonella P, Ceccato M and Visaggio C Are fit tables really talking? Proceedings of the 30th international conference on Software engineering, (361-370)
  14. ACM
    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)
  15. ACM
    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.
  16. ACM
    Baerisch S Model-driven test-case construction Proceedings of the the 6th joint meeting of the European software engineering conference and the ACM SIGSOFT symposium on The foundations of software engineering, (587-590)
  17. ACM
    Baerisch S Model-driven test-case construction The 6th Joint Meeting on European software engineering conference and the ACM SIGSOFT symposium on the foundations of software engineering: companion papers, (587-590)
  18. ACM
    Ricca F, Torchiano M, Ceccato M and Tonella P Talking tests Ninth international workshop on Principles of software evolution: in conjunction with the 6th ESEC/FSE joint meeting, (51-58)
  19. Au O, Stone R and Cooke J Precise scenarios Proceedings of the 6th international conference on Integrated formal methods, (21-36)
  20. ACM
    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.
  21. ACM
    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)
  22. 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)
  23. Andrea J (2007). Envisioning the Next Generation of Functional Testing Tools, IEEE Software, 24:3, (58-66), Online publication date: 1-May-2007.
  24. Ostroff J and Torshizi F Testable requirements and specifications Proceedings of the 1st international conference on Tests and proofs, (17-40)
  25. ACM
    Elssamadisy A and Whitmore J Functional testing Proceedings of the 2006 conference on Pattern languages of programs, (1-13)
  26. ACM
    Bergin J Patterns for agile development practice part 3 (version 4) Proceedings of the 2006 conference on Pattern languages of programs, (1-14)
  27. ACM
    Sauvé J, Abath Neto O and Cirne W EasyAccept Proceedings of the 2006 international workshop on Automation of software test, (111-117)
  28. Mugridge R Expressing business rules Proceedings of the 6th international conference on Extreme Programming and Agile Processes in Software Engineering, (278-279)
  29. 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)
Contributors
  • The University of Auckland
  • Microsoft Corporation

Reviews

Fernando Berzal

Clarity and precision are the keys to improving communication between the people who need a software system and the people who must develop it. Clear and simple structures, such as tables to capture requirements, can help. Moreover, automating tests from these tabular data collections can provide immediate feedback and greatly support iterative software development processes (such as the agile development methodologies that are currently popular). These two observations are the cornerstone of Mugridge and Cunningham's framework for integrated tests (Fit). Fit was developed and released in 2002 by Cunningham with the goal of providing a technique nonprogrammers could easily employ to specify business requirements, and a tool programmers could resort to in order to automatically test such requirements. Technical and nontechnical members of a project can thus collaborate to ensure the business value of software. Fit helps close the "gap between the software that [is] written and the software the user [wants]" (an insightful aphorism by Dave Thomas). This book actually contains two separate books written for different audiences. The first half of the book is written for nonprogrammers, such as end users or customers. It shows us how to define the functionality of a system using tabular data (Fit tables). The second half is written for the programmers who will prepare the fixtures that mediate between the Fit tables and the system being tested. Fit fixtures interpret the data in Fit tables and automate system testing. In the first half of the book, readers will learn how to prepare Fit tables based on business rules. Nonprogrammers can read and write them, a feature that makes Fit stand apart from other popular testing tools. A variety of Fit tables can be prepared to test a system, from those containing traditional test cases (where actual inputs and desired outputs are specified to check calculations) to flexible tables describing scenarios that detail the complete workflow of business processes. The authors clearly describe how tests can be prepared as Excel spreadsheets or Hypertext Markup Language (HTML) tables, show us how to organize large test suites, and introduce a wiki-based interface to Fit named FitNesse, which can be useful for creating, managing, and running Fit tests. A case study is used to illustrate how to incorporate Fit into the development process. This part focuses on agile approaches, describing how Fit tables evolve over time (both in content and structure), how "story tests" can be used in test-driven development, and how "smells" (signs of trouble) indicate that Fit tables should be refactored. The second half of the book focuses on the development of the Fit fixtures needed by the examples scattered throughout the first half of the book. The fixture of a Fit table determines how the table will be used in automated testing. Ten short chapters provide a good tutorial on writing fixtures, which are usually derived by inheritance from core fixtures. Readers will also learn the basics of writing custom fixtures. Some issues that arise in connecting tests to the system being tested are also discussed. The authors briefly address common techniques in testing legacy systems, such as testing through the user interface, reducing dependencies among components, and introducing mock objects to facilitate testing. Finally, a short section is devoted to Fit internals, although this will only be relevant for readers interested in extending Fit (for instance, those who have test data in other formats that they don't want to convert to HTML tables). Here, the authors skim through model-based test generation, but they provide only a shallow description of a very valuable Fit application. I have no doubt that Fit is a useful tool. However, even though the authors do a great job motivating the reasons for using Fit, they tend to mix the benefits of using their particular tool with those coming from the application of good development practices. This is particularly evident in chapter 36, "Closing for Programmers at RPS," where the change in attitude and morale at the fictitious RPS company cannot be directly attributed to Fit in particular, but to a host of extreme programming practices that, when combined, produce the intended "getting fit" effect. In short, I would recommend this tutorial-style book to anyone interested in facilitating communication among businesspeople and software developers in the preparation of acceptance tests. However, its manifest tool orientation detracts from the more in-depth discussions of the truly relevant topics that would let this book stand the test of time. In any case, the book is clearly written and easy to follow, and its informal style makes learning Fit a breeze. Online Computing Reviews Service

Access critical reviews of Computing literature here

Become a reviewer for Computing Reviews.

Recommendations