Practical Techniques for Python Developers and Testers
Quickly learn how to automate unit testing of Python 3 code with Python 3 automation libraries, such as doctest, unittest, nose, nose2, and pytest.
This book explores the important concepts in software testing and their implementation in Python 3 and shows you how to automate, organize, and execute more » unit tests for this language. This knowledge is often acquired by reading source code, manuals, and posting questions on community forums, which tends to be a slow and painful process.
Python Unit Test Automationwill allow you to quickly ramp up your understanding of unit test libraries for Python 3 through the practical use of code examples and exercises. All of which makes this book a great resource for software developers and testers who want to get started with unit test automation in Python 3 and compare the differences with Python 2.
This short work is your must-have quick start guide to mastering the essential concepts of software testing in Python.
What You'll Learn:
* Essential concepts in software testing
* Various test automation libraries for Python, such as doctest, unittest, nose, nose2, and pytest
* Test-driven development and best practices for test automation in Python
* Code examples and exercises
Who This Book Is For:
Python developers, software testers, open source enthusiasts, and contributors to the Python community « less
Gain insights into the latest technology and business trends within testing domains
ABOUT THIS BOOK
* This book covers the latest trends that every Testing and QA professional should keep up-to-date with given the advancements in digital technologies.
* Master cutting-edge testing techniques for emerging areas such as IOT, Machine Learning, Cognitive.
* Best practices for Testing more » and Quality Assurance within several industry domains.
WHO THIS BOOK IS FOR
This book is targeted at those working in the QA and Testing areas. The book does not cover testing basics, which QA professional are already familiar with―for example, writing a test plan or test case, and so on.
WHAT YOU WILL LEARN
* Understand the TCOE model, managed services, the structure of testing in Agile/DevOps engagements, factory models, and crowdsourcing
* Implement testing processes, practices, and automation tools in the Agile/DevOps life cycle
* Adapt to current technologies in social media, mobile, analytics and the Cloud
* Leverage cognitive intelligence/machine-learning, robotics, and the Internet of Things in testing
* How key industries/domains (consumer products and retail, energy and utilities, healthcare, telecom, and automotive) adapt to digital transformation
* Future directions for the QA industry, consulting careers, testing profession, and professionals
The book is based on the author`s experience in leading and transforming large test engagements and architecting solutions for customer testing requirements/bids/problem areas. It targets the testing practitioner population and provides them with a single go-to place to find perspectives, practices, trends, tools, and solutions to test applications as they face the evolving digital world.
This book is divided into five parts where each part explores different aspects of testing in the real world. The first module explains the various testing engagement models. You will then learn how to efficiently test code in different life cycles. The book discusses the different aspects of Quality Analysis consideration while testing social media, mobile, analytics, and the Cloud. In the last module, you will learn about futuristic technologies to test software.
By the end of the book, you will understand the latest business and IT trends in digital transformation and learn the best practices to adopt for business assurance.
STYLE AND APPROACH
This book is a compilation of the latest business and IT trends in digital transformation & Tools and Best Practices that QA professionals need to adopt for business assurance. « less
Behaviour-Driven Development for Testers and Developers
Your customers want rock-solid, bug-free software that does exactly what they expect it to do. Yet they can't always articulate their ideas clearly enough for you to turn them into code. You need Cucumber: a testing, communication, and requirements tool-all rolled into one. All the code in this book more » is updated for Cucumber 2.4, Rails 5, and RSpec 3.5.
Express your customers' wild ideas as a set of clear, executable specifications that everyone on the team can read. Feed those examples into Cucumber and let it guide your development. Build just the right code to keep your customers happy. You can use Cucumber to test almost any system or any platform.
Get started by using the core features of Cucumber and working with Cucumber's Gherkin DSL to describe-in plain language-the behavior your customers want from the system. Then write Ruby code that interprets those plain-language specifications and checks them against your application. Next, consolidate the knowledge you've gained with a worked example, where you'll learn more advanced Cucumber techniques, test asynchronous systems, and test systems that use a database. Recipes highlight some of the most difficult and commonly seen situations the authors have helped teams solve. With these patterns and techniques, test Ajax-heavy web applications with Capybara and Selenium, REST web services, Ruby on Rails applications, command-line applications, legacy applications, and more.
Written by the creator of Cucumber and the co-founders of Cucumber Ltd., this authoritative guide will give you and your team all the knowledge you need to start using Cucumber with confidence.
What You Need:
Windows, Mac OS X (with XCode) or Linux, Ruby 1.9.2 and upwards, Cucumber 2.4, Rails 5, and RSpec 3.5 « less
Building Quality into Software
To build high-quality software, you need to write testable code. That's harder than it seems: it requires insights drawn from arenas ranging from software craftsmanship to unit testing, refactoring to test-driven development. Most programming books either discuss testing only briefly, or drill down on more » just one or two techniques, with little guidance on how to systematically verify code. Most testing books, on the other hand, focus on a specific testing process, without showing how to write software that can be easily and systematically tested. In Developer Testing, leading software engineering consultant Alexander Tarnowski strikes an optimal balance, integrating insights from multiple disciplines to help frustrated practitioners get better results.
Drawing on his extensive experience as a mentor and trainer, he offers insights that help you accelerate through the typical software assurance learning curve, so you can progress far more rapidly.
Tarnowski organizes his insights into "chunks" to help you quickly absorb key concepts, and focuses on technology-agnostic approaches you can keep using with any new language, platform, or toolset. Along the way, he answers many questions development teams often ask about testing, including:
* What makes code testable? What makes it hard to test?
* When have I done enough testing on a piece of code?
* How many unit tests do I need to write?
* Exactly what should my test verify?
* How do I transform monolithic legacy code into manageable pieces I can test?
* What's the best way to structure my tests?
The first guide to cover testing mindset, techniques, and applications from the developer's perspective, Developer Testing will help developers get what they really want: better code. « less
66 Specific Ways to Debug Software and Systems
Every software developer and IT professional understands the crucial importance of effective debugging. Often, debugging consumes most of a developer’s workday, and mastering the required techniques and skills can take a lifetime. In Effective Debugging, Diomidis Spinellis helps experienced programmers more » accelerate their journey to mastery, by systematically categorizing, explaining, and illustrating the most useful debugging methods, strategies, techniques, and tools.
Drawing on more than thirty-five years of experience, Spinellis expands your arsenal of debugging techniques, helping you choose the best approaches for each challenge. He presents vendor-neutral, example-rich advice on general principles, high-level strategies, concrete techniques, high-efficiency tools, creative tricks, and the behavioral traits associated with effective debugging.
Spinellis’s 66 expert techniques address every facet of debugging and are illustrated with step-by-step instructions and actual code. He addresses the full spectrum of problems that can arise in modern software systems, especially problems caused by complex interactions among components and services running on hosts scattered around the planet. Whether you’re debugging isolated runtime errors or catastrophic enterprise system failures, this guide will help you get the job done—more quickly, and with less pain.
Key features include
* High-level strategies and methods for addressing diverse software failures
* Specific techniques to apply when programming, compiling, and running code
* Better ways to make the most of your debugger
* General-purpose skills and tools worth investing in
* Advanced ideas and techniques for escaping dead-ends and the maze of complexity
* Advice for making programs easier to debug
* Specialized approaches for debugging multithreaded, asynchronous, and embedded code
* Bug avoidance through improved software design, construction, and management « less
Java Testing with Spock teaches you how to use Spock for a wide range of testing use cases in Java. Readers new to Groovy will appreciate the succinct language tutorial that'll give you just enough Groovy to use Spock effectively.
About the Technology
Spock combines the features of tools more » like JUnit, Mockito, and JBehave into a single powerful Java testing library. With Spock, you use Groovy to write more readable and concise tests. Spock enables seamless integration testing, and with the intuitive Geb library, you can even handle functional testing of web applications.
About the Book
Java Testing with Spock teaches you how to use Spock for a wide range of testing use cases in Java. You'll start with a quick overview of Spock and work through writing unit tests using the Groovy language. You'll discover best practices for test design as you learn to write mocks, implement integration tests, use Spock's built-in BDD testing tools, and do functional web testing using Geb. Readers new to Groovy will appreciate the succinct language tutorial in chapter 2 that gives you just enough Groovy to use Spock effectively.
Testing with Spock from the ground up
Write mocks without an external library
BDD tests your business analyst can read
Just enough Groovy to use Spock
About the Reader
Written for Java developers. Knowledge of Groovy and JUnit is helpful but not required.
About the Author
Konstantinos Kapelonis is a software engineer who works with Java daily.
Table of Contents
** PART 1 FOUNDATIONS AND BRIEF TOUR OF SPOCK **
Introducing the Spock testing framework
Groovy knowledge for Spock testing
A tour of Spock functionality
** PART 2 STRUCTURING SPOCK TESTS **
Writing unit tests with Spock
Mocking and stubbing
** PART 3 SPOCK IN THE ENTERPRISE **
Integration and functional testing with Spock
Spock features for enterprise testing « less
*** Key Features ***
* Explore the concept of testability and how to implement tests that deliver the most value
* Maximize the quality of your Ruby code through a wide variety of tests
* Master the real-world tradeoffs of testing through detailed examples supported by in-depth discussion
*** more » Book Description ***
This book will teach you how to use RSpec to write high-value tests for real-world code. We start with the key concepts of the unit and testability, followed by hands-on exploration of key features. From the beginning, we learn how to integrate tests into the overall development process to help create high-quality code, avoiding the dangers of testing for its own sake.
The code examples are detailed enough to be realistic while simple enough to be easily understood. Testing concepts, development methodologies, and engineering tradeoffs are discussed in detail as they arise. This approach is designed to foster the reader's ability to make well-informed decisions on their own.
*** What you will learn ***
* Identify a unit of software for the purposes of testing
* Manage test states with hooks, fixtures, and mocks
* Handle external web services in tests using various techniques
* Configure RSpec flexibly and cleanly using support code and environment variables
* Interact with rich web apps in tests using Capybara
* Build the right feature with behavior-driven development
* Customize matchers and failure messages
* Verify correct development and production environments
*** About the Author ***
*** Table of Contents ***
1. Exploring Testability from Unit Tests to Behavior-Driven Development
2. Specifying Behavior with Examples and Matchers
3. Taking Control of State with Doubles and Hooks
4. Setting Up and Cleaning Up
5. Simulating External Services
6. Driving a Web Browser with Capybara
7. Building an App from the Outside In with Behavior-Driven Development
8. Tackling the Challenges of End-to-end Testing
10. Odds and Ends « less
A Pattern Reference
General trace and log analysis patterns allow application of uniform problem detection and solving approach across diverse software environments. This pattern language covers any execution artifact from a small debugging trace to a distributed log with billions of messages from hundreds of computers, more » thousands of software components, threads, and processes. Pattern-oriented trace and log analysis is applicable to troubleshooting and debugging Windows, Mac OS X, Linux, FreeBSD, Android, iOS, z/OS, and any other possible computer platform including networking and IoT. Its pattern catalog is a part of pattern-oriented software diagnostics, forensics, prognostics, root cause analysis, and debugging developed by Software Diagnostics Institute (DumpAnalysis.org + TraceAnalysis.org).
This reference reprints with corrections 133 patterns originally published in Memory Dump Analysis Anthology volumes 3 - 9 and Software Diagnostics Library (former Crash Dump Analysis blog, DumpAnalysis.org/blog). Full-color diagrams accompany most pattern descriptions. The second edition includes 33 more patterns and improved pattern index. « less
A Beginner's Guide to Automating Tests
This book is for everyone who needs to test the web. As a tester, you'll automate your tests. As a developer, you'll build more robust solutions. And as a team, you'll gain a vocabulary and a means to coordinate how to write and organize automated tests for the web. Follow the testing pyramid and level more » up your skills in user interface testing, integration testing, and unit testing. Your new skills will free you up to do other, more important things while letting the computer do the one thing it's really good at: quickly running thousands of repetitive tasks.
This book shows you how to do three things:
How to write really good automated tests for the web.
How to pick and choose the right ones.
* How to explain, coordinate, and share your efforts with others.
If you're a traditional software tester who has never written an automated test before, this is the perfect book for getting started. Together, we'll go through everything you'll need to start writing your own tests.
If you're a developer, but haven't thought much about testing, this book will show you how to move fast without breaking stuff. You'll test RESTful web services and legacy systems, and see how to organize your tests.
And if you're a team lead, this is the Rosetta Stone you've been looking for. This book will help you bridge that testing gap between your developers and your testers by giving your team a model to discuss automated testing, and most importantly, to coordinate their efforts.
The Way of the Web Tester is packed with cartoons, graphics, best practices, war stories, plenty of humor, and hands-on tutorial exercises that will get you doing the right things, the right way. « less
Guide to the ISTQB Advanced Certification as an Advanced Technical Test Analyst
This book is written for the technical test analyst who wants to achieve advanced skills in test analysis, design, and execution. With a hands-on, exercise-rich approach, this book teaches you how to define and carry out the tasks required to implement a test strategy. You will be able to analyze, design, more » implement, and execute tests using risk considerations to determine the appropriate effort and priority for tests.
This book will help you prepare for the ISTQB Advanced Technical Test Analyst exam. Included are sample exam questions for most of the learning objectives covered by the latest (2012) ISTQB Advanced Level syllabus. The ISTQB certification program is the leading software tester certification program in the world. You can be confident in the value and international stature that the Advanced Technical Test Analyst certificate will offer you.
With over thirty years of software and systems engineering experience, author Rex Black is President of RBCS, a leader in software, hardware, and systems testing, and the most prolific author practicing in the field of software testing today. Previously, he served as President of both the International and American Software Testing Qualifications Boards (ISTQB and ASTQB).
Jamie Mitchell is a consultant who has been working in software testing, test automation, and development for over 20 years. He was a member of the Technical Advisory Group for ASTQB, and one of the primary authors for the ISTQB Advanced Technical Test Analyst 2012 syllabus. « less