Пути/Файлы
Длинное имя (>255 символов) • Спецсимволы (пробел * ? / \ | < > , . ( ) [ ] { } ; : ' " ! @ # $ % ^ &) • Несуществующие • Уже созданные • Места на диске нет • Места на диске мало • Защита от записи • Недоступен • Заблокирован • На удаленной машине • Поврежденный
Время и Дата
Таймауты • Разное время между машинами • Пересечение часовых поясов • Високосные дни • Несуществующие дни (30 февраля, 31 сентября) • 29 февраля в невисокосном году • Различные форматы (Июнь 5, 2001; 06/05/2001; 06/05/01; 06-05-01; 6/5/2001 12:34) • Перевод часов на летнее/зимнее время • Перевод часов вперёд или назад
Числа
0 • 32768 (2^15^) • 32769 (2^15^ + 1) • 65536 (2^16^) • 65537 (2^16^ +1) • 2147483648 (2^31^) •
2147483649 (2^31^ + 1) • 4294967296 (2^32^) • 4294967297 (2^32^ + 1) • Экспоненциальная запись
(1E-16) • Отрицательные • Числа с плавающей точкой/Десятичные (0.0001) • С запятыми (1,234,567) • Европейский стиль (1.234.567,89) • Все вышеперечисленное в различных вычислениях
Строки
Длинные (255, 256, 257, 1000, 1024, 2000, 2048 или больше символов) • Диакритические знаки (àáâãäåçèéêëìíîðñòôõöö, и т.д.) • Иероглифы (未來是共產主義) • Разделители и спецсимволы ( " ' ` | / \ , ; : & < > ^ * ? символ табуляции) • Пустое значение • Один пробел • Много пробелов • Пробелы в начале строки • Символы конца строки (^M) • SQL инъекции ( 'select * from customer ) • Использование этих строк в различных действиях (Ввод, Поиск, Обновление, и т.д.)
Общее
Нарушение правил конкретной области (999.999.999.999 в качестве IP адреса, email адрес без "@", возраст -1) • Нарушение других ограничений
Навигация
Назад (следим за "устаревшими" сообщениям и повторной отправкой данных) • Обновить • Добавить URL в закладки • Переход по URL в закладках после логаута • Хакинг URL (изменение/удаление параметров; смотри также [Атаки на типы данных] • Несколько открытых вкладок/окон браузера
Ввод
Также смотри [Атаки на типы данных] • HTML/JavaScript Инъекции (разрешая пользователю вводить HTML теги и JavaScript код мы открываем путь к уязвимостям) • Проверка ограничений на максимальную длину в текстовых полях • > 5000 символов в многострочных полях
Синтаксис
Проверка синтаксиса HTML ([http://validator.w3.org/]
Проверка синтаксиса CSS ([http://jigsaw.w3.org/css-validator/]
Настройки браузера
Выключенный Javascript • Запрет использования кук • Повышенные уровень безопасности • Изменение размера окна • Изменение размера шрифта
Тест - это эксперимент, созданный для раскрытия информации или ответа на конкретный вопрос о программе или системе.
• У стейкхолдеров вопросы, у тестировщиков ответы
• Не путай скорость и прогресс
• Используй другой подход
• Наблюдения носят исследовательский характер
• Чем уже подход, тем больше незнание
• Большие ошибки часто находят из-за стечения обстоятельств
• Скопление ошибок
• Меняйте последовательности, конфигурации и данные для увеличения вероятности нахождения проблемы при тестировании, если она существует
• Всё дело в переменных
Анализ переменных. Выявляйте всё, что можно изменить. Переменные могут быть очевидными, трудноуловимыми и скрытыми.
Точки взаимодействия.Выявляйте публичные и приватные интерфейсы, которые предоставляют обзор и контроль. Предоставляйте места для вызова, мониторинга и проверки системы.
Границы. Приближение к границам (чуть больше, чуть меньше). На границе.
Принцип Златовласки. Слишком большой. Слишком маленький. В самый раз.
CRUD. Create (создание), Read (чтение), Update (обновление), Delete (удаление).
Следуй за данными. Выполняйте последовательность действий, в которых задействованы данные. Проверяйте целостность данных на каждом шагу. (Пример: Ввод -> Поиск -> Отчёт -> Экспорт -> Импорт -> Обновление -> Просмотр)
Конфигурации. Меняйте переменные, связанные с конфигурацией (Разрешение экрана; Скорость сети; Задержки; Уровень сигнала; Память; Доступность диска; Эвристики Количества, применённые к периферии, такие как 0, 1, много мониторов, мышек или принтеров).
Прерывание. Выход из системы, выключение, перезагрузка, завершение процесса, дисконект, спящий режим, таймаут, отмена.
Загруженность ресурсов. Процессор, память, сеть или диск на предельной загруженности.
Позиция. Начало, середина, конец. (Редактирование в начале строки, в середине и в конце)
Выбор. Некоторые, ничего, все. (Некоторые права, без прав, все права)
Количество. 0, 1, много. (0 транзакций, 1 транзакция, много одновременных транзакций)
Много пользователей. Одновременное создание, обновление и удаление из двух аккаунтов или из одного, в который вошли дважды.
Нагрузка. Множество одновременных транзакций или запросов, забивающих очередь.
Зависимости. Находите зависимые объекты. (У клиента есть инвойс, у инвойса есть несколько статей бюджета). Применяйте эвристики CRUD, Количества, Позиции и/или Выбора. (У клиента 0, 1 или много инвойсов; У инвойса 0, 1 или много статей бюджета; Удаляем последнюю статью и читаем; Обновляем первую статью; Некоторые, ни одной, все статьи бюджета облагаются налогом; Удаляем клиента с 0, 1 или многими инвойсами)
Ограничения. Нарушайте ограничения (оставляйте пустыми обязательные поля, вводите невалидные комбинации в зависимые поля, вводите дублирующиеся идентификаторы или имена). Комбинируйте с эвристиками Способ ввода.
Способ ввода. Ввод с клавиатуры, копировать/вставить, импорт, перетащить, различные интерфейсы (GUI против API).
Последовательности. Меняйте последовательность операций. Отмена действия/Повторение последнего действия. Обратная последовательность. Комбинации. Инверсия. Параллельность.
Сортировка. Буквы или числа. Сквозная через все страницы.
Анализ состояний. Определите состояния и события/переходы, затем представьте их в виде схемы или таблицы. Работает с эвристиками Последовательности и Прерывания.
Создание карты. Определите базовое/домашнее состояние. Выберите направление и сделайте один шаг. Вернитесь в базовое состояние. Повторите.
Пользователи и сценарии. Юскейсы. Мыльные оперы. Персонажи. Нестандартные личности.
Оценка. Несогласованность, отсутствие и лишнее относительно внутренних, внешних и общепринятых критериев. (Прим. пер. Подробнее смотри статью: [https://www.workroom-productions.com/papers/Judging.pdf]
Наблюдения. Ввод/вывод/связь.
Требования. Пользователи/Функции/Атрибуты/Ограничения (Прим. пер. Подробнее смотри книгу: [https://online.sbis.ru/shared/disk/c97bc785-a14a-4a71-90b9-cbedf77e8425]
Существительные и глаголы. Объекты или данные в системе и то, как система ими управляет. Также прилагательные (атрибуты), такие как очевидные, похожие, подробные. Также наречия, такие как быстро, медленно, повторно, точно, рандомно. Хороши для создания рандомных сценариев.
Цикл Деминга. Планируй, действуй, проверяй, корректируй.
Перевод Докучаев С.В.