Сэм Канер: Тестирование программного обеспечения
TRANSCRIPT
Сэм Канер: Тестирование Программного Обеспечения
Elena Sharovar, 2010
«Все ошибки до единой вам всё равно не найти: даже если в программе
действительно не останется ошибок, вы об этом никогда не узнаете, ведь этого нельзя
ни доказать ни проверить…»
I. Тестирование на этапе планирования
- Адекватны ли требования?
- Полны ли они?
- Совместимы ли требования между собой?
- Выполнимы ли они?
- Разумны ли они?
- Поддаются ли они тестированию?
II. Тестирование на этапе проектирования (когда кода ещё нет)
- Действительно ли проект хорош?
- Соответствует ли проект требованиям?
- Полон ли проект?
- Достаточно ли он реалистичен?
- Хорошо ли описана в проекте
подсистема обработки ошибок?
III. Тестирование продукта1. Основные пункты
- Тестирование по документации
- Тестирование всех функций программы
- Анализ граничных условий
III. Тестирование продукта2. Входные данные
- Все допустимые значения
- Все недопустимые значения
- Ввод с редактированием
- Несвоевременный ввод
III. Тестирование продукта3. Поиск ошибок
- Наиболее вероятные ошибки
- Наиболее заметные ошибки
- Наиболее часто используемые области программы
- Отличительные особенности программы
III. Тестирование продукта4. Спросите программиста
- Спросите у программиста, где в программе
наиболее сложные области
- Начните тестирование с того, что вам понятно –
в дальнейшем вы разберётесь с остальной частью продукта
III. Тестирование продукта5 (последнее) - Особые ошибки
- Ошибки связанные со временем
- Неожиданные ошибочные ситуации
- Особые стечения данных
- Неверная информация на экране
- Неадекватность пользовательского интерфейса
- Взаимодействие с параллельно выполняемыми задачами
- Проблемы, связанные с конфигурацией и совместимостью
- Аппаратные ошибки, нестандартные ситуации и сбои
IV. Распространённые программные ошибки 1. Функциональность
- Избыточная функциональность
(слишком много кликов?)
- Ложное впечатление о наборе функций
(кажется что программа делает больше чем на самом деле?)
- Неадекватность реализованных функций
(слишком медленно работает?)
- Пропущенная функция
(что-то забыли?)
- Неверно работающая функция
(просили одно, а делает что-то другое?)
- Программа делает не то, что ожидает от неё пользователь
(ожидается одно, а делается что-то другое?)
IV. Распространённые программные ошибки 2. Отсутствие информации
- Отсутствие инструкций на экране (ааа! что делать дальше?)
- Отсутствие курсора(где курсор?)
- Программа не распознаёт ввод(а куда здесь нажимать?)
- Невозможно определить, выполнена ли команда(ничего не выполнилось?)
А также:- Недокументированные возможности- Состояния, из которых сложно найти выход- Длительное отсутствие активности- Невозможность определить, что один и тот же документ открыт
несколько раз
IV. Распространённые программные ошибки 3. Неверная или смущающая пользователя информация
- Просто ошибка
- Синтаксическая ошибка
- Неаккуратное упрощение
- Неудачная метафора
- Неточные названия команд и функций
- Несколько названий одной функции
- Избыточность информации
- Куда сохраняются данные?
- Неудачная внешняя структура
IV. Распространённые программные ошибки 4. Справочная система и сообщения об ошибках
- Высокий уровень сложности
- Многословность
- Неуместная эмоциональность
- Фактические ошибки в справочной системе
- Контекстные ошибки в справочной системе
- Неправильное описание ошибки в справочной системе
- Шестнадцатеричный код – это не сообщение об ошибке!
- Отказ в предоставлении ресурсов без объяснения причины
- Сообщения об ошибках, которые не являются таковыми
IV. Распространённые программные ошибки 5. Ошибки отображения
- Два курсора
- Исчезновение курсора
- Курсор находится не в том месте
- Курсор вне области ввода данных
- Отображение ввода не в том месте экрана
- Недоочищена часть экрана
- Не выделены активные элементы экрана
- Не снято выделение
- Отображена неверная или неполная строка
- Сообщение остаётся слишком долго или исчезает слишком быстро
IV. Распространённые программные ошибки 6. Организация экрана
- Неэстетическое оформление экрана
- Неудачная организация меню
- Ошибки организации диалоговых окон
- Труднонаходимые инструкции
- Неуместрое использование мигания
- Пестрые цветовые сочетания
- Использование цветов в качестве смыслового интерфейса
- Немогласованность со стилем операционной среды
- Невозможность избавиться от избыточной информации на экране
IV. Распространённые программные ошибки 7. Потери времени
- Прогулки по меню
- Выбор, который не может быть сделан
- Вы совершенно, совершенно уверены?
- Непонятные названия команд
IV. Распространённые программные ошибки 8. Меню
- Чересчур сложная иерархия меню
- Неадекватные правила переходов по меню
- Слишком много способов выполнения одного и того же
- Невозможность выхода
- Разные команды в одном меню
- Одинаковые команды в разных меню
IV. Распространённые программные ошибки 9. Предотвращение неприятностей
- Отсутствие возможности резервного копирования
- Отсутствие команды отмены
- Отсутствие запросов на подтверждение команд
- Отсутствие возможности периодического сохранения данных
IV. Распространённые программные ошибки 10 (последнее) - Кто здесь главный?
- Навязывание ненужных ограничений
- Дружественность к новичкам, создающая неудобства
для опытных пользователей
- Навязчивая предупредительность
(например автоматическое исправление ошибок)
- Запрос информации без необходимости
- Ненужное повторение действий
- Ненужные ограничения
V. Тестирование документации
- Проанализируйте структуру документа
- Выполните общий анализ руководства
- Подумайте, какие ещё вопросы
требуют отдельного освещения
- Проанализируйте руководство
на соответствие концепции продукта
- Поищите неточности
- Проверьте сообщения об ошибках
Приложения.. и что-то что интересное
Приложение A.
Базовые инструменты тестировщика
- ПК или рабочая станция
- Хороший текстовый процессор
- Процессор планов
- Электронная таблица
- Утилиты сравнения файлов
- Просмотровики файлов
- Конвертеры файлов
- Утилиты для поиска текста
- Устройства видеозаписи
- Диагностические программы
- Таймер
- Система отслеживания проблем
- Программист
Приложение B.
Стандарты в программировании
- Проблемы с переносимостью
- Рекурсия (разрешена/запрещена)
- Степень вложенности (min/max)
- Константы в коде (обязательны/необязательны)
- Размер модуля (min/max)
- Комментарии (формат/длина/расположение)
- Соглашения об именах (конвенция)
- Форматирование (конвенция)
- Запрещённые конструкции (GOTO?)
- Запрещённые действия
- Псевдонимы (разрешены/запрещены)
- Преобразование типов данных (разрешено/запрещено)
Приложение С.
Чем иногда приходится поступаться
разработчикам программного обеспечения
- Надёжность
- Функциональность
- Деньги
- Дата выпуска
... деньги – имеется в виду:- непосредственная стоимость продолжения работ
- затраты на маркетинг/рекламу
- люди могли бы заниматься другим проектом...
- прибыль, полученная позже чем планировалось...
Содержание:
I. Тестирование на этапе планирования
II. Тестирование на этапе проектирования
III. Тестирование продукта
IV. Распространённые программные ошибки
V. Тестирование документации
Приложения:
Приложение A. Базовые инструменты тестировщика
Приложение B. Стандарты в программировании
Приложение С. Чем иногда приходится поступаться разработчикам программного обеспечения
Read more:
books-in-slides.blogspot.comall-in-slides.blogspot.com
Elena Sharovar,2010