IV. Распространённые программные ошибки 5. Ошибки

advertisement
Сэм Канер: Тестирование
Программного Обеспечения
E.A. 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.com
all-in-slides.blogspot.com
E.A.
2010
Download