Software maintenance work is often considered a dauntingly rigid activity - this book proves the opposite: it demands high levels of creativity and thinking outside the box. Highlighting the creative aspects of software maintenance and combining analytical and systems thinking in a holistic manner, the book motivates readers not to blithely follow the beaten tracks of ´´technical rationality´´. It delivers the content in a pragmatic fashion using case studies which are woven into long running story lines. The book is organized in four parts, which can be read in any order, except for the first chapter, which introduces software maintenance and evolution and presents a number of case studies of software failures. The ´´Introduction to Key Concepts´´ briefly introduces the major elements of software maintenance by highlighting various core concepts that are vital in order to see the forest for the trees. Each such concept is illustrated with a worked example. Next, the ´´Forward Engineering´´ part debunks the myth that being fast and successful during initial development is all that matters. To this end, two categories of forward engineering are considered: an inept initial project with a multitude of hard evolutionary phases and an effective initial project with multiple straightforward future increments. ´´Reengineering and Reverse Engineering´´ shows the difficulties of dealing with a typical legacy system, and tackles tasks such as retrofitting tests, documenting a system, restructuring a system to make it amenable for further improvements, etc. Lastly, the ´´DevOps´´ section focuses on the importance and benefits of crossing the development versus operation chasm and demonstrates how the DevOps paradigm can turn a loosely coupled design into a loosely deployable solution. The book is a valuable resource for readers familiar with the Java programming language, and with a basic understanding and/or experience of software construction and testing. Packed with examples for every elaborated concept, it offers complementary material for existing courses and is useful for students and professionals alike.
Comitês (ensembles) são um tipo de SMC - Sistema de Múltiplos Classificadores, que se caracteriza por ser um paradigma de aprendizado no qual uma coleção finita de alternativas globais para solução de um problema é avaliada em grupo com vistas a estabelecer, a partir delas, uma solução única para o problema. Para que isto ocorra, porém, é necessário que os agentes selecionados para compor o comitê sejam ao mesmo tempo acurados (eficazes) e diversos entre si, o que é conhecido na literatura como o dilema da diversidade versus acurácia. Diversas métricas para calcular a diversidade são encontradas na literatura, a dificuldade, no entanto, ainda reside na forma de medi-la não entre pares de agentes, mas do conjunto como um todo e avaliar a relevância relativa desta diversidade frente à acurácia destes mesmos agentes. A construção de um comitê envolve diversos parâmetros com vistas a melhor determinar seu tamanho e selecionar os agentes mais adequados a compô-lo. Sendo assim, motivado pelas limitações ainda existentes, este livro tem por objetivo principal realizar demonstrar estratégias que possibilitem a construção e o empregos de comitês.
Attention all SQL Pros, DAX is not just for writing Excel-based formulas! Get hands-on learning and expert advice on how to use the vast capabilities of the DAX language to solve common data modeling challenges. Beginning DAX with Power BI teaches key concepts such as mapping techniques from SQL to DAX, filtering, grouping, joining, pivoting, and using temporary tables, all aimed at the SQL professional. Join author Philip Seamark as he guides you on a journey through typical business data transformation scenarios and challenges, and teaches you, step-by-step, how to resolve challenges using DAX. Tips, tricks, and shortcuts are included and explained, along with examples of the SQL equivalent, in order to accelerate learning. Examples in the book range from beginner to advanced, with plenty of detailed explanation when walking through each scenario. What You´ll Learn Turbocharge your Power BI model by adding advanced DAX programming techniques Know when to use calculated measures versus calculated columns Generate new tables on the fly from existing data Optimize, monitor, and tune Power BI to improve performance of your models Discover new ideas, tricks, and time-saving techniques for better models Who This Book Is For Business intelligence developers, business analysts, or any SQL user who wants to use Power BI as a reporting tool. A solid understanding of SQL is recommended, as examples throughout the book include the DAX equivalents to SQL problem/solution scenarios.
Testing at Google Scale Product Description 2012 Jolt Award finalist! Pioneering the Future of Software Test Do you need to get it right, too? Then, learn from Google . Legendary testing expert James Whittaker, until recently a Google testing leader, and two top Google experts reveal exactly how Google tests software, offering brand-new best practices you can use even if you?re not quite Google?s size? yet! Breakthrough Techniques You Can Actually Use Discover 100% practical, amazingly scalable techniques for analyzing risk and planning tests?thinking like real users?implementing exploratory, black box, white box, and acceptance testing?getting usable feedback?tracking issues?choosing and creating tools?testing ?Docs & Mocks,? interfaces, classes, modules, libraries, binaries, services, and infrastructure?reviewing code and refactoring?using test hooks, presubmit scripts, queues, continuous builds, and more. With these techniques, you can transform testing from a bottleneck into an accelerator ?and make your whole organization more productive! Features + Benefits Presents pioneering testing techniques that can help any company moving to the cloud Shows how to achieve web-level scale for integration and system testing Offers expert guidance on managing end-to-end testing, including superior automation strategies Foreword by Alberto Savoia xiii Foreword by Patrick Copeland xvii Preface xxiii Chapter 1: Introduction to Google Software Testing 1 Quality?Test 5 Roles 6 Organizational Structure 8 Crawl, Walk, Run 10 Types of Tests 12 Chapter 2: The Software Engineer in Test 15 The Life of an SET 17 Development and Test Workflow 17 Who Are These SETs Anyway? 22 The Early Phase of a Project 22 Team Structure 24 Design Docs 25 Interfaces and Protocols 27 Automation Planning 28 Testability 29 SET Workflow: An Example 32 Test Execution 40 Test Size Definitions 41 Use of Test Sizes in Shared Infrastructure 44 Benefits of Test Sizes 46 Test Runtime Requirements 48 Case 1: Change in Common Library 52 Test Certified 54 An Interview with the Founders of the Test Certified Program 57 Interviewing SETs 62 An Interview with Tool Developer Ted Mao 68 An Interview with Web Driver Creator Simon Stewart 70 Chapter 3: The Test Engineer 75 A User-Facing Test Role 75 The Life of a TE 76 Test Planning 79 Risk 97 Life of a Test Case 108 Life of a Bug 113 Recruiting TEs 127 Test Leadership at Google 134 Maintenance Mode Testing 137 Quality Bots Experiment 141 BITE Experiment 153 Google Test Analytics 163 Free Testing Workflow 169 External Vendors 173 An Interview with Google Docs TE Lindsay Webster 175 An Interview with YouTube TE Apple Chow 181 Chapter 4: The Test Engineering Manager 187 The Life of a TEM 187 Getting Projects and People 189 Impact 191 An Interview with Gmail TEM Ankit Mehta 193 An Interview with Android TEM Hung Dang 198 An Interview with Chrome TEM Joel Hynoski 202 The Test Engineering Director 206 An Interview with Search and Geo Test Director Shelton Mar 207 An Interview with Engineering Tools Director Ashish Kumar 211 An Interview with Google India Test Director Sujay Sahni 214 An Interview with Engineering Manager Brad Green 219 An Interview with James Whittaker 222 Chapter 5: Improving How Google Tests Software 229 Fatal Flaws in Google´s Process 229 The Future of the SET 231 The Future of the TE 233 The Future of the Test Director and Manager 234 The Future of Test Infrastructure 234 In Conclusion 235 Appendix A: Chrome OS Test Plan 237 Overview of Themes 237 Risk Analysis 238 Per-Build Baseline Testing 239 Per-LKG Day Testing 239 Per-Release Testing 239 Manual Versus Automation 240 Dev Versus Test Quality Focus 240 Release Channels 240 User Input 241 Test Case Repositories 241 Test Dashboarding 241 Virtualization 241 Performance 242 Stress, Long-Running, and Stability 242 Test Execution Framework (Autotest) 242 OEMs 242 Hardware Lab 242 E2E Farm Automation 243 Testing the Browser AppManager 243 Browser Testability 243 Hardware 244 Timeline 244 Primary Test Drivers 246 Relevant Documents 246 Appendix B: Test Tours for Chrome 247 The Shopping Tour 247 The Student Tour 248 Suggested Areas to Test 248 The International Calling Tour 249 Suggested Areas to Test 249 The Landmark Tour 249 Suggested Landmarks in Chrome 249 The All Nighter Tour 250 Suggested Areas to Test 250 The Artisan´s Tour 251 Tools in Chrome 251 The Bad Neighborhood Tour 251 Bad Neighborhoods in Chrome OS 251 The Personalization Tour 252 Ways to Customize
The authors are renowned experts on the topic of testing in agile environments. They have remained very active and accessible in both the agile and testing communities since the publication of their first book. This shorter book supplements the lessons of its predecessor, and provides even more practical advice on how to successfully implement and manage a testing program in an agile setting. The book further defines agile testing and illustrates the tester?s role with contemporary examples from real agile teams. This book is another must for agile testers, agile teams, their managers, and their customers. Product Description Janet Gregory and Lisa Crispin pioneered the agile testing discipline with their previous work, Agile Testing . Now, in More Agile Testing, they reflect on all they?ve learned since. They address crucial emerging issues, share evolved agile practices, and cover key issues agile testers have asked to learn more about. Packed with new examples from real teams, this insightful guide offers detailed information about adapting agile testing for your environment; learning from experience and continually improving your test processes; scaling agile testing across teams; and overcoming the pitfalls of automated testing. You?ll find brand-new coverage of agile testing for the enterprise, distributed teams, mobile/embedded systems, regulated environments, data warehouse/BI systems, and DevOps practices. You?ll come away understanding ? How to clarify testing activities within the team ? Ways to collaborate with business experts to identify valuable features and deliver the right capabilities ? How to design automated tests for superior reliability and easier maintenance ? How agile team members can improve and expand their testing skills ? How to plan ?just enough,? balancing small increments with larger feature sets and the entire system ? How to use testing to identify and mitigate risks associated with your current agile processes and to prevent defects ? How to address challenges within your product or organizational context ? How to perform exploratory testing using ?personas? and ?tours? ? Exploratory testing approaches that engage the whole team, using test charters with session- and thread-based techniques ? How to bring new agile testers up to speed quickly?without overwhelming them The eBook edition of More Agile Testing also is available as part of a two-eBook collection, The Agile Testing Collection (9780134190624). Features + Benefits Codifies the latest thinking on testing for agile projects and builds upon the feedback received from the authors´ previous book Readers will come away from this book understanding how to get testers engaged in the agile development process Shows where testers and QA managers fit into the equation, and how the development and testing teams can work hand-in-hand on an agile project Another addition to the highly successful Mike Cohn Signature Series Foreword by Elisabeth Hendrickson xvii Foreword by Johanna Rothman xix Preface xxi Acknowledgments xxix About the Authors xxxiii About the Contributors xxxv Part I: Introduction 1 Chapter 1: How Agile Testing Has Evolved 3 Summary 6 Chapter 2: The Importance of Organizational Culture 7 Investing Time 8 The Importance of a Learning Culture 12 Fostering a Learning Culture 13 Transparency and Feedback Loops 15 Educating the Organization 17 Managing Testers 19 Summary 20 Part II: Learning for Better Testing 21 Chapter 3: Roles and Competencies 23 Competencies versus Roles 24 T-Shaped Skill Set 28 Generalizing Specialists 33 Hiring the Right People 36 Onboarding Testers 37 Summary 39 Chapter 4: Thinking Skills for Testing 41 Facilitating 42 Solving Problems 43 Giving and Receiving Feedback 45 Learning the Business Domain 46 Coaching and Listening Skills 48 Thinking Differently 49 Organizing 51 Collaborating 52 Summary 53 Chapter 5: Technical Awareness 55 Guiding Development with Examples 55 Automation and Coding Skills 56 General Technical Skills 59 Development Environments 59 Test Environments 60 Continuous Integration and Source Code Control Systems 62 Testing Quality Attributes 65 Test Design Techniques 67 Summary 67 Chapter 6: How to Learn 69 Learning Styles 69 Learning Resources 72 Time for Learning 77 Helping Others Learn 79 Summary 83 Part III: Planning?So You Don?t Forget the Big Picture 85 Chapter 7: Levels of Precision for Planning 87 Different Points of View 87 Planning for Regression Testing 97 Visualize What