Телефон: 8-800-350-22-65
WhatsApp: 8-800-350-22-65
Telegram: sibac
Прием заявок круглосуточно
График работы офиса: с 9.00 до 18.00 Нск (5.00 - 14.00 Мск)

Статья опубликована в рамках: LV Международной научно-практической конференции «Научное сообщество студентов XXI столетия. ТЕХНИЧЕСКИЕ НАУКИ» (Россия, г. Новосибирск, 27 июля 2017 г.)

Наука: Информационные технологии

Скачать книгу(-и): Сборник статей конференции

Библиографическое описание:
Бей А.В. АВТОМАТИЗИРОВАННОЕ ТЕСТИРОВАНИЕ ВЕРСТКИ ВЕБ-СТРАНИЦ // Научное сообщество студентов XXI столетия. ТЕХНИЧЕСКИЕ НАУКИ: сб. ст. по мат. LV междунар. студ. науч.-практ. конф. № 7(54). URL: https://sibac.info/archive/technic/7(54).pdf (дата обращения: 29.03.2024)
Проголосовать за статью
Конференция завершена
Эта статья набрала 0 голосов
Дипломы участников
У данной статьи нет
дипломов

АВТОМАТИЗИРОВАННОЕ ТЕСТИРОВАНИЕ ВЕРСТКИ ВЕБ-СТРАНИЦ

Бей Александр Викторович

студент факультета информатики и вычислительной техники, Национальный технический университет Украины «Киевский политехнический институт имени Игоря Сикорского»,

Украина, г.Киев

На сегодняшний день количество сайтов на просторах Интернета зашкаливает. Ни один бизнес сейчас не проживет без собственного веб-сайта. Интернет-сервисы могут приносить огромную прибыль, так что конкуренция в этой сфере очень высока. Даже небольшие ошибки, допущенные при разработке, могут повлиять на выбор пользователя относительно того, какой из конкурентных сервисов ему выбрать. Поэтому, как и во многих других областях, тестирование играет очень важную роль и в процессе создания веб-сайтов и разработке интернет-сервисов. Тестирование проводится на различных этапах разработки, но в этой работе будет возбуждено только проблема тестирования интерфейса интернет-сервиса.

В зависимости от степени вовлеченности тестировщика в процесс можно выделить два основных вида тестирования: ручное и автоматизированное Каждая группа разработчиков программного обеспечения тестирует свои продукты, но у поставляемого программного обеспечения всегда есть недостатки. Инженеры-испытатели стремятся поймать их перед выпуском продукта, но они всегда ползут, и они часто появляются снова, даже с лучшими процессами ручного тестирования.

Ручное тестирование программного обеспечения выполняется человеком, сидящим перед компьютером, тщательно просматривающим экраны приложений, используя различные комбинации использования и ввода, сравнивая результаты с ожидаемым поведением и записывая их наблюдения. Ручные тесты повторяются часто во время циклов разработки для изменений исходного кода и других ситуаций, таких как несколько рабочих сред и аппаратных конфигураций. Автоматизированный инструмент тестирования способен воспроизводить предварительно записанные и предопределенные действия, сравнивать результаты с ожидаемым поведением и сообщать об успешности или неудаче этих ручных тестов для инженера-испытателя. После создания автоматических тестов их можно легко повторить, и они могут быть расширены для выполнения задач, невозможных при ручном тестировании. Из-за этого опытные менеджеры обнаружили, что автоматическое тестирование программного обеспечения является важным компонентом успешных проектов развития.

Во всех больших организациях уже организовано автоматизированное тестирование. Без этого никуда, потому что, когда продукт часто меняется, дополняется, уследить за качеством продукта вручную тяжело. Однако не всегда оно и нужно. Минусом автоматизации тестирования является то, что она эффективно может быть применена только в отношении простых сценариев и проверок. Написание автоматизированных тестов многошаговых сценариев может занять неприемлемо много времени ввиду непредвиденных нюансов или технических проблем. Но еще больше уйдёт времени на поддержку тестов. Гораздо тяжелее поддерживать тесты нежели писать..

В качестве решения этой проблемы сейчас начинают появляться проекты, целью которых является полностью автоматическое тестирование как в виде генерации обычных юнит-тестов, так и в виде моделирования взаимодействия пользователя с интерфейсом веб-сайтов. Это два совершенно разных подхода; в рамках данной работы будем говорить только о втором из них. Его идея заключается в том, чтобы моделировать как можно больше из тех действий и проверок, которые выполняет менеджер вручную. Представим себе, что мы имеем такую ​​программу, которая пусть и не находит все ошибки на сайте, но которая работает абсолютно сама, без помощи оператора. Тогда при наличии достаточных мощностей (которые, по текущим прогнозам не должны быть хоть сколько-то значимые в масштабах компании) мы сможем сократить объем ручного и автоматизированного тестирования, как уже было сказано, уменьшить и денежные затраты на весь процесс. Существует немало проектов, посвященных автоматическому тестированию веб-сервисов, каждый из которых заточен на любой определенный класс ошибок. В большинстве из них основной упор ставится на тестирование функциональности сайта, то есть корректной работы всех контролей и ссылок, а ошибкам, связанным с отображением страницы, уделяется мало внимания.

Задачи на создание внешнего вида веб-страницы сайта называется версткой. Она часто меняется, а ручное тестирование графического интерфейса сайта занимает много времени. Именно автоматизированному тестированию корректности отображения веб-страницы будет посвящена эта работа.

Также под термином верстка понимается и сама веб-страница с точки зрения ее внутренней структуры - результат работы программиста. Несмотря на то, что практически все используемые для создания веб-страниц языка и библиотеки отлично документированы и существует множество книг и online-пособий по созданию веб-интерфейсов, верстка страниц остается слабо формализованной областью по двум причинам. «Во-первых, разные программисты могут придерживаться в корне различных подходов. В сети можно найти множество советов по применению тех или иных приемов, но незыблемых стандартов все же не существует. Во-вторых, множество задач, которые ставятся программистам, так разнообразны, что совершенно не представляется возможным предусмотреть стандарт на все случаи. Каждая новая задача решается теми методами, которые конкретный программист знает, количество ошибок из-за этого только растет.» [1, с. 42].

В рамках данной работы нужно спроектировать систему, которая позволит автоматически проверять ошибки верстки веб-страниц после изменений в коде. Продукт должен быть наделен простым, удобным и понятным интерфейсом, иметь форму авторизации и регистрации, быть простым в использовании.

При создании программного продукта должен быть проведен полный цикл его написания: начиная от постановки задачи, требований к продукту, к непосредственно написанию программной части, ее тестированию и созданию соответствующей технической документации для более легкого старта пользования системой.

Целью данной работы является создание программы, в автоматическом режиме обнаружения ошибок верстки веб-страниц сайта. Для ее решения были поставлены следующие задачи:

• собрать и систематизировать основные требования к системе;

• разработать UML-диаграммы системы

• реализовать программу на основе собранной информации;

• протестировать и отладить созданное программное обеспечение;

• написать техническую документацию к системе;

Задачи данной работы - определение недостатков существующих решений для тестирования верстки веб-страниц, определение простого пользовательского интерфейса, проектирование, разработка и тестирование созданной программной системы.

Объект данной работы - система автоматизированного тестирования верстки веб-страниц.

Полученные в работе результаты могут быть использованы в компаниях в отделе контроля качества с целью экономии времени на задачу.

Часто бывает, что после изменений с back-end стороны или после обновления какого плагина, библиотеки,  отваливаются javascript скрипты, css стили или что-то еще. Из-за этого выявляются ошибки верстки веб-сервиса и пользователь наблюдает не слишком красивый сайт. Моя система будет отслеживать, на каких страницах после внесения изменений ошибка верстки.

Целью данной работы является создание программы, в автоматическом режиме обнаружения ошибок верстки веб страницах сайта. Для этого мне нужно:

• Знать все url страниц заданного пользователем сайта

• Делать скриншот всей страницы по заданному url

• Конвертировать скриншот в формат md5

• Сравнивать скриншоты в формате string

• Выводить результаты тестов

Разрабатывать систему я решил с помощью ASP.NET MVC Framework. Entity Framework упрощает внедрения базы данных в проект. Selenium Framework на не будет использоваться в полной мере. Только пару методов, а именно открытие страницы и скриншот. Mozilla Firefox WebDriver, загруженный через Nuget-пакеты нам в этом поможет.

Я использовал библиотеку "Html Agility Pack", которая является очень удобным и одним из лучших .NET парсером HTML. По заданному url она находит все страницы и выводит коллекцию ссылок. Но была проблема, библиотека искала абсолютно все ссылки (ссылки по Типу "https://test.com/docs/pp.pdf"), поэтому пришлось добавить ограничение по поиску.

C# хорошо работает с форматом md5. Конвертация происходит с string значения. Для этого я конвертирует изображение в формат Base64 с помощью Selenium Web Driver и на выходе получаю string значение нашего изображения. Затем конвертируем string base64 в string md5, который занимает значительно меньше места. Сравниваю изображения используя string метод Equals.

В итоге, пользователь заходит на сайт для автоматизированного тестирования верстки веб-страниц, вводит адрес своего веб-ресурса. После с помощью одного клика находит все страницы своего сайта. Следующим шагом будет первый тест системы, где программа собирает эталонные скриншоты сайта (подразумевается, что при первом тесте на вашем сайте все вручную протестировано и графическое отображение страниц является верным). У пользователя будет возможность просмотреть эталонные скриншоты страниц, а также пересмотреть список своих сайтов для тестов. Как только back-end разработчики введут какие-либо изменения в вашу систему, то вы проводите тест вашего сайта, где реализованная система проверяет графическое отображение страниц веб-ресурса до и после изменений (то есть сравнивает эталонный вариант с полученным после изменений). При наличии ошибок реализованная система выведет эти ошибочные страницы в результате теста.

В работе проведен анализ существующих решений для тестирования и спроектировано систему автоматизированного тестирования верстки веб-страниц на основе сравнения скриншотов сайта. Реализовано такую систему и протестировано на локальном сайте.

Такая система полезна для эффективности и экономии времени тестирования верстки веб-страниц сервисов и может быть полезной для пользователей, работающих в ИТ-сфере.

 

Список литературы:

  1. Дронов В. HTML 5, CSS 3 и Web 2.0. Разработка современных Web-сайтов /   Владимир Дронов. – Санкт-Петербург: БХВ-Петербург, 2011. – 658 с.
  2. Сандерсон С., ASP .NET MVC Framework с примерами на C#, 2015 – 687 с
  3. Савин Р. Тестирование DOT COM / Роман Савин. – Москва, 2007. – 316 с
Проголосовать за статью
Конференция завершена
Эта статья набрала 0 голосов
Дипломы участников
У данной статьи нет
дипломов

Оставить комментарий

Форма обратной связи о взаимодействии с сайтом
CAPTCHA
Этот вопрос задается для того, чтобы выяснить, являетесь ли Вы человеком или представляете из себя автоматическую спам-рассылку.