Test-driven development (TDD) is a new approach to application development that is designed to eliminate the fear often associated with building software. Admittedly, some fear is healthy (often viewed as a conscience that tells programmers to
By taking you through the development of a real web application from beginning to end, the second edition of this hands-on guide demonstrates the practical advantages of test-driven development (TDD) with Python.
Das Buch versucht, dem C++-Entwickler das Testen nahe zu bringen. Es beschränkt sich dabei auf den Test von Komponenten (Units). Dabei achten die Autoren darauf, dass der Testaufwand angemessen ist. Den Lesern wird dazu ein ´´Test-Büffet´´, also eine Auswahl verschiedener Verfahren angeboten, die sie nicht nur zum direkten Testen, sondern auch für die testgetriebene Entwicklung (TDD = test driven development) verwenden können. Dazu gehören die vorbereitende automatisierte statischen Analyse des vorhandenen Programmcodes ebenso wie Verfahren zur Laufzeit des zu prüfenden Programms. Es gibt nicht das eine Testentwurfsverfahren, mit dem alle Fehler aufgedeckt werden, sinnvoll ist immer eine Kombination von mehreren Verfahren, die vom Entwickler passend zum Problem auszusuchen sind. Wie intensiv und ausgiebig die einzelnen Verfahren anzuwenden sind, bleibt dem Entwickler überlassen, er kennt sein Testobjekt am besten. Die Autoren geben Empfehlungen, welche Reihenfolge anzuraten ist und welche Verfahren in welchem Umfang gut zusammen passen. Die Autoren stellen die verschiedenen Standardtestverfahren vor und zeigen dazu Beispiele in C++, wobei sie das Googletest-Framework verwenden.
Learn a use-case approach for developing Java enterprise applications in a continuously test-driven fashion. With this hands-on guide, authors and JBoss project leaders Andrew Lee Rubinger and Aslak Knutsen show you how to build high-level components, from persistent storage to the user interface, using the Arquillian testing platform and several other JBoss projects and tools. Through the course of the book, you?ll build a production-ready software conference tracker called GeekSeek, using source code from GitHub. Rubinger and Knutsen demonstrate why testing is the very foundation of development?essential for ensuring that code is consumable, complete, and correct. * Bootstrap an elementary Java EE project from start to finish before diving into the full-example application, GeekSeek * Use both relational and NoSQL storage models to build and test GeekSeek?s data persistence layers * Tackle testable business logic development and asynchronous messaging with an SMTP service * Expose enterprise services as a RESTful interface, using Java EE?s JAX-RS framework * Implement OAuth authentication with JBoss?s PicketLink identity management service * Validate the UI by automating interaction in the browser and reading the rendered page * Perform full-scale integration testing on the final deployable archive
Foreword by Kent Beck The authors of this book have led a revolution in the craft of programming by controlling the environment in which software grows.´´ --Ward Cunningham ´´At last, a book suffused with code that exposes the deep symbiosis between TDD and OOD. This one´s a keeper.´´ --Robert C. Martin ´´If you want to be an expert in the state of the art in TDD, you need to understand the ideas in this book.´´-- Michael Feathers Test-Driven Development (TDD) is now an established technique for delivering better software faster. TDD is based on a simple idea: Write tests for your code before you write the code itself. However, this simple idea takes skill and judgment to do well. Now there´s a practical guide to TDD that takes you beyond the basic concepts. Drawing on a decade of experience building real-world systems, two TDD pioneers show how to let tests guide your development and ´´grow´´ software that is coherent, reliable, and maintainable. Steve Freeman and Nat Pryce describe the processes they use, the design principles they strive to achieve, and some of the tools that help them get the job done. Through an extended worked example, you´ll learn how TDD works at multiple levels, using tests to drive the features and the object-oriented structure of the code, and using Mock Objects to discover and then describe relationships between objects. Along the way, the book systematically addresses challenges that development teams encounter with TDD--from integrating TDD into your processes to testing your most difficult features. Coverage includes - Implementing TDD effectively: getting started, and maintaining your momentum throughout the project - Creating cleaner, more expressive, more sustainable code - Using tests to stay relentlessly focused on sustaining quality - Understanding how TDD, Mock Objects, and Object-Oriented Design come together in the context of a real software development project - Using Mock Objects to guide object-oriented designs - Succeeding where TDD is difficult: managing complex test data, and testing persistence and concurrency
Learn to build Rails-based web applications using all the latest features offered in Rails 5.2. Author Stefan Wintermeyer begins by teaching the basics of Ruby 2.5 before proceeding through all aspects of Rails, utilizing clean, succinct examples - rather than a single large application. This book covers topics including Active Storage, Credentials, Active Record, Scaffolding, REST, Routing, Bundler, Forms, Cookies, and Sessions, all of which are vital for modern Rails web applications. To complement these topics you´ll also learn about test-driven development, Action Cable, Active Job, Action Mailer, I18n, Asset Pipeline, and caching. Finally, you´ll see a how-to for a production web server with nginx. This complete set of skills will set you up for a future of efficient and elegant Rails coding. What You Will Learn Use the Ruby on Rails web development framework Install and manage the Rails framework Persist data for your web application with Active Record Work with forms Apply a test-driven development approach to your Rails-based web applications Discover many Rails secrets and tips Who This Book Is For Beginners with at least some prior programming experience. Ruby experience is helpful, but not required.
Design, develop, and deploy a real-world web application by leveraging modern open source technologies. This book shows you how to use ASP.NET Core to build cross-platform web applications along with SignalR to enrich the application by enabling real-time communication between server and clients. You will use Docker to containerize your application, integrate with GitHub to package the application, and provide continuous deployment to Azure´s IaaS platform. Along the way, Real-Time Web Application Development covers topics including designing a Materialize CSS theme, using a test-driven development approach with xUnit.net, and securing your application with the OAuth 2.0 protocol. To further your understanding of the technology, you will learn logging and exception handling; navigation using view components; and how to work with forms and validations. The rich code samples from this book can be used to retrofit or upgrade existing ASP.NET Core applications. What You Will Learn Design and develop a real-world web application Implement security and data storage with OAuth2 and Azure Table Storage Orchestrate real-time notifications through SignalR Use GitHub and Travis CI for continuous integration of code Master Docker containerization and continuous deployment with Docker Cloud to Azure Linux virtual machines Who This Book Is For Developers and software engineers interested in learning an end-to-end approach to application development using Microsoft technologies.
To lead change, you need to expand your toolkit, and this book gives you the tools you need to make the transition from agile practitioner to agile coach. Agile Coaching is all about working with people to create great agile teams. You´ll learn how to build a team that produces great software and has fun doing it. In the process, you´ll grow a team that´s self-sufficient and skillful. This book provides you with deeper knowledge of how agile practices work and how to inspire your team to improve. Discover how to coach your team through the agile lifecycle, from planning to writing software. Learn the secrets of running effective agile meetings and how to get your team following a consistent approach to creating software. You´ll find chapters dedicated to introducing Test-Driven Development, designing Retrospectives, and making progress visible.Find out what works and what to avoid when introducing agile practices to your team. Throughout the book the authors share their personal coaching stories from experience with real teams, giving you insights into what works and what to avoid. Each chapter also covers hurdles that you and your team may face and what to do to clear them.