Book Image

Software Test Design

By : Simon Amey
Book Image

Software Test Design

By: Simon Amey

Overview of this book

Software Test Design details best practices for testing software applications and writing comprehensive test plans. Written by an expert with over twenty years of experience in the high-tech industry, this guide will provide you with training and practical examples to improve your testing skills. Thorough testing requires a thorough understanding of the functionality under test, informed by exploratory testing and described by a detailed functional specification. This book is divided into three sections, the first of which will describe how best to complete those tasks to start testing from a solid foundation. Armed with the feature specification, functional testing verifies the visible behavior of features by identifying equivalence partitions, boundary values, and other key test conditions. This section explores techniques such as black- and white-box testing, trying error cases, finding security weaknesses, improving the user experience, and how to maintain your product in the long term. The final section describes how best to test the limits of your application. How does it behave under failure conditions and can it recover? What is the maximum load it can sustain? And how does it respond when overloaded? By the end of this book, you will know how to write detailed test plans to improve the quality of your software applications.
Table of Contents (21 chapters)
Part 1 – Preparing to Test
Part 2 – Functional Testing
Part 3 – Non-Functional Testing
Appendix – Example Feature Specification

Loading inefficiencies

It’s very easy to write code that works well but scales badly. Load testing is your chance to expose those issues by running new features with the heaviest loads your system is designed to sustain. Recall the example of the database query, which read all events since the beginning of time, gradually slowing the system down as time went on. There are many other examples.

Real-world example – 80 participants hang up

In one video company I worked at, we increased the maximum size of our meeting from 40 to 80 users. It was a massive project requiring changes throughout the system, but we finally got it running and were delighted to see so many participants connect successfully. There were huge congratulations all around; then, we finished the meeting, and all started to hang up.

However, that hanging up took a strangely long time. Panes flickered back and forth, and commands became unresponsive, but finally, after several confusing seconds...