СПОСОБ И СИСТЕМА РЕГРЕССИОННОГО ТЕСТИРОВАНИЯ ФУНКЦИОНАЛЬНОСТИ ВЕБ-СТРАНИЦЫ, МАШИНОЧИТАЕМЫЙ НОСИТЕЛЬ ИНФОРМАЦИИ
METHOD AND SYSTEM OF REGRESSION TESTING OF WEB PAGE FUNCTIONALITY, MACHINE-READABLE DATA STORAGE MEDIA

Область техники, к которой относится изобретение
Настоящее решение предлагает способ обработки веб-страницы и, в частности - способ обработки веб-страниц для упрощения тестирования функциональности веб-страниц.
Уровень техники
Тестирование веб-страниц хорошо известно в данной области техники по ряду причин. Например, известна процедура проверки совместимости конкретной веб-страницы с различными браузерами. Также известна процедура тестирования эффекта от обновления базового кода, который используется для отрисовки созданной веб-страницы при просмотре ее в браузере. Примеры тестирования включают в себя регрессионное тестирование, которое является известной формой тестирования программного обеспечения. Тестирование программного обеспечения используется для поиска багов (ошибок) или других программных недостатков, которые могут спровоцировать остановку функционирования определенных характеристик после внесения изменений в базовое программное обеспечение или в результате использования другого типа браузера для отрисовки графического интерфейса браузера (GUI) для этого конкретного программного кода.
В патенте US 6898764 В2 определено, что существенной частью цикла разработки любого программного обеспечения является цикл тестирования. Тестирование является обязательной процедурой для проверки того, что программа работает правильно. Для многих программ часть цикл тестирования включает в себя тестирование графического интерфейса пользователя (GUI) объекта, и в настоящем патенте описано, что тестирование GUI объекта обычно выполняется с помощью инструментов тестирования, таких как инструменты захвата и воспроизведения GUI. Для упрощения автоматизации тестов GUI инструменты тестирования обычно создают различные виды файлов отображения GUI, которые используются для описания содержимого GUI программы на объектом уровне. В общем случае, файл отображения GUI включает себя строку текста для каждого объекта GUI, и каждая строка описывает конкретный объект GUI.
В заявке US 2008/0310736 А1 представлено визуальное сравнение системы, в которой два изображения могут сравниваться аналитическим путем. Два изображения могут представлять собой снимки экрана пользовательского интерфейса или любую другую пару изображений, которые необходимо сравнить. Как описано, два изображения могут быть сравнены с помощью как графической, так и контрольной информации и метаданных. Контрольная информация может расширять известную информацию об изображении за пределы простой графической информации. Представленные на изображении элементы, такие как кнопки, списки, текстовые окна, списки, переключатели и тому подобное, могут быть скорее определены по их функциям, чем по внешнему виду. С помощью контрольных данных элементы могут быть сравнены на предмет различий, которые затем могут быть представлены тестировщику для простой идентификации и работы с ними.
Раскрытие изобретения
Первым объектом настоящего решения является способ регрессионного тестирования внешнего вид веб-страницы или веб-страниц. Для этого представлен способ, позволяющий тестировать фрагменты конкретной тестовой страницы в нескольких браузерах или несколько версий одной страницы в одном браузере.
Представленный способ может быть использован для тестирования веб-страницы на совместимость с браузером или для внесения изменений в базовый код, который был использован для отрисовки одной веб-страницы в одном браузере.
В соответствии с настоящим решением веб-страница или множество веб-страниц, которые образуют веб-сайт, разделены на несколько функциональных блоков. Каждый функциональный блок обладает по меньшей мере первым функциональным состоянием и вторым функциональным состоянием, каждое из которых связано с конкретным сформированным изображением, которые создано в результате выполнения кода, соответствующего функциональному блоку. При эмуляции, в первый момент времени выполнение кода, который был определен функциональным блоком, возможно захватить, для данной процедуры эмуляции, сформированное графическое изображение для каждого из первого функционального состояния и второго функционального состояния. Эти захваченные сформированные изображения далее могут быть связаны с функциональным блоком и сохранены как исходный массив данных. Во второй момент времени возможно выполнить процедуру эмуляции функционального блока и захвата для данной процедуры эмуляции, тестируемых сформированных графических изображений для каждого из первого и второго функциональных состояний для создания тестового массива данных. Сравнение пиксельных значений изображений из исходного массива данных и тестового массива данных позволяет идентифицировать изменения между ними. Эти изменения могут быть использованы для получения доступа к результату изменений на веб-странице или к совместимости веб-страницы с конкретными браузерами.
Сформированное графическое изображение, которое было создано на этапе выполнения этого кода, захватывается одним или несколькими снимками экрана. Эти снимки экрана ссылаются или иным образом связываются с исходным кодом. При помощи изоляции индивидуальных части функционального кода и связи их с индивидуальными снимками экрана, становится возможным увидеть эту часть кода на куда большем уровне детализации, чем достигается, например, за счет выпадающих меню. При выполнении анализа на этом уровне детализации также можно увидеть, как именно конкретная часть кода будет влиять на внешний вид веб-страницы в целом. В соответствии с настоящим решением, можно проверить визуальные эффекты, которые вызваны тестовой частью кода, по отношению к соседним сформированным частям веб-страницы, которые относятся к не измененным частям кода. Также возможно последовательное определение того, какие части исходного кода были фактически тестированы в отличие от всей остальной страницы.
Подобный способ обладает некоторыми преимуществами в отношении тестирования конкретных блоков веб-страницы и связи этих блоков кода с соответствующими снимками экрана, которые затем могут быть использованы в качестве эталонных.
Настоящая технология предлагает способ, который упрощает создание библиотеки групп эталонных изображений для конкретных блоков кода. Эта библиотека эталонных снимков экрана может быть использована позднее для проверки дальнейших итераций на этой веб-странице или на той же версии веб-страницы в условиях другого браузера для другого сформированного изображения. В соответствии с одним вариантом файл данных создается в результате процесса тестирования, который определяет эталонное изображение, текущее изображение и различия между ними. Все это может быть осуществлено для каждого состояния в каждом браузере в рамках конкретной тестируемой веб-страницы. В другом варианте файл данных был создан в результате процесса тестирования, который определяет эталонное изображение, конкретное изображение и различия между ними для каждого неограниченного промежутка времени в рамках конкретной веб-страницы, которая тестируется в одном и том же браузере.
Для определения отличий в тестовом и эталонном изображениях, согласно одному из вариантов, сравнение основано на цветах пикселей в каждом изображении. При сравнении фактических цветов пикселей в отличие от машинного кода каждого из цветов решение обладает преимуществом, компенсируя различные оттенки цветов, которые могут отображаться в процессе отрисовки веб-страницы.
В другом варианте осуществления цвет каждого пикселя обрабатывается как упрощенный, аналогично тому, как обрабатывает цвет человеческий глаз. При подобном обращении с цветом эталонного изображения и тестируемого изображения становится возможным уменьшить возможность ложных совпадений, т.е. неправильного определения различий между двумя изображениями.
Другим объектом решения является разбор индивидуальной веб-страницы на индивидуальные функциональные блоки или элементы. При тестировании индивидуальных элементов можно обеспечить еще больший уровень детализации при использовании активных элементов, которые могут быть статичными или активными.
Еще одним объектом настоящего решения является система для регрессионного тестирования функциональности веб-страницы, система включает в себя первое хранилище данных, в котором содержится исходный массив данных, включающий в себя сформированные графические изображения по меньшей мере части веб-страницы в первом функциональном состоянии, причем сформированные графические изображения связаны с кодом из функционального блока, который при эмуляции влияет на отрисовку сформированных графических изображений. Система дополнительно включает в себя процессор, выполненный с возможностью влиять на эмуляцию функционального блока для создания тестового массива данных, который включает в себя захваченные сформированные изображения по меньшей мере части веб-страницы в первом функциональном состоянии и втором функциональном состоянии во второй момент времени. При сравнении пиксельных значений изображений в каждом из исходного массива данных и тестового массива данных можно определить изменения в сформированном графическом изображении между исходным и тестовым массивами данных.
Еще одним объектом является машиночитаемый носитель информации, включающий в себя выполняемые инструкции (машиночитаемые коды), которые хранятся на машиночитаемом носителе, и при выполнении которых электронное устройство настраивается для выполнения вышеуказанного способа.
Краткое описание чертежей
Далее будут описаны различные примерные варианты осуществления со ссылками на соответствующие чертежи, где:
На Фиг. 1 схематически представлена система, соответствующая решению;
На Фиг. 2 представлена блок-схема способа, который может быть реализован;
На Фиг. 3 представлена блок-схема способа, который может быть реализован в соответствии с настоящим решением;
На Фиг. 4 представлен образец фрагмента веб-страницы, который может быть протестирован в соответствии с настоящим решением;
На Фиг. 5 представлен образец снимка экрана сформированной веб-страницы в первом функциональном состоянии;
На Фиг. 6 представлен снимок экрана сформированной веб-страницы во втором функциональном состоянии.
Осуществление изобретения
На Фиг. 1 представлена система 100, включающая в себя сервер 110, который используется для тестирования веб-страниц, и конкретный эффект от основного кода, который используется для отрисовки веб-страницы, отображаемой с помощью браузера на дисплее одного или нескольких устройств 120. Одно из одного или нескольких устройств 120 может быть использовано системным оператором для получения доступа к функциональности системы 100. Важно иметь в виду, что система 100 является только одним из вариантов осуществления. Таким образом, все последующее описание представлено только как описание иллюстративного примера. Это описание не предназначено для определения объема или установления границ настоящей технологии. Некоторые полезные примеры модификаций системы также могут быть охвачены нижеследующим описанием. Стоит отметить, что целью этого является также исключительно помощь в понимании, а не определение объема и границ настоящей технологии. Эти модификации не представляют собой исчерпывающий список, и специалистам в данной области техники будет понятно, что возможны и другие модификации. Кроме того, это не должно интерпретироваться так, что там, где это еще не было сделано, т.е. там, где не были изложены примеры модификаций, никакие модификации невозможны, и/или что то, что описано, является единственным вариантом осуществления этого элемента. Как будет понятно специалисту в данной области техники, это скорее всего не так. Кроме того, следует иметь в виду, что система представляет собой в некоторых конкретных проявлениях достаточно простой вариант осуществления, и в подобном случае представлен здесь с целью облегчения понимания. Как это понятно специалисту в данной области техники, многие варианты осуществления будут обладать гораздо большей сложностью.
В контексте настоящего описания, если конкретно не указано иное, «электронное устройство» подразумевает под собой аппаратное устройство, способное работать с программным обеспечением, подходящим к решению соответствующей задачи. Примерами электронных устройств, среди прочего, являются персональные компьютеры (настольные компьютеры, ноутбуки и т.д.), смартфоны и планшеты и устройства спутниковой навигации. Следует иметь в виду, что устройство, ведущее себя как электронное устройство в настоящем контексте, может вести себя как сервер по отношению к другим электронным устройствам. Использование выражения «электронное устройство» не исключает возможности использования множества электронных устройств для получения/отправки, выполнения или инициирования выполнения любой задачи или запроса, или же последствий любой задачи или запроса, или же этапов любого вышеописанного метода.
Общий вариант осуществления электронного устройства 120 известен в области техники, и поэтому не будет здесь подробно описан. Достаточно сказать, что электронное устройство 120 содержит пользовательский интерфейс ввода (например, клавиатуру, мышь, сенсорную панель, сенсорный экран и т.п.) для получения пользовательского ввода; вышеупомянутый экран (например, экран, сенсорный экран, принтер и т.п.) для предоставления визуального или звукового вывода пользователю; интерфейс сетевой связи (например, модем, сетевую карту и т.п.) для двусторонней связи по сети передачи данных; и процессор, соединенный с пользовательским интерфейсом ввода, пользовательским интерфейсом вывода и интерфейсом сетевой связи, который выполнен с возможностью выполнять различные процедуры, включая те, что описаны ниже. С этой целью процессор может сохранять или иметь доступ к машиночитаемым командам (машиночитаемым кодам), выполнение которых инициирует процессор выполнять различные описанные здесь процедуры.
В контексте настоящего описания, если конкретно не указано иное, «сервер» подразумевает под собой компьютерную программу, работающую на соответствующем оборудовании, которая способна получать запросы (например, от электронных устройств 120) по сети 130 и выполнять эти запросы или инициировать выполнение этих запросов. Оборудование может представлять собой один физический компьютер или одну физическую компьютерную систему, но ни то, ни другое не является обязательным. В контексте настоящей технологии использование выражения «сервер» не означает, что каждая задача (например, полученные инструкции или запросы) или какая-либо конкретная задача будет получена, выполнена или инициирована к выполнению одним и тем же сервером (то есть одним и тем же программным обеспечением и/или аппаратным обеспечением); это означает, что любое количество элементов программного обеспечения или аппаратных устройств может быть вовлечено в прием/передачу, выполнение или инициирование выполнения любого запроса или последствия любого запроса, связанного с клиентским устройством, и все это программное и аппаратное обеспечение может являться одним сервером или несколькими серверами, оба варианта включены в выражение «по меньшей мере один сервер».
В контексте настоящего описания, если конкретно не указано иное, термин «база данных» подразумевает под собой любой структурированный набор данных, не зависящий от конкретной структуры, программного обеспечения по управлению базой данных, аппаратного обеспечения компьютера, на котором данные хранятся, используются или иным образом оказываются доступны для использования. База данных может находиться на том же оборудовании, которое выполняет процесс, который сохраняет или использует информацию, хранящуюся в базе данных, или же она может находиться на отдельном оборудовании, например, выделенном сервере или множестве серверов.
В контексте настоящего описания, если конкретно не указано иное, термин «компонент» подразумевает под собой программное обеспечение (соответствующее конкретному аппаратному контексту), которое является необходимым и достаточным для выполнения конкретной(ых) указанной(ых) функции(й).
Система 100, реализованная в соответствии с Фиг. 1, выполнена с возможностью выполнять способ регрессионного тестирования внешнего вида веб-страницы или страниц, и со ссылкой на Фиг. 2 описан пример того, как именно эта система может быть использована. Для этого в решении представлен способ, позволяющий тестировать фрагменты конкретной тестовой страницы в нескольких браузерах или нескольких версий одной страницы в одном браузере. Для обеспечения тестирования веб-страница или множество веб-страниц, вместе образующих веб-сайт, были распределены на множество функциональных блоков, которые были сохранены в базе 140 данных тестовой среды в рамках системы (этап 200).
Частью функции тестирования этих индивидуальных блоков является модуль 150 создания тестирования, который обеспечивает определение одного или нескольких наборов тестов для каждого функционального блока (этап 210). Определенные наборы тестов могут быть выполнены с возможностью упростить тестирование каждого из этих функциональных блоков в рамках одного или нескольких из их функциональных состояний. Например, следует отметить, что поисковый блок может обладать двумя состояниями, первое из которых отображает визуальное представление страницы после того, как поисковый блок был изначально загружен и до выполнения поиска, а во втором состоянии данные возвращаются и отображаются в поисковом блоке. Другие примеры функциональных состояний представлены в выпадающих меню, показаны на Фиг. 5 и 6. На Фиг. 5 представлен образец отображаемой веб-страницы 500, на которой видны три выпадающих меню 510, 520 и 530. Каждое из этих меню, показанных с Фиг. 5, находятся в первом функциональном состоянии, которое в данном случае не активировано. На Фиг. 6 показана та же веб-страница 600 с теми же выпадающими меню 510, 520 и 530, но первое выпадающее меню 510 находится во втором функциональном состоянии, в котором видно меню 610. На этом примере видно, что визуальное представление, сформированное при отрисовке кода на экране для восприятия пользователя, будет зависеть от того, какое из двух состояний реализовано.
Создание конкретного набора тестов использует заранее созданные процедуры тестирования или сценарии (оба варианта включены в понятие "тестовые процедуры"), которые хранятся в базе 160 данных библиотеки тестов. Эти заранее созданные тестовые процедуры или действия могут быть связаны друг с другом и использованы для программирования серии этапов, которые будут выполнены по отношению к конкретному функциональному блоку. Серии этапов выполнены с возможностью имитировать взаимодействие пользователя с веб-страницей и автоматически приводить функциональный блок в желаемое состояние. Для каждого блока веб-сайта, который будет протестирован, есть набор тестов, созданных модулем 150 создания тестов. Каждый набор тестов обеспечивает тестирование одного или нескольких состояний функциональных блоков и подтверждает правильность их выполнения. Для тестирования каждого состояния необходимо создать функционирующий рабочий процесс или последовательность действий, которая, при выполнении ее по отношению к функциональному блоку, влияет на блок таким образом, что приводит его к (или проводит через) этим состояниям. Действия могут быть привязаны друг к другу и, желательно, выполнены с возможностью выполняться последовательно таким образом, что первое действие в наборе тестов выполняется и завершается до инициирования второго действия. Примерами действия могут быть:
- click (element) - щелчок мыши по центру элемента.
- doubleClick (element) - двойной щелчок мыши по центру элемента.
- mouseDown (element, [button]) - нажатие кнопки мыши в центре элемента. Возможными значениями кнопки могут быть: 0 - левая, 1 - средняя, 2 - правая. По умолчанию, используется левая кнопка мыши.
- mouseUp (element) - отпущена ранее нажатая кнопка мыши.
- mouseMove (element, [offset]) - перемещение мыши на данный элемент. Смещение конкретизировано для левого верхнего угла элемента. Если оно не указано, мышь будет перемещена в центр элемента.
- dragAndDrop (element, dragTo) - перетащить элемент на другой элемент dragTo.
- executeJS (function (window)) - запустить конкретную функцию в браузере. Аргументом функции является объект окна браузера.
Любой созданный набор тестов также будет включать в себя область захвата экрана, которая будет влиять на захват и хранение конкретной части выполняемой веб-страницы. Функция захвата экрана также может быть выполнена с возможностью захватить массив различных областей веб-страницы и эта функция может быть привязана таким образом, что позволяет осуществлять несколько захватов в пределах одной процедуры набора тестов: примеры обычных частей кода, которые могут храниться в базе 160 данных библиотеки тестов, и которые могут быть использованы в создании набора тестов для последующего хранения их в библиотеке 150 наборов тестов, включают в себя:
setUrl (url) - указывает адрес веб-страницы, с которой будут создаваться снимки экрана. URL относится к полю настройки rootUrl.
setCaptureElements ('selector1', 'selector2', …}) - указывает CSS-селекторы для элементов, которые будут использованы для определения области захвата веб-страницы.
Следует отметить, что для подтверждения правильности захвата (формирования, получения) сформированной веб-страницы необходимо, чтобы область захвата была определена минимумом ограничивающей зоны для всех элементов, включая тени от окон, если это возможно. При выполнении процедуры захвата, которая будет исполняться автоматически как часть любого набора тестов, конкретные сформированные изображения, созданные в результате выполнения кода, который был определен тестируемым функциональным блоком, будут захвачены с помощью одного или нескольких снимков экрана. Эти снимки экрана ссылаются или иным образом связываются с исходным кодом. При помощи изоляции индивидуальных частей функционального кода и связи их с индивидуальными снимками экрана, эту часть кода становится возможным увидеть на куда большем уровне детализации, чем достигается, например, за счет выпадающих меню и тому подобного.
После создания набора тестов для конкретного функционального блока кода в рамках тестового режима необходимо выполнить набор тестов по отношению к конкретному коду, чтобы определить свойства набора данных для конкретной части функционального кода (этап 220). Как упоминалось ранее, каждый из индивидуальных наборов тестов хранится в конкретном месте в библиотеке 150 наборов тестов. Сервер 110 может быть выполнен с возможностью выполнять конкретный набор тестов или комбинацию наборов тестов с помощью команд, таких как команда слияния, которая будет инициировать выполнение одного или нескольких наборов тестов, находящихся в конкретном разделе библиотеки наборов тестов, как было определено в конкретном случае. Следует отметить, что, поскольку наборы тестов были индивидуально персонализированы или связаны с конкретными блоками функционального кода, которые были определены в пределах базы 160 данных блоков функционального кода, выполнение набора тестов инициирует автоматическую обработку кода в рамках определенного функционального блока, включая графическую отрисовку тестируемых действий на веб-странице. Результирующее визуальное отображение, являющееся результатом выполнения набора тестов, далее будет захвачено с учетом определенных в наборе тестов параметров. В соответствии с настоящей технологией после захвата эталонный набор изображений далее сохраняется или каким-либо иным образом связывается с базой данных блока функционального кода (этап 230) для определения исходного массива данных. Исходный массив данных хранит данные, указывающие на поведение функционального блока в первый момент времени. Этот момент времени может указывать на то, как веб-страница, формируемая при обработке кода, который определяет функциональность веб-страницы, или же части веб-страницы, определенной тестируемыми функциональными блоками, выглядят в первом браузере, или же просто указывать на то, как будет отображаться и работать веб-сайт в конкретный день в конкретное время.
Набор тестов может быть выполнен в фоновом режиме, но выполнение наборов тестов также может быть выполнено с возможностью обеспечить пользователю графический обзор исполняемого кода в процессе выполнения отдельных наборов тестов. Это может быть полезно по целому ряду причин, включая тот факт, что это в реальном времени обеспечивает демонстрацию того, что именно будет захвачено. Как будет подробнее объяснено ниже подобный графический обзор, который одновременно отображается во время выполнения отдельных наборов тестов, также может быть использован для демонстрации в реальном времени отличий между эталонным набором захваченных изображений и изображениями, захваченными во время последующего выполнения набора тестов по отношению к по сути тому же самому функциональному блоку.
Следует отметить, что формирование базы 140 данных о среде тестирования и функционального кода, который был применен для отрисовки этих изображений, является только первым этапом в способе регрессионного тестирования. Вторым этапом является сравнение этих эталонных изображений, которые были определены в исходном массиве данных, со вторым набором захваченных изображений, тестовым массивом данных. На Фиг. 3 представлен обзор примерной схемы, которая может быть принята в качестве части этого способа сравнения.
После применения набора (наборов) тестов к одному или нескольким функциональным блокам в рамках конкретной веб-страницы настоящая технология обеспечивает второе применение того же набора тестов к функциональному блоку, и предполагается, что по существу оно будет выполняться тем же образом, что и в случае уже протестированного эталонного функционального блока (этап 300). Примеры такого последовательного тестирования могут включать в себя тестирование одного и того же функционального блока в различных браузерных средах или тестирование измененной версии функционального блока в той же браузерной среде, которая была использована в случае эталона, или же комбинации этих двух случаев.
Аналогично тому, что описано со ссылкой на Фиг. 2, подобное применение набора тестов влияет на созданный набор захваченных изображений, которые связаны с функциональностью тестируемых функциональных блоков. Подобно хранению эталонных данных для любого функционального блока, эти захваченные изображения могут храниться в тестовой базе 170 данных (этап 310) и определять тестовый набор данных. Следует отметить, что захваченные изображения могут храниться не постоянно, достаточно того, что они будут кэшированы в памяти, и это позволит обрабатывать эти захваченные изображения по отношению к соответствующим эталонным изображениям (этап 320).
Из всего вышесказанного будет понятно, что настоящая технология предлагает способ, который упрощает создание исходного массива данных, включающего в себя серию эталонных изображений для конкретных блоков кода. Эта библиотека эталонных снимков экрана может быть использована позднее для проверки дальнейших итераций на этой веб-странице или на той же версии веб-страницы в условиях другого браузера для другого сформированного изображения. В соответствии с одним вариантом файл данных создается в результате процесса тестирования, который определяет соответствующие изображения в каждом из исходного массива данных и тестируемого массива данных и сравнивает их друг с другом. Сравнение осуществляется с помощью пиксельных значений, таких как цвет пикселя и интенсивность пикселя, и способствует определению различий между изображениями в двух массивах данных. Файл данных может храниться в тестовой базе 170 данных (этап 330). Все это может быть осуществлено для каждого состояния в каждом браузере в рамках конкретной тестируемой веб-страницы. В другом варианте файл данных был создан в результате процесса тестирования, который определяет эталонное изображение в исходном массиве данных, конкретное изображение в тестовом массиве данных и отличия между ними для каждого неограниченного во времени в рамках конкретной веб-страницы, которая тестируется в одном и том же браузере.
Путем проведения анализа на этом уровне детализации также можно увидеть то, как конкретная часть кода будет влиять на общий вид веб-страницы. Например, в соответствии с настоящим решением, можно проверить визуальные эффекты, которые вызваны тестовой частью кода, по отношению к соседним сформированным частям веб-страницы, которые относятся к не измененным частям кода. Также возможно последовательное определение того, какие части исходного кода были фактически тестированы в отличие от всей остальной страницы. Подобный способ обладает некоторыми преимуществами в отношении тестирования конкретных блоков веб-страницы и связи этих блоков кода с соответствующими снимками экрана, которые затем могут быть использованы в качестве эталонных.
На части этапа 320 сравнения система и способ, соответствующие настоящей технологии, определяют отличия в изображениях, которые формируют тестовый массив данных и исходный массив данных. В некоторых вариантах осуществления настоящей технологии определение отличий может быть выполнено посредством попиксельного сравнения двух наборов изображений. В одном варианте это сравнение основано на цвете пикселей в каждом изображении. При сравнении фактических цветов пикселей в отличие от машинного кода каждого из цветов преимущественно компенсирует различные оттенки цветов, которые могут отображаться в процессе отрисовки веб-страницы. После проведения сравнение двух захваченных изображений становится возможно автоматически создать отчет в одном из различных форматов, включая HTML.
В другом варианте, который не затрагивает фактические цвета пикселей в каждом изображении, цвет каждого пикселя рассматривается упрощенно в том виде, в котором цвет распознается человеческим глазом. При таком обращении с цветами эталонного изображения и тестируемого изображения становится возможным уменьшить возможность ложных совпадений, т.е. неправильного определения отличий между двумя изображениями. В некоторых вариантах осуществления упрощенный цветовой код был получен из более сложных определенных машиной цветов. Например, известны способы идентификации определенных машиной цветов в пределах основных цветов и суб-цветов (или оттенков). Эти суб-цвета могут не улавливаться человеческим глазом. В некоторых вариантах осуществления настоящей технологии система 100 поддерживает возможность сопоставления (не показана), которая связывает один или несколько сложных цветов, неуловимых человеческим глазом, с одним упрощенным цветом, который человеческий глаз способен воспринять. Например, данное сопоставление может связывать три цвета: <красный>, <ярко-красный> и <темно-красный> (или соответствующие машинные коды типа #ABCD) с цветом <красный>.
Путем анализа захваченных изображений на основе сравнения также возможно компенсировать помехи отрисовки, ошибочный текст или символы. Например, способ обработки изображения, который является одним из способов, которые могут быть использованы в соответствии с настоящей технологией, может выполняться с возможностью игнорировать наличие курсора в процедуре захвата экрана, как в случае эталонного, так и в случае тестового изображения.
Поскольку все наборы тестов были созданы с помощью базы 160 данных библиотеки тестов, в которой содержатся заранее созданные процедуры тестирования или сценарии, и набор тестов создается для определенной пользователем части кода, возможно, что любой набор тестов будет охватывать несколько функциональных блоков на одной веб-странице. В этом случае возможно создать захват экрана, который будет иллюстрировать эффект от обработки одной части кода на другой части веб-страницы. На Фиг. 4 представлен пример фрагмента веб-страницы, который создан в результате обработки двух отдельных частей функционального кода, блока А 400 и блока В 410. Поскольку система и способ позволяют использовать несколько регионов (областей) захвата для любого одного функционального блока, то возможно опознать последовательность нескольких блоков в отношении кода элементов. Каждая часть кода может быть связана с соответствующим визуальным представлением кода в макете веб-страницы. Кроме того, поскольку набор тестов позволяет пользователю определить область захвата, то можно определить и обозначить границы между блоками в рамках захваченного снимка экрана, и дает определение того, что представление является одним из:
a) один блок в нулевом состоянии (например, кнопка в выпадающем меню, кнопка не выбрана;
b) два (несколько) блоков в нулевом состоянии;
c) один блок с активированными функциями (нажатая кнопка в выпадающем меню);
d) две кнопки и, например, выпадающее меню перекрывает вторую кнопку.
Частью способа регрессионного тестирования является, как подчеркивалось выше, тестирование одного и того же функционального кода в различных браузерных средах или тестирование различных версий одного и того же кода в одной браузерной среде. Для обеспечения этой функции система 100 может взаимодействовать с третьей стороной, предоставляющей инструменты 180 автоматизации (см. Фиг. 1), например, такие, которые могут быть использованы для автоматизации выполнения веб-приложения в рамках браузерной среды или для симуляции выполнения той же веб-страницы в различных браузерах. Примерами таких инструментов могут быть Selenium - набор различных программных инструментов, каждый из которых обладает различными подходами к автоматизации тестирования, что может упростить тестирования в различных браузерных средах или PhantomJS, который является консольной версией браузера webkit, и может быть выполнен с возможностью обрабатывать функциональный блок и измененные версии этого функционального блока в рамках того, что определяется как одна и та же браузерная среда. Несмотря на то что эти инструменты автоматизации показаны как находящиеся снаружи системы 100, некоторые варианты осуществления этих инструментов могут быть установлены внутри системы 100 или получать к ней доступ по сети 130. Следует отметить, что выбор любого из этих типов инструментов может осуществляться как часть создания конкретных наборов тестов.
Следует отметить также, что описанная здесь функциональность была представлена со ссылкой на тестирование конкретных определенных функциональных блоков кода в рамках конкретной веб-страницы или групп веб-страниц, образующих веб-сайт. Как было упомянуто ранее, пользовательское определение функционального блока кода, например, CSS-кода, на конкретном веб-странице может быть протестировано, а созданные или сформированные веб-страницы, которые связаны с этой конкретной страницей, могут сохраняться и использоваться в тестовом режиме. Путем разбиения веб-страницы на составные функциональные блоки и дальнейшего тестирования этих блоков настоящая технология позволяет очень подробно оценивать эти блоки в контексте общего вида веб-страницы. При определении области захвата функционального блока возможно определять то, как именно различные блоки могут влиять на общее отображение, в том числе частей веб-страницы, которые являются результатами процесса отрисовки другого функционального блока.
Система 100 позволяет пользователю разбить веб-страница на составные функциональные блоки, что может быть выполнено для последующего отчета о том, какие части веб-страницы были протестированы. Как было описано ранее, после создания набора тестов для функционального блока и сохранения его в библиотеке 150 наборов тестов, этот конкретный набор тестов может быть использован независимо или одновременно с другими наборами тестов. Если к одной то же веб-странице применяются несколько наборов тестов, то система может быть выполнена с возможностью определить, какие именно части кода на исходной веб-странице были протестированы. Это может быть выражено с помощью, например, цветовой последовательности, при этом те части, который были по меньшей мере в одном тесте захвачены полностью, могут быть отмечены в первом цвете, частично -во втором цвете, вообще не были захвачены - в третьем цвете. Путем цветового кодирования с использованием последовательности типа "светофор" (красный, оранжевый, зеленый) может быть создана достаточно наглядная картина.
Следует отметить, что был описан только примерный вариант осуществления системы и способа упрощения регрессионного тестирования веб-сайта. Подобные система и способ обладают множеством преимуществ, такими как:
- Совместимость с различными браузерами;
- Возможность отдельного тестирования частей веб-страницы;
- Позиция и размер захваченного элемента могут быть определены независимо от части их базового кода и могут быть вычислены огромным количеством разных способов, включая, например, тени от окна и свойства контура;
- Путем анализа на основе изображения возможно обеспечить выборочное тестирование таким образом, чтобы некоторые конкретные отличия между изображениями (помехи при обработке, вставленный текст и так далее) игнорировались;
- Создание отчета о тестировании веб-страницы в целом и, соответственно, области этого тестирования.
В контексте настоящего описания, если конкретно не указано иное, термин «используемый компьютером носитель компьютерной информации» подразумевает под собой носитель абсолютно любого типа и характера, включая ОЗУ, ПЗУ, диски (компакт диски, DVD-диски, дискеты, жесткие диски и т.д.), USB флеш-накопители, твердотельные накопители, накопители на магнитной ленте и т.д.
В контексте настоящего описания, если конкретно не указано иное, слова «первый», «второй», «третий» и и т.д. используются в виде прилагательных исключительно для того, чтобы отличать существительные, к которым они относятся, друг от друга, а не для целей описания какой-либо конкретной связи между этими существительными. Так, например, следует иметь в виду, что использование терминов "первый сервер" и "третий сервер " не подразумевает какого-либо порядка, отнесения к определенному типу, хронологии, иерархии или ранжирования (например) серверов/между серверами, равно как и их использование (само по себе) не предполагает, что некий "второй сервер" обязательно должен существовать в той или иной ситуации. В дальнейшем, как указано здесь в других контекстах, упоминание "первого" элемента и "второго" элемента не исключает возможности того, что это один и тот же фактический реальный элемент. Так, например, в некоторых случаях, "первый" сервер и "второй" сервер могут являться одним и тем же программным и/или аппаратным обеспечением, а в других случаях они могут являться разным программным и/или аппаратным обеспечением.
Каждый вариант осуществления включает по меньшей мере одну из вышеупомянутых целей и/или объектов. Дополнительные и/или альтернативные характеристики, аспекты и преимущества вариантов осуществления очевидны из описания, прилагаемых чертежей и прилагаемой формулы технологии.
Специалисты в данной области техники поймут, что в настоящем описании выражение "получение данных" от пользователя подразумевает получение электронным устройством данных от пользователя в виде электронного (или другого) сигнала. Кроме того, специалисты в данной области техники поймут, что отображение данных пользователю через графический интерфейс пользователя (например, экран электронного устройства и тому подобное) может включать в себя передачу сигнала графическому интерфейсу пользователя, этот сигнал содержит данные, которые могут быть обработаны, и по меньшей мере часть этих данных может отображаться пользователю через графический интерфейс пользователя.
Некоторые из этих этапов, а также передача-получение сигнала хорошо известны в данной области техники и поэтому для упрощения были опущены в конкретных частях описания. Сигналы могут быть переданы-получены с помощью оптических средств (например, оптического соединения), электронных средств (например, проводного или беспроводного соединения) и механических средств (например, на основе давления, температуры или другого подходящего параметра).
Модификации и улучшения вышеописанных вариантов осуществления будут ясны специалистам в данной области техники. Предшествующее описание представлено только в качестве примера и не несет никаких ограничений. Таким образом, объем правовой защиты ограничен только объемом прилагаемой формулы изобретения.