Как вы тестируете визуальные компоненты?
Я думаю, что понимаю модульное тестирование. Но мне было интересно: есть ли способ автоматизировать что-то визуальное, например, убедиться, что сглаживание работает, или чтобы закругленные углы на веб-сайте выглядели так, как они должны? У меня такое ощущение, что это просто не практично, но у меня мало опыта в мире QA.
4 ответа
"Сглаживание работает или что закругленные углы на веб-сайте выглядят так, как они должны?"
Вы можете теоретически написать автоматизированные инструменты, чтобы делать снимки рендеринга и как-то анализировать их и сравнивать с макетом.
Вам понадобится какой-то механизм "привязки", чтобы выровнять ответ модели с визуализированным выводом, а затем выполнить различие в цвете, чтобы получающийся результат был полным черным изображением == идеальное соответствие.
Тем не менее, выполнение этого, несомненно, является чрезвычайно сложным и не компенсирует ошибки восприятия, такие как то, как это видят дальтоники на экране с плохо откалиброванной картой цветов.
Вместо этого вам нужно создать полное дерево всех возможных путей навигации в приложении (немного проще сделать программно / на основе набора тестов), а затем передать спецификацию группе людей для прохождения и выполнения на различных платформ.
Это будет работать на этой неделе, но будете ли вы повторять ручные тесты каждый раз, когда вносите изменения в код? Или каждый раз, когда вы делаете релиз? Ручные тесты просто не будут масштабироваться. Они дешевые в краткосрочной перспективе, но безнадежно дорогостоящие в долгосрочной перспективе. - Тим Оттингер
FWIW, даже Firefox все еще имеет набор тестов, управляемых человеком. Люди просто лучше распознают поведение, которое, хотя и соответствует определенному стандарту, не соответствует какому-то другому стандарту, который еще не был определен произвольно, и, следовательно, еще не было написано для него тест-кейс.
Вы также можете рассмотреть автоматизацию на уровне графического интерфейса, используя такой инструмент, как TestComplete. Существует множество таких инструментов по доступным ценам с огромным набором функциональных возможностей. Посетите форум по автоматизации SQAF, чтобы обсудить эту тему.
Это сложная проблема с модульным тестированием, и нет хорошего ответа. Проверка результата, отображаемого на экране, технически больше не является модульным тестированием (это более функциональное тестирование).
Лучший подход, который я нашел, - это структурировать ваш код, чтобы сделать слой представления максимально тонким. Для этого полезны такие шаблоны, как MVC и Presentation Model. Сделав это, вы можете программно протестировать бизнес-логику представления (как в конкретных взаимодействиях между компонентами представления) без необходимости что-либо отображать.
Проведите тестирование удобства использования в коридоре.;)