Привет! Меня зовут Артём, и я занимаюсь автоматизацией тестирования.
Антипаттерны в разработке — довольно популярная тема.
Но у тестирования есть и свои «вредные советы», и они довольно забавным образом пересекаются с разработкой.
Недавно я наткнулся на ироничную статью об антипаттернах в тестировании.
Ваше внимание!
Мы стараемся как можно быстрее доказать свою неправоту, потому что только так мы можем развиваться.Есть много способов усложнить жизнь командам автоматизации тестирования.Ричард Фейнман
Если вы разработчик или системный архитектор и вам не нравятся некоторые тестировщики, то эта статья для вас.
В нем вы найдете скрытые знания, вдохновившись которыми, вы научитесь делать интерфейс любого приложения практически непригодным для тестирования.
Ну а если вы добрая душа и уважаете труд других, то можете рассматривать эту статью как набор антипаттернов.
Итак, начнем.
Сборник проклятий
Идентификация
Ваша самая первая задача — сделать идентификацию элементов интерфейса слишком сложной или вообще невозможной.Эмпирическое правило: никаких идентификаторов.
Никогда не присваивайте идентификаторы элементам интерфейса.
Они упрощают поиск элементов инструментами автоматического тестирования.
Кроме того, даже если макет интерфейса изменится, идентификаторы сохраняются и позволяют находить элементы.
Но без удостоверения личности тестирование, скорее всего, завершится неудачей.
Динамические идентификаторы
Если не можете избавиться от идентификаторов, то хотя бы сделайте их динамическими.Генерируйте новое значение каждый раз, когда представление отображается пользователю.
И тогда все тесты с использованием фиксированных значений ID будут автоматически прерываться сразу после записи.
Динамический заголовок приложения
Это отличная идея — добавить время в главную строку заголовка окна приложения.
Например: Platinum CRM - ACME - December 19, 02:46:23 pm
Этот прием может усложнить не только определение элементов интерфейса, но и процесс написания теста.
Представьте, что объекты внутри инструмента автоматического тестирования сгруппированы по заголовку окна — тогда каждый объект станет отдельной группой.
Время выполнения
При обновлении данных время, необходимое для открытия диалогового окна или загрузки страницы, может быть непредсказуемым.Это заставит инженеров по автоматизации использовать в тестах множество выражений синхронизации.
Ждать! Есть и другие способы сделать время выполнения полностью случайным.
Неэффективная реализация обработки данных
Это очень просто.При реализации ПО не думайте об объеме данных, проверяйте код, используя небольшие базы данных и в единой среде.
Я гарантирую, что при реальной нагрузке ваша программа будет реагировать медленно.
Развертывание во враждебной среде
Разверните серверную часть вашего решения на виртуальной машине, размещенной на сервере с множеством других виртуальных машин.Существует большая вероятность того, что эти соседние виртуальные машины займут ресурсы ЦП/памяти/диска, когда они вам понадобятся больше всего.
Вспомогательные API
Никогда не реализуйте в своем приложении интерфейсы доступа, такие как UI Automation и ARIA, иначе у тестировщиков будет эффективный способ автоматизировать взаимодействие с приложением.Вы просто не имеете права давать им такую власть.
Часто обновляйте макет интерфейса
Меняйте раскладку каждую неделю.В совокупности с вышеперечисленными советами это просто убьет тестировщиков.
Они могут даже начать фантазировать о ручном тестировании, потому что тогда они не увидят, что их работа лежит в руинах.
Не давай им шанса
Состояние приложения
Ваше приложение не должно каким-либо образом показывать свое текущее состояние или то, что оно делает. Не выдавайте ничего, что можно использовать, чтобы понять, что происходит, или проверить правильность работы приложения.Никаких строк состояния и хлебных крошек.
Не давайте понять, что приложение в данный момент чем-то занято.
Навигация с помощью клавиатуры
Приложение не должно поддерживать альтернативные методы навигации или взаимодействия, например сочетания клавиш.Хотите перемещаться по меню? Мышь и только мышь.
Хотите перейти в другую камеру? Только мышь, стрелки на клавиатуре не должны работать.
Короче говоря, вы поняли.
Журналы
Не пишите никаких логов.Они могут предоставлять информацию о проблемах и содержать советы по их устранению.
Кнопки с иконками
Используйте кнопки с иконками и ни в коем случае не пишите для кнопок подписи или текстовые подсказки.В сочетании с отсутствием удостоверения личности это сделает идентификацию практически невозможной или очень ненадежной.
Окончательно
Помнить! Чтобы превратить тестирование пользовательского интерфейса в кошмар, вам необходимо следовать этим основным принципам:- Сделайте идентификацию объекта ненадежной.
- Сделайте поведение приложения непредсказуемым.
- Измените интерфейс так, чтобы он ломал тесты и превращал их в мусор.
- Приложение должно быть черным ящиком для инструментов автоматического тестирования.
- «Эффективно препятствовать любым попыткам обхода, например, с помощью сочетаний клавиш или анализа журналов.
Удачи! Теги: #автоматизация тестирования #тестирование #антипаттерны #тестирование ИТ-систем #программирование #Тестирование веб-сервисов #Тестирование мобильных приложений
-
Гуа
19 Oct, 24 -
Холодный Синтез Начал Работать?
19 Oct, 24 -
Креатив, Деньги, Пиар И Бомбардировщик Б-3.
19 Oct, 24 -
Рекламный Щит Для Конкурса Между Прохожими
19 Oct, 24 -
Сохранение Документов Excel В Pdf На Сервере
19 Oct, 24