Перед тем, как кого-то тестировать, убедитесь, что вы соответствуете требованиям для тестирования. Как минимум вам нужно:
Спецификация: некий авторитетный источник информации о том, что должно делать приложение. Это может быть эксперт, который может ответить на все вопросы о том, что именно должно делать приложение, но чем больше записано и чем более формально оно определено, тем лучше.
Время: тестирование требует времени. Вы не можете передать приложение тестеру за 30 минут до его запуска и ожидаемых результатов. Если вы занимаетесь разработкой водопада, тестирование потребует много времени в конце. Множество других моделей разработки позволяют проводить тестирование параллельно с разработкой, что экономит много времени, но независимо от используемой модели, тестирование потребует больше времени, чем не тестирование.
Если у вас нет этих двух вещей, обеспечение качества - это просто несбыточная мечта.
Теперь, если вы встретились с ними и пытаетесь обучить кого-то тестировать, вот мой ускоренный курс по тестированию.
По сути, тестирование приложения означает, что вы пытаетесь обеспечить две вещи:
Программа делает то, что должна.
Программа не делает то, что не должна делать.
Это основной настрой, который я использую. Основываясь на этом, я подхожу к вещам с точки зрения действий и пытаюсь проверить:
- Ожидаемое действие с ожидаемыми предварительными условиями дает ожидаемый эффект.
- Ожидаемое действие с неожиданными предварительными условиями не дает эффекта или обрабатывается соответствующим образом.
- Неожиданное действие не дает эффекта или обрабатывается соответствующим образом.
- Никаких неожиданных эффектов не возникает.
Элемент 1 взят непосредственно из спецификации: вы убедитесь, что программа делает то, что должна.
В пунктах 2 и 3 возникает искусство тестирования. Какие неожиданные действия и предварительные условия я могу выполнить? Я мог бы попытаться ввести неправильный пароль. Я мог бы попытаться напрямую ввести URL предположительно защищенной страницы. Я мог бы попытаться вставить нечетные символы Unicode в текстовое поле. Я мог бы попытаться поместить код SQL или javascript в текстовое поле.
Пункт 4 - это бесконечная ничейная страна испытаний, часть, которая делает невозможным полное испытание. (2 и 3 также бесконечны, но не настолько унылы, чтобы думать о них.) Это не значит, что вы игнорируете это. Вы всегда следите за чем-то необычным. Кроме того, иногда возникает вдохновение, и вы думаете о возможном способе вызвать неожиданный эффект: «Что произойдет, если я войду между 11:59:59 PM и 12:00:00 AM третьего вторника месяца? я администратор. " Технические знания и взгляд в черный ящик помогают с такими сценариями.
Можно еще многое сказать о тестировании, но это тот самый минимум, о котором я могу подумать: технические требования и подход к проблеме.