Чит-листы
-
Структурное тестирование
DESCRIBE schema.table_name;- cоглашения об именах таблиц и столбцов базы данных;
- название схемы, таблицы;
- название полей, их количество, тип, длина, обязательность (IS NOT NULL);
- первичный ключ (РК), составной ключ, внешний ключ;
- связи с другими таблицами, представлениями;
- типы данных между столбцом внешнего ключа и столбцом в другой таблице.
-
Целостность данных
- поля на null, уникальность и длину значений;
- проверка дубликатов;
- символы в имени, пробелы, отрицательный процент.
-
Функциональное тестирование
(Алгоритмические проверки)
- правильность расчета вычисляемых полей, расчет итогов, разности, процентов;
- триггеры;
- сопоставление полей с пользовательским интерфейсом (GUI, API);
- операции CRUD через внешний интерфейс (web API, GUI);
- пароли, номера кредитных карт зашифрованы и не хранятся в виде простого текста.
-
Нефункциональное тестирование
-
нагрузочное тестирование:
- время ответа для выполнения транзакций для нескольких удаленных пользователей;
- время, затраченное базой данных на выборку определенных записей;
- многократный запуск наиболее часто используемой пользовательской транзакции, чтобы увидеть производительность системы базы данных;
- загрузка серии больших файлов из Интернета;
- запуск нескольких приложений на компьютере или сервере одновременно;
- важные системные транзакции (архивирование, выгрузка).
- стресс-тестирование - определить точку останова системы.
-
нагрузочное тестирование:
-
Извлечение данных
- проверить источник данных;
- сравнить количество записей, количество отклоненных записей;
- проверить значения методом анализа граничных значений (первая, последняя запись из файла);
- проверить дублирование загруженных данных.
-
Преобразование данных
- данные преобразованы правильно;
- значения по умолчанию верны.
- Загрузка данных в систему DW
-
Структурное тестирование
- проверка заголовков;
- проверка параметров;
- проверка тела ответа.
-
Функциональное тестирование
- код ответа;
- правильность расчета, сортировки.
-
Нефункциональное тестирование
- нагрузочное тестирование;
- стрессовое тестирование;
- объемное тестирование.
- уровень логирования;
- размер лог-файла;
- срок хранения логов;
- обработка событий при отсутствии свободного места на сервере (вызывать ошибки в работе API для заполнения свободного места логами).
Принцип - не заставляйте меня думать.
Навигация
- «хлебные крошки»;
- кнопка «вверх»;
- группировка элементов выбора / меню;
- визарды – последовательность шагов при регистрации / инсталляции;
- поиск.
Курсор
- "курсор по умолчанию" (стрелка) для неактивных элементов;
- "курсор-рука" (палец) для кликабельных элементов;
- "курсор изменения размера" (туда-сюда) для изменяемых размер элементов;
- "курсор перемещение" (ладонь) для элементов, которые разрешено перетаскивать;
- "курсор текстовое выделение" (палка) для поля ввода, контента для копирования.
Подсказки
- обязательность заполнения;
- плейсхолдер;
- размер, тип, длина вводимых значений;
- технические ограничения на ввод неразрешенных символов;
- наличие подсказки при наведении на элемент.
Сообщения об ошибках
- понятность;
- краткость;
- однозначность.
Инструкция пользователя
- актуальность.
Текст
- заголовки до 10 слов;
- абзац не более 3-5 предложений, предложение не более 10-15 слов;
- строка не более 50-75 символов для десктоп, 30-40 для мобильных;
- межстрочный интервал на 30% больше высоты символов;
- выделение ключевых слов, ссылок.
Интернационализация (18n) - программное и аппратное обеспечение для упрощения адаптации продукта к использованию в других языковых и культурных регионах. Производится на начальных этапах разработки.
Локализация (L10n) - добавление специальных функций для использования в определенном регионе. Производится для каждого целевого языка.
- название элементов, сообщений, мета-информации, инструкций
- формат даты, времени, адреса, телефона
- разделитель разрядности числа, копеек, отрицательные числа
- валюта, мера, шрифт
- ограничения цветов, чисел, музыки, фото, видео
- культурные особенности
Проверки
- язык по умолчанию;
- переключение исходной и локализованных версий, редиректы;
- стандарты отображения знаков препинания;
- целостность верстки после перевода элементов интерфейса;
- направление написания текста;
- параметры шрифтов.
-
полнота перевода:
- языковые файлы (json, yaml, xml);
- сокращеня и аббревиатуры;
- имена, географические названия;
- элементы интерфейса;
- системные сообщения и ошибки;
- сопроводительная документация (FAQ/Help)
- форма "Свяжитесь с нами" / "Свяжитесь с нами по телефону".
-
форматирование и маски:
- вид и конвертация валюты;
- числа;
- даты (дд.мм.гггг, мм-дд-гггг);
- время (часовой пояс, АМ/РМ, 12/24);
- номер телефона;
- индекс, адрес.
-
система мер и весов:
- вес (кг, фунты);
- длина (метры, футы, дюймы);
- размер одежды и обуви;
- температура (градусы Цельсия (°C), градусы Фаренгейта(°F)).
- ограничения на поля ввода для имен и фамилий;
- изображения картинок и фотографий на предмет религиозных особенностей;
- соотвествие правовым требованиям и местным законам (соглашение о конфиденциальности, условия использования сервиса и т.п.);
- контроль символики и цветов;
- запреты интеграции со сторонними ресурсами;
- поддержка региональных раскладок клавиатур и работа горячих клавиш;
- перевод мета-тегов (влияет на "SEO");
- перевод alt-подписей к изображениям и ссылкам;
- настройка системы веб-аналитики (метрики, коды, счетчики).
Портативность (переносимость) - способность программы работать в различном окружении
- размер, разрешение экрана (адаптивность)
- разные браузеры
- разные операционные системы
- местоположение пользователя
- часовой пояс
- время, дни недели, сезон
- скорость интернета
Адаптивность
- меню, "хлебные крошки";
- графики, диаграммы;
- иконки, картинки;
- таблицы;
- кнопка «вверх», горизонтальный скрол.
Кроссбраузерность
- проверка в браузерах с которых наиболее вероятно и часто приходит клиент на сайт (яндекс-метрики, гугл-аналитика);
- основные браузеры и их версии: Chrome, Firefox, Edge, Safari (статистика).
Кроссплатформенность
- проверка в операционных системах с которых наиболее вероятно и часто приходит клиент на сайт (яндекс-метрики, гугл-аналитика);
- основные операционные системы и их версии: Android, Windows, iOS, Linux (статистика);
-
обратить внимание:
- слеш в пути;
- перевод строки \n,\r;
- регистр в названии;
- работа с архивом.
- соответствие рекомендациям WCAG;
- соответствие рекомендациям W3C;
- перемещение с помощью клавиатуры (клавиатурная навигация);
- перемещение с помощью программы чтения с экрана NVDA;
- перемещение с помощью программы для распознавания речи Apple VoiceOver;
- набор текста с помощью клавиатуры, специально разработанной для людей с двигательными нарушениями;
- просмотр контента с помощью программы для увеличения экрана (экранная лупа);
- проверка цветового контраста.
Литература
- Политика в области обеспечения доступности веб-ресурсов: международный опыт (смотреть pdf);
- Как сделать веб-сайт дружественным к людям с ограничениями по зрению (смотреть pdf);
URL
- название латиницей;
- категории м подкатегории разделять /;
- разделять слова через -, а не _;
- отсутствие пробелов.
Анализ тегов и метатегов
- title = 60-70 char, uniq, title+companyName (проверить)
- description = 120-160 char, uniq, должен быть призыв к действию;
- заголовки h1-h6, h1 один на странице;
- уникальность title, description, h1 на странице / в пределах сайта;
- исходящие ссылки: target="_blank", rel="noopener noreferrer nofollow", где noopener, noreferrer - для безопасности, nofollow - не отдавать “seo-вес” своего сайта;
- циклические ссылки (сам на себя): логотип на главной странице, пункты меню, хлебные крошки последний пункт, статьи;
- картинки с отсутствующим атрибутом alt, title; размер картинки до 100Кб.
Анализ разделов
- контакты;
- карта сайта;
- политика конфиденциальности;
- отказ от ответственности;
- согласие с рассылкой;
- файл robots.txt (до 32 KB);
- файл sitemap.xml (до 50_000 ссылок);
- размер html страницы до 500 КВ.
Страница 404
- совпадает с дизайном сайта;
- содержит ссылки на главную, другие разделы и полезные материалы;
- содержит поиск по сайту;
- отображает нестандартное, возможно, приправленное долей юмора сообщение и изображение.
Редирект на главную страницу
- http://siteName
- http://siteName/
- http://www.siteName
- http://www.siteName/
- http://siteName/index.html
- http://siteName.index.php
- https://siteName
- https://siteName/
- https://www.siteName
- https://www.siteName/
- https://siteName/index.html
- https://siteName.index.php
Рекомендации
- теги Title, Description и Keywords следует располагать сразу после открывающегося тега head;
- CSS-стили и Java-скрипты необходимо выносить в отдельные файлы с расширением css и js. В противном случае технический код будет увеличивать объем страницы и негативно влиять на скорость ее загрузки;
- весь ненужный код – счетчики статистики (liveinternet, rambler top100, bigmir и т.п.), формы голосований и опросов, отправки заявки или поиска товара, логин-панель — следует закрыть от индексации;
- важно удалять из исходного кода комментарии верстальщиков к разным элементам, т.к. это увеличивает объем страницы и увеличивает скорость ее загрузки;
- правильно формировать парные теги – если тег был открыт, его обязательно нужно закрыть;
- Устаревшие теги, которые уже не поддерживаются, следует исключить из кода, заменив на универсальный тег div. Примеры таких тегов: applet, acronym, bgsound, dir, frame, frameset, noframe, isindex, listing, xmp, nextid, noembed, plaintext, rb, strike, basefont, big, blink, center, font, marquee, multicol, nobr, spacer, tt, u;
- прописывать атрибут alt для всех изображений;
- для атрибутов ширины и высоты в элементе img нужно указывать только цифры без «px»;
- из кода необходимо удалять все скрытые от поисковых систем средствами CSS-форматирования элементы. К наиболее часто встречающимся элементам этой категории относятся «display:none» и «visibility:hidden»;
- корректная конструкция тега noindex выглядит следующим образом: <!–noindex–>Текст или код, который нужно исключить из индексации<!– /noindex–>. Не следует использовать конструкцию [noindex]Текст или код, который нужно исключить из индексации[/noindex].
Telegram-bot
- мобильная версия = Android, iOS;
- web версия;
- desktop версия.
Что проверять
- подключение-удаление бота
- что умеет бот, описание
- команды: через бот-меню, через бот-клавиатуру, через бот-строку
- бот-ответ на неправильно введенную команду
- рассылка при блокирующем пользователе (удалил бот)
- контент: текст, картинки, видео, даты, суммы, разделители
-
функциональность
- логика переходов-возвратов (отсутствие тупиков)
- корректность расчетов
- база пользователей, рассылка по шедулеру
-
защищенность
- разделение контента по ролям
-
нагрузка
- рассылка 10_000 пользователям
Windows
- XP, 7, 8
- *10, 11
Linux Kernel
- *Ubuntu 18, 20
- CentOS, Mint, Debian
- *Android (for mobile)
Darwin
- *macOS (for leptop, desktop)
- *iOS (for mobile)
virtualization
- VirtualBox (for OS)
- Selenium Hub (for browsers)
- Docker (virtualMachineImage)
Элементы ввода
- формы;
- списки;
- время, дата;
- переключатели.
Элементы вывода
- таблицы;
- графики;
- файлы.
Элементы навигации
- слайдер;
- поиск;
- «хлебные крошки»;
- пейдженация.
Информационные элементы
- полоса загрузки;
- подсказки;
- сообщения.
- favicon;
- кодировка (UTF8, Windows1251);
- общий дизайн интерфейса (логотип, корпоративные цвета);
- наличие всех элементов, их размер и цвет, расположение в соответствии макету;
- вертикальное / горизонтальное выравнивание элементов, взаимное расположение;
- единый формат заголовков, кнопок, фильтров;
- название элементов;
- правильность шрифтов (название, размер);
- цвета интерфейса;
- кликабельность логотипа, меню, кнопок, ссылок;
- кликабельность, выбираемость, вводимость, удаляемость данных в полях;
- очистка введенных значений при клике на крестик в правой части поля;
- кнопка F5;
- браузерная кнопка НАЗАД;
- переходы с помощью TAB;
- работа Enter, как кнопки;
- отсутствие горизонтального скролла (для статичных страниц минимальная ширина 800рх);
- масштабируемость окна браузера (на весь экран, ½, ¼, 80% экрана);
- масштабируемость страницы (75% - 200%);
- изменение размера элемента (поле textarea);
-
информация должна оставаться доступной:
- отключить стили, скрипты (css, js);
- отключить картинки (отображается альтернативный текст);
- отключить Flesh, Turbo;
- отключить / включить браузерные расширения, например AdBlock
- увеличенный размер шрифта;
- монохромный экран.
- параметры печати.
- текст;
- скрол;
- закрытие окна (Esc, x, button).
- размер слайда;
- количество слайдов;
- частота обновления (продолжительность пауз);
- ручное переключение.
- название (количество элементов), шрифт, цвет, размер, расположение;
- значение по дефолту, кликабельность;
- шаг ползунка и плавность изменения данных;
- граничные значения: min, max, (max/2), (min+1), (max-1).
Применяется для изменения размера изображения или когда не важно указывать точное значение.
- шрифт, цвет, размер, расположение;
- горизонтальный скрол для таблицы, а не страницы;
- количество и название колонок, строк;
- значения в колонке одного типа, разрешенного формата;
-
отображение данных:
- единица измерения, размерность;
- разделитель дробной части (точка / запятая);
- разделитель разрядов (пробел / без пробела);
- длина дробной части (1 или 2 знака);
- особенности расчета (если план = 0, тогда % выполнения не считать и выводить прочерк);
- количество записей на странице;
- варианты вложенности, схлопывания.
- шрифт, цвет, размер, расположение;
- горизонтальный, вертикальный скрол;
- количество и название элементов;
- порядок отображения и сортировки значений.
Позволяет выбрать одно или несколько (Ctrl + Shift)
значений из предложенных.
Для списка с
единственным выбором - выбрать один элемент из
множества.
Для списка с мультивыбором - проверить
граничные значения: min, max, (max/2), (min+1), (max-1).
- шрифт, цвет, размер, расположение;
- количество и название элементов;
- значение по дефолту.
Радиокнопки - позволяет выбрать один единственный вариант из предложенного списка. Группа радиокнопок, рассматривается как единый объект, который может быть только в одном из предложенных состояний. Необходимо проверить каждое состояние.
- любое значение можно выбрать;
- можно выбрать только 1 значение;
- можно ли не выбрать ни одного?
Чекбоксы - позволяет выбрать любое количество вариантов из предложенного списка. Группа чекбоксов, рассматривается как единый объект, который может быть в (max! + 2) состояниях.
- любое значение можно выбрать;
- можно выбрать любое количество значений;
- можно ли не выбрать ни одного?
- граничные значения: min, max, (max/2), (min+1), (max-1).
- шрифт, цвет, размер, расположение;
- значение по дефолту;
- выбор даты в будущем, прошлом.
Позволяет установить год, месяц, число путем выбора значения. Ввод значений не возможен. Обычно это стороннее приложение.
- тип (расширение);
- название (допустимые символы, длина);
- размер и кодировка;
- разделитель полей (запятая, TAB, точка с запятой);
- язык представления данных (английский, китайский);
- корректность данных;
- права на редактирование и удаление;
- сообщения во время экспорта / импорта.
- от 3-х символов;
- часть слова;
- точное слово;
- точная фраза;
- аббревиатуры;
- словосочетание;
- несколько неполных слов;
- спецсимволы;
- цифры (положительные, отрицательные, ноль, целые, дробные, специальные значения, например, "Infinity");
- регистр ввода;
- различные языки / раскладки;
- пустое значение;
- морфология;
- анализ граничных значений и классы эквивалентности для длины;
- поиск по всем полям;
- поиск по некоторым полям;
- поиск без заполнения обязательных полей;
- поиск по обязательным полям;
- учет разнообразных параметров.
- ввод с клавиатуры;
- вставка из буфера (через контекстное меню, горячие клавиши: Ctrl+V, alt+код);
- ввод с экранной клавиатуры;
- редактирование, копирование;
- символы конца строки: \n, \r;
- перенос строки;
- очистка поля через Esc, Delete, Backspace;
- очистка поля через кнопку приложения.
Текстовое поле
- placeholder;
- буквы, цифры, специальные символы;
- длина строки;
- текст с пробелом: в начале, середине, конце, только пробел;
- не ASCII символы: смайлики;
Числовое поле
- положительные, отрицательные, ноль;
- целые, дробные;
- степени двойки;
- научная запись чисел: 1Е-10;
- вычисляемые выражения: 2+2;
Числовое поле
- границы минуты, часа, дня, недели, месяца, года, столетия;
- переход на зимнее / летнее время;
- несуществующие значения: 29 февраля;
- часовые пояса;
- соотношение с "сейчас";
- несколько связанных дат: с 01.01 - по 31.01
Нестандартный ввод
- '; SELECT *
- <!--abc>
- <script>alert("Alert text")</script>
- "[|]'~<!--@$%^&#*/()?>,.\