Full Stack Testing A Practical Guide for Delivering High Quality Software (Gayathri Mohan) (Z-Library)

Author: Gayathri Mohan

科学

Testing is a critical discipline for any organization looking to deliver high-quality software. This practical book provides software developers and QA engineers with a comprehensive one-stop guide to testing skills in 10 different categories. You'll learn appropriate strategies, concepts, and practical implementation knowledge you can apply from both a development and testing perspective for web and mobile applications. Author Gayathri Mohan offers examples of more than 40 tools you can use immediately. You'll acquire the skills to conduct exploratory testing, test automation, cross-functional testing, data testing, mobile testing, and visual testing, as well as tests for performance, security, and accessibility. You'll learn to integrate them in continuous integration pipelines to gain faster feedback. Once you dive into this guide, you'll be able to tackle challenging development workflows with a focus on quality. With this book, you will: • Learn how to employ various testing types to yield maximum quality in your projects • Explore new testing methods by following the book's strategies and concepts • Learn how to apply these tools at work by following detailed examples • Improve your skills and job prospects by gaining a broad exposure to testing best practices

📄 File Format: PDF
💾 File Size: 18.6 MB
17
Views
0
Downloads
0.00
Total Donations

📄 Text Preview (First 20 pages)

ℹ️

Registered users can read the full content for free

Register as a Gaohf Library member to read the complete e-book online for free and enjoy a better reading experience.

📄 Page 1
(This page has no text content)
📄 Page 2
“Gayathri’s book provides the necessary perspective for teams to understand a holistic view of testing.” —Neal Ford Director/Software Architect/Meme Wrangler at Thoughtworks; Author of Software Architecture: The Hard Parts “Gayathri’s book should find its way to the desktops of people who write (and, therefore, are bound to test) software.” —Saleem Siddiqui Author of Learning Test-Driven Development SOF T WARE DEVELOPMENT Full Stack Testing US $59.99 CAN $74.99 ISBN: 978-1-098-10813-7 Twitter: @oreillymedia linkedin.com/company/oreilly-media youtube.com/oreillymedia Testing is a critical discipline for any organization looking to deliver high-quality software. This practical book provides software developers and QA engineers with a comprehensive one-stop guide to testing skills in 10 different categories. You’ll learn appropriate strategies, concepts, and practical implementation knowledge you can apply from both a development and a testing perspective for web and mobile applications. Author Gayathri Mohan offers examples of more than 40 tools you can use immediately. Software testing professionals and beginners alike will acquire the skills to conduct tests for performance, security, and accessibility, including exploratory testing, test automation, cross-functional testing, data testing, mobile testing, and more. You’ll also learn to combine them in continuous integration pipelines to gain faster feedback. With this guide, you’ll be able to tackle challenging development workflows with a focus on quality. With this book, you will: • Learn how to employ various testing types to yield maximum quality in your projects • Explore new testing methods by following the book’s strategies and concepts • Learn how to apply these tools at work by following detailed examples • Improve your skills and job prospects by gaining a broad exposure to testing best practices Gayathri Mohan is a principal consultant at Thoughtworks, where she manages large quality assurance (QA) teams for clients. A passionate technology leader with expertise across multiple software development roles and technical and industrial domains, she also served as the company’s global QA SME and as office tech principal. M oha n
📄 Page 3
Praise for Full Stack Testing From manual exploratory testing to creating test strategies across various quality dimensions and working with emerging technologies, this book covers a lot of ground for beginner as well as experienced quality analysts. Gayathri has done a phenomenal job of distilling just enough theory to introduce the topic and follow it with practical examples so you can apply them in your projects with existing tools and frameworks. —Bharani Subramaniam, head of technology for Thoughtworks India An expansive survey of testing strategies and patterns that covers its subject in both breadth and depth. The theoretical underpinnings of various forms of testing are backed by practical, hands-on examples in several chapters. Gayathri’s book should find its way to the desktops of people who write (and, therefore, are bound to test) software. —Saleem Siddiqui, author of Learning Test-Driven Development This book provides a bird’s-eye view of full stack testing and will help you learn about testing and enhance corporate processes related to software testing. I would recommend the book to quality assurance engineers, technical project managers, and software architects. The book gives a railway map of different paths and approaches that can be applied and investigated depending on the application scope, budget, and time frames. —Nigar Akif Movsumova, software engineer at EPAM Systems
📄 Page 4
The term full stack development refers to additional skills a developer should have to carry out their job. Full stack testing pertains to the software being tested, and it encompasses all technologies, processes, people skills, and various types of testing that are to be performed to make software better. Full Stack Testing by Gayathri Mohan insightfully covers these multifaceted topics, empowering readers to deliver high-quality software. —Srinivasan Desikan, adjunct professor and author of Software Testing: Principles and Practices Like the proverbial blindfolded team members trying to individually feel their way to understanding an elephant, Gayathri’s book provides the necessary perspective for teams to understand a holistic view of testing. While individual testing yields positive results, understanding the full stack enables better whole-project outcomes. —Neal Ford, director/software architect/meme wrangler at Thoughtworks and author of Software Architecture: The Hard Parts
📄 Page 5
Gayathri Mohan Full Stack Testing A Practical Guide for Delivering High Quality Software Boston Farnham Sebastopol TokyoBeijing
📄 Page 6
978-1-09810-813-7 [LSI] Full Stack Testing by Gayathri Mohan Copyright © 2022 Gayathri Mohan. All rights reserved. Printed in the United States of America. Published by O’Reilly Media, Inc., 1005 Gravenstein Highway North, Sebastopol, CA 95472. O’Reilly books may be purchased for educational, business, or sales promotional use. Online editions are also available for most titles (http://oreilly.com). For more information, contact our corporate/institutional sales department: 800-998-9938 or corporate@oreilly.com. Acquisitions Editor: Melissa Duffield Development Editor: Jill Leonard Production Editor: Jonathon Owen Copyeditor: Rachel Head Proofreader: Liz Wheeler Indexer: nSight, Inc. Interior Designer: David Futato Cover Designer: Karen Montgomery Illustrator: Kate Dullea June 2022: First Edition Revision History for the First Edition 2022-06-03: First Release See http://oreilly.com/catalog/errata.csp?isbn=9781098108137 for release details. The O’Reilly logo is a registered trademark of O’Reilly Media, Inc. Full Stack Testing, the cover image, and related trade dress are trademarks of O’Reilly Media, Inc. The views expressed in this work are those of the author and do not represent the publisher’s views. While the publisher and the author have used good faith efforts to ensure that the information and instructions contained in this work are accurate, the publisher and the author disclaim all responsibility for errors or omissions, including without limitation responsibility for damages resulting from the use of or reliance on this work. Use of the information and instructions contained in this work is at your own risk. If any code samples or other technology this work contains or describes is subject to open source licenses or the intellectual property rights of others, it is your responsibility to ensure that your use thereof complies with such licenses and/or rights. This work is part of a collaboration between O’Reilly and Harness. See our statement of editorial inde‐ pendence.
📄 Page 7
Table of Contents Foreword. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xi Preface. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xiii 1. Introduction to Full Stack Testing. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 Full Stack Testing for High Quality 3 Shift-Left Testing 5 Ten Full Stack Testing Skills 8 Key Takeaways 12 2. Manual Exploratory Testing. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 Building Blocks 15 Exploratory Testing Frameworks 15 Exploring a Functionality 23 Manual Exploratory Testing Strategy 27 Understand the Application 28 Explore in Parts 30 Repeat Exploratory Testing in Phases 31 Exercises 32 API Testing 32 Web UI Testing 39 Perspectives: Test Environment Hygiene 44 Key Takeaways 46 3. Automated Functional Testing. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49 Building Blocks 51 Introduction to Micro and Macro Test Types 51 Automated Functional Testing Strategy 56 v
📄 Page 8
Exercises 58 UI Functional Tests 59 Service Tests 77 Unit Tests 81 Additional Testing Tools 85 Pact 85 Karate 89 AI/ML Tools in Automated Functional Testing 90 Perspectives 91 Antipatterns to Overcome 92 100% Automation Coverage! 93 Key Takeaways 95 4. Continuous Testing. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97 Building Blocks 98 Introduction to Continuous Integration 98 The CI/CT/CD Process 99 Principles and Etiquette 103 Continuous Testing Strategy 105 Benefits 109 Exercise 111 Git 111 Jenkins 114 The Four Key Metrics 118 Key Takeaways 120 5. Data Testing. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121 Building Blocks 122 Databases 124 Caches 128 Batch Processing Systems 129 Event Streams 131 Data Testing Strategy 132 Exercises 134 SQL 134 JDBC 140 Apache Kafka and Zerocode 143 Additional Testing Tools 151 Test Containers 151 Deequ 152 Key Takeaways 154 vi | Table of Contents
📄 Page 9
6. Visual Testing. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155 Building Blocks 156 Introduction to Visual Testing 156 Project/Business-Critical Use Cases 158 Frontend Testing Strategy 160 Unit Tests 161 Integration/Component Tests 161 Snapshot Tests 163 Functional End-to-End Tests 164 Visual Tests 164 Cross-Browser Testing 165 Frontend Performance Testing 166 Accessibility Testing 166 Exercises 167 BackstopJS 167 Cypress 172 Additional Testing Tools 175 Applitools Eyes, an AI-Powered Tool 176 Storybook 177 Perspectives: Visual Testing Challenges 178 Key Takeaways 179 7. Security Testing. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 181 Building Blocks 183 Common Cyberattacks 184 The STRIDE Threat Model 187 Application Vulnerabilities 189 Threat Modeling 191 Security Testing Strategy 199 Exercises 201 OWASP Dependency-Check 202 OWASP ZAP 203 Additional Testing Tools 210 Snyk IDE Plug-in 211 Talisman Pre-Commit Hook 211 Chrome DevTools and Postman 212 Perspectives: Security Is a Habit 213 Key Takeaways 214 8. Performance Testing. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 215 Backend Performance Testing Building Blocks 216 Performance, Sales, and Weekends Off Are Correlated! 216 Table of Contents | vii
📄 Page 10
Simple Performance Goals 217 Factors Affecting Application Performance 217 Key Performance Indicators 219 Types of Performance Tests 221 Types of Load Patterns 222 Performance Testing Steps 224 Exercises 227 Step 1: Define the Target KPIs 227 Step 2: Define the Test Cases 229 Steps 3–5: Prepare the Data, Environment, and Tools 229 Step 6: Script the Test Cases and Run Them Using JMeter 230 Additional Testing Tools 237 Gatling 237 Apache Benchmark 238 Frontend Performance Testing Building Blocks 239 Factors Affecting Frontend Performance 241 RAIL Model 242 Frontend Performance Metrics 243 Exercises 244 WebPageTest 245 Lighthouse 248 Additional Testing Tools 251 PageSpeed Insights 251 Chrome DevTools 252 Performance Testing Strategy 253 Key Takeaways 255 9. Accessibility Testing. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 257 Building Blocks 258 Accessibility User Personas 259 Accessibility Ecosystem 260 Example: Screen Readers 261 WCAG 2.0: Guiding Principles and Levels 262 Level A Conformance Standards 263 Accessibility Enabled Development Frameworks 266 Accessibility Testing Strategy 266 Accessibility Checklist in User Stories 267 Automated Accessibility Auditing Tools 268 Manual Testing 268 Exercises 270 WAVE 270 Lighthouse 274 viii | Table of Contents
📄 Page 11
Lighthouse Node Module 276 Additional Testing Tools 277 Pa11y CI Node Module 278 Axe-core 278 Perspectives: Accessibility as a Culture 279 Key Takeaways 279 10. Cross-Functional Requirements Testing. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 281 Building Blocks 282 CFR Testing Strategy 284 Functionality 286 Usability 287 Reliability 288 Performance 289 Supportability 289 Other CFR Testing Methods 290 Chaos Engineering 290 Architecture Testing 294 Infrastructure Testing 296 Compliance Testing 298 Perspectives: Evolvability and the Test of Time! 301 Key Takeaways 302 11. Mobile Testing. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 305 Building Blocks 306 Introduction to the Mobile Landscape 306 Mobile App Architecture 311 Mobile Testing Strategy 312 Manual Exploratory Testing 315 Functional Automated Testing 316 Data Testing 316 Visual Testing 317 Security Testing 317 Performance Testing 318 Accessibility Testing 319 CFR Testing 320 Exercises 321 Appium 322 Appium Visual Testing Plug-in 329 Additional Testing Tools 332 Android Studio’s Database Inspector 333 Performance Testing Tools 334 Table of Contents | ix
📄 Page 12
Security Testing Tools 336 Accessibility Scanner 337 Perspectives: The Mobile Test Pyramid 338 Key Takeaways 339 12. Moving Beyond in Testing. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 341 First Principles in Testing 341 Defect Prevention over Defect Detection 342 Empathetic Testing 343 Micro- and Macro-Level Testing 343 Fast Feedback 344 Continuous Feedback 345 Measuring Quality Metrics 345 Communication and Collaboration Are Key to Quality 347 Soft Skills Aid in Building a Quality-First Mindset 347 Conclusion 350 13. Introduction to Testing in Emerging Technologies. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 351 Artificial Intelligence and Machine Learning 352 Introduction to Machine Learning 352 Testing ML Applications 354 Blockchain 356 Introduction to Blockchain Concepts 356 Testing Blockchain Applications 359 Internet of Things 360 Introduction to the IoT’s Five-Layer Architecture 361 Testing IoT Applications 363 Augmented Reality and Virtual Reality 365 Testing AR/VR Applications 365 Index. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 367 x | Table of Contents
📄 Page 13
Foreword The term shift left, which refers to performing an activity earlier or to the left along a timeline, is becoming increasingly common. We hear about why it is important to shift left design, security, and, most relevant here, testing. Bringing testing forward in the software development life cycle decreases the cost and complexity of fixing bugs because they are found closer to when they were created, which establishes more of a context for what could have caused things to go wrong. When we think about things like performance testing, we can start looking for trends before we start actually wor‐ rying about the specific values. This again allows us to spot when performance wor‐ sens significantly. We can then explore if this means that we’ve hit something that is fundamentally less performant or if perhaps we just made a mistake that caused the performance degradation. While shifting testing left means tests are run against software that is known to be incomplete and subject to change, the enhanced ability to fix issues that arise far out‐ weighs the costs of continuous testing, particularly when a significant portion of the test suite is automated. While some tests and some styles of testing, like exploratory testing, need to be done manually, tests that can be automated should be. There are all kinds of testing to be done, and the title of Gayathri’s book is apt. Full stack testing gives a comprehensive overview of testing across the entire stack, look‐ ing at performance, UI, contract, end-to-end functional, unit testing, and even acces‐ sibility testing. The question for many involved in testing revolves around knowing how to do testing across the full stack. That’s where this book comes in. While there are many books about testing and even about agile testing, which does advocate for shifting testing left, Gayathri’s book looks in-depth at each aspect of testing a modern application. The book describes the issues that arise in each aspect of testing and looks at principles and strategies that apply to that aspect of testing. Each of these sections then includes a set of hands-on exercises that demonstrate con‐ cretely how to actually do such testing. Now, I recognize the specific exercises and the tools included in the exercises may change and evolve in time. However, these xi
📄 Page 14
exercises are of value even if the tools do change, because they show how to use tools to construct the right kinds of tests. The exercises make the testing approach con‐ crete; the tools provide the ability to experiment on tests of that nature. The tools will inevitably continue to evolve, but the testing strategies you will learn will have a much longer shelf life. The range of testing approaches in Gayathri’s book is broad, encompassing static analysis, data testing strategies, and even exploratory testing. Given the growing com‐ plexity of our software systems, the role of exploratory testing becomes increasingly important. In addition, security testing is given its own chapter, as we all know how much more vulnerable our systems are to hackers. Accessibility testing also has its chapter, describing how we can make our systems easier to use, even for those who are disabled. Each aspect of testing requires looking at what kinds of things might go wrong and then creating a testing strategy to uncover things that have gone wrong. A properly constructed test suite across the range of test types provides the safety net that allows us to evolve our software systems with confidence. Gayathri’s book, based on her experience testing different types of systems, guides software professionals in creating the proper testing strategies and suites. — Dr. Rebecca Parsons Chief Technology Officer at Thoughtworks, coauthor of Building Evolutionary Architectures xii | Foreword
📄 Page 15
Preface If you’re in the software industry, it is highly unlikely that you won’t have worn the testing hat at least once, irrespective of your role. That’s because testing is such an integral aspect of software engineering, woven into every stage of the software deliv‐ ery cycle. With the exponential adoption of digitization today, where various web and mobile applications have become so enmeshed in people’s daily lives, testing along various quality dimensions has become imperative. When we look at testing as a software discipline, we can see how it has undergone its own trajectory of evolution over the many decades of its existence, growing to incor‐ porate new practices, frameworks, methodologies, and tools. Manual testing has evolved into manual exploratory testing, and remains a fundamental part of the test‐ ing discipline today. In the meantime, the rise of automated testing combined with continuous integration and continuous deployment (CI/CD) practices has caused the value derived from testing to skyrocket. Moving beyond functional use cases, auto‐ mated testing of cross-functional requirements such as performance, security, and reliability to receive holistic feedback and continuously deliver high-quality software is the critical need of the hour. This is why full stack testing is viewed as a desirable specialization today in the industry. I presume you’re here because you want to tran‐ spile into a full stack tester so you can deliver high-quality software at work—first, kudos to your commitment, and second, welcome aboard! Why I Wrote This Book I would like to humbly tell you that many testing experts before me could have writ‐ ten this book, and it didn’t need to be me. Perhaps their responsibilities did not allow them the time, or they lacked the inclination; whatever the reason, the opportunity has fallen to me, and I am grateful for it! (Although if some other expert had written this book back when I was a beginner in testing, it would have saved me a lot of effort: I had to rummage through hundreds of blogs and try out dozens of tools myself to acquire the testing skills I’ve accumulated over many years.) xiii
📄 Page 16
Through my experience consulting with clients in my day-to-day job, I’ve observed that the teams that have implemented a wise testing strategy have mostly succeeded, while most of those that didn’t failed miserably. For instance, I have seen client teams that relied exclusively on UI-driven end-to-end tests and burned themselves out with maintenance tasks, or that only did manual testing and faced a lot of production defects. Some teams only did functional testing, failing to uncover critical non- functional issues. Overall, such teams were characterized by poor software quality, an unhappy team, and a lack of competitive edge. It’s a surprise to me that such a skew in the understanding of testing practices still exists today, when testing as a discipline has been around for decades. I can only assume that this is largely due to a lack of testing talent in the industry, and with the ongoing cold war among the software companies to plunder the best talent, it is only fair to share and spread the knowledge widely. Although there are several testing tutorials on individual tools out there, there isn’t a coherent narrative on how to upskill oneself on the current testing trends with practi‐ cal examples using different tools. And for many niche skills like security and accessi‐ bility testing, consumable materials for beginners to read are not widely available. This book aims to be a comprehensive resource that will enable a beginner in testing to upskill themselves to an advanced beginner level in all of the skills essential for web and mobile application testing today. If you’re wondering what I mean by advanced beginner, I’m referring to the Dreyfus model of skill acquisition, which elaborates five stages through which an individual progresses as they gain a skill: novice, advanced beginner, competent, proficient, and expert. This book is written with the ambitious goal of catapulting its readers through the first two stages across 10 different testing skills, with practical examples. Given that the third stage is competent, which can be achieved only with extensive practice, I believe the book takes its readers as far as it can! Who Should Read This Book? This book is primarily tailored for beginners in software testing and existing software testing professionals who want to expand their breadth of knowledge. That said, any software role whose responsibilities overlap with testing, such as an application devel‐ oper or DevOps engineer, could benefit from the book. In all cases, a fundamental requirement is to possess some coding knowledge, especially in Java, as the book has hands-on exercises in Java and, in some places, JavaScript. Also, if you are a reader who is new to the software industry, I would recommend doing a preliminary read on software development processes such as the Agile and waterfall methodologies before diving into this book. xiv | Preface
📄 Page 17
Navigating This Book The book starts with an introduction to full stack testing and elaborates on the 10 testing skills that are essential to delivering high-quality web and mobile applications. Once the foundations are established, there are 10 independent skill development chapters. Each of these chapters contains the following structural elements: • The topics essential for context setting are grouped under the “Building Blocks” heading. If you are new to the skill, this section will give insight into what it involves and why and where the skill needs to be applied. • This is followed by a strategy section, which elaborates on how to apply the skill in a given situation. • Then there are exercises that guide the readers with step-by-step instructions on executing the skill using multiple tools. • There is also an “Explore More Tools” section in some chapters, where parallel tools that are similar to the ones discussed in the exercises section, or other tools that may add value at some point for the readers during their practice, are dis‐ cussed further to enrich the reader’s grasp of the skill. • Lastly, you will find my perspectives, based on personal observations and experi‐ ence, in some of the chapters, followed by key takeaways, which are a concise overview of the lessons learned in each chapter. After the 10 skill development chapters, the book talks about how to move further in testing with the help of first principles and individual soft skills. There is also a bonus chapter for enthusiastic readers that serves as an introduction to testing in emerging technologies. It presents a brief on testing in four emerging technologies—AI/ML, blockchain, IoT, and AR/VR—with the intention of assisting readers in kick-starting their learning in those areas as well. Conventions Used in This Book The following typographical conventions are used in this book: Italic Indicates new terms, URLs, email addresses, filenames, and file extensions. Constant width Used for program listings, as well as within paragraphs to refer to program ele‐ ments such as variable or function names, databases, data types, environment variables, statements, and keywords. Constant width bold Shows commands or other text that should be typed literally by the user. Preface | xv
📄 Page 18
Constant width italic Shows text that should be replaced with user-supplied values or by values deter‐ mined by context. This element signifies a tip or suggestion. This element signifies a general note. This element indicates a warning or caution. O’Reilly Online Learning For more than 40 years, O’Reilly Media has provided technol‐ ogy and business training, knowledge, and insight to help companies succeed. Our unique network of experts and innovators share their knowledge and expertise through books, articles, and our online learning platform. O’Reilly’s online learning platform gives you on-demand access to live training courses, in-depth learning paths, interactive coding environments, and a vast collection of text and video from O’Reilly and 200+ other publishers. For more information, visit https://oreilly.com. How to Contact Us Please address comments and questions concerning this book to the publisher: O’Reilly Media, Inc. 1005 Gravenstein Highway North Sebastopol, CA 95472 800-998-9938 (in the United States or Canada) 707-829-0515 (international or local) xvi | Preface
📄 Page 19
707-829-0104 (fax) We have a web page for this book, where we list errata, examples, and any additional information. You can access this page at https://oreil.ly/full-stack-testing. Email bookquestions@oreilly.com to comment or ask technical questions about this book. For news and information about our books and courses, visit https://oreilly.com. Find us on LinkedIn: https://linkedin.com/company/oreilly-media Follow us on Twitter: https://twitter.com/oreillymedia Watch us on YouTube: https://www.youtube.com/oreillymedia Acknowledgments Earlier in my career, not in my wildest imagination would I have thought about writ‐ ing a full-fledged technical book—and that too for O’Reilly! It was the inspiration, motivation, and nurturing environment provided by Thoughtworks that led me along this path, and I am incredibly thankful for being associated with such a lovely group of passionate technologists and encouraging leaders. In no particular order, I would like to express my appreciation to and acknowledge the support I have received from some of the amazing folks at Thoughtworks: Prasanna Pendse, who nudges everyone around to set high goals and, when I set myself up for this, saw to it that I got the appropriate support till the end; Bharani Subramanian, who worked closely with me until the book’s completion, sharing his illuminating ideas that led to the shaping of each of the chapters; and Pallavi Vadlamani, a close friend more than a colleague, who also worked closely with me right from the early stages and reviewed every chap‐ ter. Satish Viswanathan, Kief Morris, Sriram Narayan, Neal Ford, and Sudhir Tiwari are few others who have extended their support throughout various stages of this book’s development; truly, it is invaluable to have such knowledgeable folks share their wise and timely directions! I would also like to specially thank Dr. Rebecca Par‐ sons, Thoughtworks’ CTO and my role model, who wrote the foreword and was kind enough to volunteer to review the chapters from the draft stages. What more support could I really ask for from an organization?! My sincere gratitude to the O’Reilly crew: especially Jill Leonard and Melissa Duffield, for setting the appropriate space for the book to be launched successfully, and the technical reviewers, Chris Northwood, Alexander Tarlinder, Srinivasan Desikan, Saleem Siddiqui, Ian Molyneaux, and Nigar Movsumova, who have provided feed‐ back on every granular detail and got the book to the state it is in today. I also want to register my exquisite appreciation of and gratitude to my long-term mentor, Dhivya Arunagiri, who has spent several years boosting my confidence and Preface | xvii
📄 Page 20
helping me shape my career, and my friends, who have been a solid source of comfort whenever I got exhausted from writing alongside work and family commitments amidst a pandemic. I also take this opportunity to express my heartfelt love and appreciation to my ever encouraging and supporting parents. Last but not the least, a special callout to my dear husband, Manoj Mahalingam, who is an inspiration, a friend, and a guide and without whom this book wouldn’t exist today. I would like to dedicate this book to him and my lovely daughter, Magathi Manoj, for allowing me the much-needed mind space and time through several nights, weekends, and holidays for more than a year as I worked on this project. Indeed, as I write this, I am thinking how blessed I am to be surrounded by such an amazing bunch of family, friends, and colleagues. Thank you very much, everyone! I am forever grateful. xviii | Preface
The above is a preview of the first 20 pages. Register to read the complete e-book.

💝 Support Author

0.00
Total Amount (¥)
0
Donation Count

Login to support the author

Login Now
Back to List