[go: up one dir, main page]

RU2611961C2 - Method and system of regression testing of web page functionality, machine-readable data storage media - Google Patents

Method and system of regression testing of web page functionality, machine-readable data storage media Download PDF

Info

Publication number
RU2611961C2
RU2611961C2 RU2014145739A RU2014145739A RU2611961C2 RU 2611961 C2 RU2611961 C2 RU 2611961C2 RU 2014145739 A RU2014145739 A RU 2014145739A RU 2014145739 A RU2014145739 A RU 2014145739A RU 2611961 C2 RU2611961 C2 RU 2611961C2
Authority
RU
Russia
Prior art keywords
data array
functional
images
test
web page
Prior art date
Application number
RU2014145739A
Other languages
Russian (ru)
Other versions
RU2014145739A (en
Inventor
Сергей Игоревич БЕЛОВ
Сергей Владимирович ТАТАРИНЦЕВ
Владимир Викторович АЛАЕВ
Original Assignee
Общество С Ограниченной Ответственностью "Яндекс"
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Общество С Ограниченной Ответственностью "Яндекс" filed Critical Общество С Ограниченной Ответственностью "Яндекс"
Priority to RU2014145739A priority Critical patent/RU2611961C2/en
Priority to PCT/IB2015/052432 priority patent/WO2016075552A1/en
Publication of RU2014145739A publication Critical patent/RU2014145739A/en
Application granted granted Critical
Publication of RU2611961C2 publication Critical patent/RU2611961C2/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Prevention of errors by analysis, debugging or testing of software
    • G06F11/3668Testing of software
    • G06F11/3672Test management
    • G06F11/3688Test management for test execution, e.g. scheduling of test suites
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/26Functional testing
    • G06F11/261Functional testing by simulating additional hardware, e.g. fault simulation
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Prevention of errors by analysis, debugging or testing of software
    • G06F11/3668Testing of software
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/11File system administration, e.g. details of archiving or snapshots
    • G06F16/116Details of conversion of file system types or formats
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/174Redundancy elimination performed by the file system
    • G06F16/1748De-duplication implemented within the file system, e.g. based on file segments
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/40Information retrieval; Database structures therefor; File system structures therefor of multimedia data, e.g. slideshows comprising image and additional audio data
    • G06F16/43Querying
    • G06F16/432Query formulation
    • G06F16/434Query formulation using image data, e.g. images, photos, pictures taken by a user
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/40Information retrieval; Database structures therefor; File system structures therefor of multimedia data, e.g. slideshows comprising image and additional audio data
    • G06F16/44Browsing; Visualisation therefor
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Quality & Reliability (AREA)
  • Multimedia (AREA)
  • Debugging And Monitoring (AREA)
  • Mathematical Physics (AREA)

Abstract

FIELD: information technology.
SUBSTANCE: present invention relates to processing web pages and, in particular, to processing web pages to simplify testing of web page functionality. Technical result is achieved by emulating the code execution of a functional unit at the first point of time, capturing formed images for each of the first and second operating conditions, establishing connection between the captured formed images of the functional unit, preserving the captured images in the initial data array, emulating the code execution of a functional unit at the second point of time and capturing the formed images for each of the first and second functional conditions for testing to create test data array.
EFFECT: technical result: testing fragments of a specific test page in several browsers or multiple versions of one page in one browser.
16 cl, 6 dwg

Description

Область техники, к которой относится изобретениеFIELD OF THE INVENTION

Настоящее решение предлагает способ обработки веб-страницы и, в частности - способ обработки веб-страниц для упрощения тестирования функциональности веб-страниц.The present solution provides a method for processing web pages and, in particular, a method for processing web pages to simplify testing the functionality of web pages.

Уровень техникиState of the art

Тестирование веб-страниц хорошо известно в данной области техники по ряду причин. Например, известна процедура проверки совместимости конкретной веб-страницы с различными браузерами. Также известна процедура тестирования эффекта от обновления базового кода, который используется для отрисовки созданной веб-страницы при просмотре ее в браузере. Примеры тестирования включают в себя регрессионное тестирование, которое является известной формой тестирования программного обеспечения. Тестирование программного обеспечения используется для поиска багов (ошибок) или других программных недостатков, которые могут спровоцировать остановку функционирования определенных характеристик после внесения изменений в базовое программное обеспечение или в результате использования другого типа браузера для отрисовки графического интерфейса браузера (GUI) для этого конкретного программного кода.Web page testing is well known in the art for a number of reasons. For example, there is a known procedure for checking the compatibility of a particular web page with various browsers. There is also a known procedure for testing the effect of updating the base code, which is used to render the created web page when viewing it in a browser. Testing examples include regression testing, which is a well-known form of software testing. Software testing is used to find bugs (errors) or other software shortcomings that can cause certain characteristics to stop functioning after making changes to the underlying software or as a result of using a different type of browser to render the graphical browser interface (GUI) for this specific program code.

В патенте US 6898764 В2 определено, что существенной частью цикла разработки любого программного обеспечения является цикл тестирования. Тестирование является обязательной процедурой для проверки того, что программа работает правильно. Для многих программ часть цикл тестирования включает в себя тестирование графического интерфейса пользователя (GUI) объекта, и в настоящем патенте описано, что тестирование GUI объекта обычно выполняется с помощью инструментов тестирования, таких как инструменты захвата и воспроизведения GUI. Для упрощения автоматизации тестов GUI инструменты тестирования обычно создают различные виды файлов отображения GUI, которые используются для описания содержимого GUI программы на объектом уровне. В общем случае, файл отображения GUI включает себя строку текста для каждого объекта GUI, и каждая строка описывает конкретный объект GUI.In US patent 6898764 B2 it is determined that the testing cycle is an essential part of the development cycle of any software. Testing is a mandatory procedure to verify that the program is working correctly. For many programs, part of the testing cycle includes testing a graphical user interface (GUI) of an object, and the present patent describes that testing a GUI of an object is usually performed using testing tools such as GUI capture and playback tools. To simplify the automation of GUI tests, testing tools typically create various kinds of GUI mapping files that are used to describe the contents of a GUI program at an object level. In general, a GUI mapping file includes a line of text for each GUI object, and each line describes a specific GUI object.

В заявке US 2008/0310736 А1 представлено визуальное сравнение системы, в которой два изображения могут сравниваться аналитическим путем. Два изображения могут представлять собой снимки экрана пользовательского интерфейса или любую другую пару изображений, которые необходимо сравнить. Как описано, два изображения могут быть сравнены с помощью как графической, так и контрольной информации и метаданных. Контрольная информация может расширять известную информацию об изображении за пределы простой графической информации. Представленные на изображении элементы, такие как кнопки, списки, текстовые окна, списки, переключатели и тому подобное, могут быть скорее определены по их функциям, чем по внешнему виду. С помощью контрольных данных элементы могут быть сравнены на предмет различий, которые затем могут быть представлены тестировщику для простой идентификации и работы с ними.US 2008/0310736 A1 provides a visual comparison of a system in which two images can be compared analytically. The two images may be screen shots of the user interface or any other pair of images that need to be compared. As described, two images can be compared using both graphical and control information and metadata. The control information may extend known image information beyond simple graphical information. The elements presented in the image, such as buttons, lists, text boxes, lists, radio buttons and the like, can be more likely determined by their functions than by their appearance. Using the control data, the elements can be compared for differences, which can then be presented to the tester for easy identification and work with them.

Раскрытие изобретенияDisclosure of invention

Первым объектом настоящего решения является способ регрессионного тестирования внешнего вид веб-страницы или веб-страниц. Для этого представлен способ, позволяющий тестировать фрагменты конкретной тестовой страницы в нескольких браузерах или несколько версий одной страницы в одном браузере.The first object of this solution is a method of regression testing the appearance of a web page or web pages. To this end, a method is presented that allows testing fragments of a specific test page in several browsers or several versions of one page in one browser.

Представленный способ может быть использован для тестирования веб-страницы на совместимость с браузером или для внесения изменений в базовый код, который был использован для отрисовки одной веб-страницы в одном браузере.The presented method can be used to test a web page for compatibility with a browser or to make changes to the base code that was used to render one web page in one browser.

В соответствии с настоящим решением веб-страница или множество веб-страниц, которые образуют веб-сайт, разделены на несколько функциональных блоков. Каждый функциональный блок обладает по меньшей мере первым функциональным состоянием и вторым функциональным состоянием, каждое из которых связано с конкретным сформированным изображением, которые создано в результате выполнения кода, соответствующего функциональному блоку. При эмуляции, в первый момент времени выполнение кода, который был определен функциональным блоком, возможно захватить, для данной процедуры эмуляции, сформированное графическое изображение для каждого из первого функционального состояния и второго функционального состояния. Эти захваченные сформированные изображения далее могут быть связаны с функциональным блоком и сохранены как исходный массив данных. Во второй момент времени возможно выполнить процедуру эмуляции функционального блока и захвата для данной процедуры эмуляции, тестируемых сформированных графических изображений для каждого из первого и второго функциональных состояний для создания тестового массива данных. Сравнение пиксельных значений изображений из исходного массива данных и тестового массива данных позволяет идентифицировать изменения между ними. Эти изменения могут быть использованы для получения доступа к результату изменений на веб-странице или к совместимости веб-страницы с конкретными браузерами.In accordance with the present decision, a web page or a plurality of web pages that form a website are divided into several functional blocks. Each functional block has at least a first functional state and a second functional state, each of which is associated with a specific generated image, which are created as a result of the execution of the code corresponding to the functional block. When emulating, at the first moment of time, the execution of the code that was determined by the function block can capture, for this emulation procedure, a generated graphic image for each of the first functional state and the second functional state. These captured generated images can then be associated with the function block and stored as the original data array. At the second point in time, it is possible to perform the function block emulation and capture procedure for the given emulation, test generated graphic images for each of the first and second functional states to create a test data array. A comparison of the pixel values of the images from the original data array and the test data array allows you to identify changes between them. These changes can be used to gain access to the result of the changes on the web page or to the compatibility of the web page with specific browsers.

Сформированное графическое изображение, которое было создано на этапе выполнения этого кода, захватывается одним или несколькими снимками экрана. Эти снимки экрана ссылаются или иным образом связываются с исходным кодом. При помощи изоляции индивидуальных части функционального кода и связи их с индивидуальными снимками экрана, становится возможным увидеть эту часть кода на куда большем уровне детализации, чем достигается, например, за счет выпадающих меню. При выполнении анализа на этом уровне детализации также можно увидеть, как именно конкретная часть кода будет влиять на внешний вид веб-страницы в целом. В соответствии с настоящим решением, можно проверить визуальные эффекты, которые вызваны тестовой частью кода, по отношению к соседним сформированным частям веб-страницы, которые относятся к не измененным частям кода. Также возможно последовательное определение того, какие части исходного кода были фактически тестированы в отличие от всей остальной страницы.The generated graphic image that was created during the execution of this code is captured by one or more screenshots. These screenshots are referenced or otherwise linked to the source code. By isolating the individual parts of the functional code and linking them to individual screenshots, it becomes possible to see this part of the code at a much higher level of detail than is achieved, for example, through drop-down menus. When performing analysis at this level of detail, you can also see how exactly a particular piece of code will affect the appearance of the web page as a whole. In accordance with this decision, you can check the visual effects that are caused by the test part of the code, in relation to the adjacent formed parts of the web page, which relate to unchanged parts of the code. It is also possible to sequentially determine which parts of the source code were actually tested, unlike the rest of the page.

Подобный способ обладает некоторыми преимуществами в отношении тестирования конкретных блоков веб-страницы и связи этих блоков кода с соответствующими снимками экрана, которые затем могут быть использованы в качестве эталонных.This method has some advantages in terms of testing specific blocks of a web page and linking these blocks of code with the corresponding screenshots, which can then be used as reference.

Настоящая технология предлагает способ, который упрощает создание библиотеки групп эталонных изображений для конкретных блоков кода. Эта библиотека эталонных снимков экрана может быть использована позднее для проверки дальнейших итераций на этой веб-странице или на той же версии веб-страницы в условиях другого браузера для другого сформированного изображения. В соответствии с одним вариантом файл данных создается в результате процесса тестирования, который определяет эталонное изображение, текущее изображение и различия между ними. Все это может быть осуществлено для каждого состояния в каждом браузере в рамках конкретной тестируемой веб-страницы. В другом варианте файл данных был создан в результате процесса тестирования, который определяет эталонное изображение, конкретное изображение и различия между ними для каждого неограниченного промежутка времени в рамках конкретной веб-страницы, которая тестируется в одном и том же браузере.The present technology offers a method that simplifies the creation of a library of reference image groups for specific blocks of code. This library of reference screenshots can be used later to check further iterations on this web page or on the same version of the web page in a different browser for another generated image. In accordance with one embodiment, a data file is created as a result of a testing process that determines the reference image, the current image, and the differences between them. All of this can be done for each state in each browser within a particular webpage being tested. In another embodiment, a data file was created as a result of a testing process that defines a reference image, a specific image and the differences between them for each unlimited period of time within a specific web page that is being tested in the same browser.

Для определения отличий в тестовом и эталонном изображениях, согласно одному из вариантов, сравнение основано на цветах пикселей в каждом изображении. При сравнении фактических цветов пикселей в отличие от машинного кода каждого из цветов решение обладает преимуществом, компенсируя различные оттенки цветов, которые могут отображаться в процессе отрисовки веб-страницы.To determine the differences in the test and reference images, according to one of the options, the comparison is based on the colors of the pixels in each image. When comparing the actual colors of the pixels, in contrast to the machine code of each of the colors, the solution has the advantage of compensating for the different shades of colors that can be displayed during the rendering of the web page.

В другом варианте осуществления цвет каждого пикселя обрабатывается как упрощенный, аналогично тому, как обрабатывает цвет человеческий глаз. При подобном обращении с цветом эталонного изображения и тестируемого изображения становится возможным уменьшить возможность ложных совпадений, т.е. неправильного определения различий между двумя изображениями.In another embodiment, the color of each pixel is treated as simplified, in the same way that the human eye processes color. With such handling of the color of the reference image and the test image, it becomes possible to reduce the possibility of false matches, i.e. incorrectly distinguishing between two images.

Другим объектом решения является разбор индивидуальной веб-страницы на индивидуальные функциональные блоки или элементы. При тестировании индивидуальных элементов можно обеспечить еще больший уровень детализации при использовании активных элементов, которые могут быть статичными или активными.Another object of the solution is to parse an individual web page into individual functional blocks or elements. When testing individual elements, an even greater level of detail can be achieved by using active elements that can be static or active.

Еще одним объектом настоящего решения является система для регрессионного тестирования функциональности веб-страницы, система включает в себя первое хранилище данных, в котором содержится исходный массив данных, включающий в себя сформированные графические изображения по меньшей мере части веб-страницы в первом функциональном состоянии, причем сформированные графические изображения связаны с кодом из функционального блока, который при эмуляции влияет на отрисовку сформированных графических изображений. Система дополнительно включает в себя процессор, выполненный с возможностью влиять на эмуляцию функционального блока для создания тестового массива данных, который включает в себя захваченные сформированные изображения по меньшей мере части веб-страницы в первом функциональном состоянии и втором функциональном состоянии во второй момент времени. При сравнении пиксельных значений изображений в каждом из исходного массива данных и тестового массива данных можно определить изменения в сформированном графическом изображении между исходным и тестовым массивами данных.Another object of the present solution is a system for regression testing the functionality of a web page, the system includes a first data store containing an initial data array including generated graphic images of at least part of the web page in the first functional state, the generated graphic images are associated with code from a function block, which when emulated affects the rendering of generated graphic images. The system further includes a processor configured to influence the emulation of the function block to create a test data array that includes captured generated images of at least a portion of the web page in a first functional state and a second functional state at a second point in time. When comparing the pixel values of the images in each of the original data array and the test data array, it is possible to determine the changes in the generated graphic image between the original and test data arrays.

Еще одним объектом является машиночитаемый носитель информации, включающий в себя выполняемые инструкции (машиночитаемые коды), которые хранятся на машиночитаемом носителе, и при выполнении которых электронное устройство настраивается для выполнения вышеуказанного способа.Another object is a computer-readable storage medium including executable instructions (computer-readable codes) that are stored on a computer-readable medium, and upon which the electronic device is configured to perform the above method.

Краткое описание чертежейBrief Description of the Drawings

Далее будут описаны различные примерные варианты осуществления со ссылками на соответствующие чертежи, где:Various exemplary embodiments will now be described with reference to the respective drawings, wherein:

На Фиг. 1 схематически представлена система, соответствующая решению;In FIG. 1 schematically shows a system corresponding to a solution;

На Фиг. 2 представлена блок-схема способа, который может быть реализован;In FIG. 2 is a flowchart of a method that can be implemented;

На Фиг. 3 представлена блок-схема способа, который может быть реализован в соответствии с настоящим решением;In FIG. 3 is a flowchart of a method that can be implemented in accordance with this decision;

На Фиг. 4 представлен образец фрагмента веб-страницы, который может быть протестирован в соответствии с настоящим решением;In FIG. 4 shows a sample fragment of a web page that can be tested in accordance with this decision;

На Фиг. 5 представлен образец снимка экрана сформированной веб-страницы в первом функциональном состоянии;In FIG. 5 is a sample screenshot of a generated web page in a first functional state;

На Фиг. 6 представлен снимок экрана сформированной веб-страницы во втором функциональном состоянии.In FIG. 6 is a screen shot of a generated web page in a second functional state.

Осуществление изобретенияThe implementation of the invention

На Фиг. 1 представлена система 100, включающая в себя сервер 110, который используется для тестирования веб-страниц, и конкретный эффект от основного кода, который используется для отрисовки веб-страницы, отображаемой с помощью браузера на дисплее одного или нескольких устройств 120. Одно из одного или нескольких устройств 120 может быть использовано системным оператором для получения доступа к функциональности системы 100. Важно иметь в виду, что система 100 является только одним из вариантов осуществления. Таким образом, все последующее описание представлено только как описание иллюстративного примера. Это описание не предназначено для определения объема или установления границ настоящей технологии. Некоторые полезные примеры модификаций системы также могут быть охвачены нижеследующим описанием. Стоит отметить, что целью этого является также исключительно помощь в понимании, а не определение объема и границ настоящей технологии. Эти модификации не представляют собой исчерпывающий список, и специалистам в данной области техники будет понятно, что возможны и другие модификации. Кроме того, это не должно интерпретироваться так, что там, где это еще не было сделано, т.е. там, где не были изложены примеры модификаций, никакие модификации невозможны, и/или что то, что описано, является единственным вариантом осуществления этого элемента. Как будет понятно специалисту в данной области техники, это скорее всего не так. Кроме того, следует иметь в виду, что система представляет собой в некоторых конкретных проявлениях достаточно простой вариант осуществления, и в подобном случае представлен здесь с целью облегчения понимания. Как это понятно специалисту в данной области техники, многие варианты осуществления будут обладать гораздо большей сложностью.In FIG. 1 shows a system 100 including a server 110, which is used to test web pages, and a specific effect from the main code, which is used to render a web page displayed using a browser on the display of one or more devices 120. One of one or multiple devices 120 may be used by a system operator to gain access to the functionality of system 100. It is important to keep in mind that system 100 is only one embodiment. Thus, the entire following description is presented only as a description of an illustrative example. This description is not intended to determine the scope or scope of this technology. Some useful examples of system modifications may also be covered by the following description. It is worth noting that the purpose of this is also exclusively to help in understanding, and not to determine the scope and boundaries of this technology. These modifications are not an exhaustive list, and it will be understood by those skilled in the art that other modifications are possible. In addition, this should not be interpreted so that where it has not yet been done, i.e. where examples of modifications have not been set forth, no modifications are possible, and / or that which is described is the only embodiment of this element. As will be clear to a person skilled in the art, this is most likely not the case. In addition, it should be borne in mind that the system is, in some specific manifestations, a fairly simple embodiment, and in such a case is presented here in order to facilitate understanding. As is clear to a person skilled in the art, many embodiments will have much greater complexity.

В контексте настоящего описания, если конкретно не указано иное, «электронное устройство» подразумевает под собой аппаратное устройство, способное работать с программным обеспечением, подходящим к решению соответствующей задачи. Примерами электронных устройств, среди прочего, являются персональные компьютеры (настольные компьютеры, ноутбуки и т.д.), смартфоны и планшеты и устройства спутниковой навигации. Следует иметь в виду, что устройство, ведущее себя как электронное устройство в настоящем контексте, может вести себя как сервер по отношению к другим электронным устройствам. Использование выражения «электронное устройство» не исключает возможности использования множества электронных устройств для получения/отправки, выполнения или инициирования выполнения любой задачи или запроса, или же последствий любой задачи или запроса, или же этапов любого вышеописанного метода.In the context of the present description, unless specifically indicated otherwise, "electronic device" means a hardware device capable of working with software suitable for solving the corresponding problem. Examples of electronic devices, among others, are personal computers (desktop computers, laptops, etc.), smartphones and tablets, and satellite navigation devices. It should be borne in mind that a device behaving like an electronic device in the present context can behave like a server with respect to other electronic devices. The use of the expression “electronic device” does not exclude the possibility of using multiple electronic devices to receive / send, execute or initiate the execution of any task or request, or the consequences of any task or request, or the steps of any method described above.

Общий вариант осуществления электронного устройства 120 известен в области техники, и поэтому не будет здесь подробно описан. Достаточно сказать, что электронное устройство 120 содержит пользовательский интерфейс ввода (например, клавиатуру, мышь, сенсорную панель, сенсорный экран и т.п.) для получения пользовательского ввода; вышеупомянутый экран (например, экран, сенсорный экран, принтер и т.п.) для предоставления визуального или звукового вывода пользователю; интерфейс сетевой связи (например, модем, сетевую карту и т.п.) для двусторонней связи по сети передачи данных; и процессор, соединенный с пользовательским интерфейсом ввода, пользовательским интерфейсом вывода и интерфейсом сетевой связи, который выполнен с возможностью выполнять различные процедуры, включая те, что описаны ниже. С этой целью процессор может сохранять или иметь доступ к машиночитаемым командам (машиночитаемым кодам), выполнение которых инициирует процессор выполнять различные описанные здесь процедуры.A general embodiment of an electronic device 120 is known in the art, and therefore will not be described in detail here. Suffice it to say that the electronic device 120 comprises a user input interface (e.g., a keyboard, mouse, touch pad, touch screen, etc.) for receiving user input; the aforementioned screen (e.g., screen, touch screen, printer, etc.) for providing visual or audio output to the user; a network communication interface (for example, a modem, network card, etc.) for two-way communication over a data network; and a processor connected to an input user interface, an output user interface, and a network communication interface, which is configured to perform various procedures, including those described below. To this end, the processor may store or have access to machine-readable instructions (machine-readable codes), the execution of which initiates the processor to perform the various procedures described herein.

В контексте настоящего описания, если конкретно не указано иное, «сервер» подразумевает под собой компьютерную программу, работающую на соответствующем оборудовании, которая способна получать запросы (например, от электронных устройств 120) по сети 130 и выполнять эти запросы или инициировать выполнение этих запросов. Оборудование может представлять собой один физический компьютер или одну физическую компьютерную систему, но ни то, ни другое не является обязательным. В контексте настоящей технологии использование выражения «сервер» не означает, что каждая задача (например, полученные инструкции или запросы) или какая-либо конкретная задача будет получена, выполнена или инициирована к выполнению одним и тем же сервером (то есть одним и тем же программным обеспечением и/или аппаратным обеспечением); это означает, что любое количество элементов программного обеспечения или аппаратных устройств может быть вовлечено в прием/передачу, выполнение или инициирование выполнения любого запроса или последствия любого запроса, связанного с клиентским устройством, и все это программное и аппаратное обеспечение может являться одним сервером или несколькими серверами, оба варианта включены в выражение «по меньшей мере один сервер».In the context of the present description, unless specifically indicated otherwise, “server” means a computer program running on appropriate equipment that is able to receive requests (for example, from electronic devices 120) over the network 130 and to fulfill these requests or initiate the execution of these requests. The equipment may be a single physical computer or a single physical computer system, but neither is required. In the context of this technology, the use of the expression “server” does not mean that each task (for example, received instructions or requests) or any specific task will be received, completed or initiated to be executed by the same server (that is, by the same software software and / or hardware); this means that any number of software elements or hardware devices can be involved in the reception / transmission, execution or initiation of any request or the consequences of any request associated with the client device, and all this software and hardware can be one server or several servers , both options are included in the expression “at least one server”.

В контексте настоящего описания, если конкретно не указано иное, термин «база данных» подразумевает под собой любой структурированный набор данных, не зависящий от конкретной структуры, программного обеспечения по управлению базой данных, аппаратного обеспечения компьютера, на котором данные хранятся, используются или иным образом оказываются доступны для использования. База данных может находиться на том же оборудовании, которое выполняет процесс, который сохраняет или использует информацию, хранящуюся в базе данных, или же она может находиться на отдельном оборудовании, например, выделенном сервере или множестве серверов.In the context of the present description, unless specifically indicated otherwise, the term "database" means any structured data set that is independent of the specific structure, database management software, hardware of the computer on which data is stored, used, or otherwise are available for use. The database may reside on the same hardware that runs the process that stores or uses the information stored in the database, or it may reside on separate hardware, such as a dedicated server or multiple servers.

В контексте настоящего описания, если конкретно не указано иное, термин «компонент» подразумевает под собой программное обеспечение (соответствующее конкретному аппаратному контексту), которое является необходимым и достаточным для выполнения конкретной(ых) указанной(ых) функции(й).In the context of the present description, unless specifically indicated otherwise, the term “component” means software (corresponding to a particular hardware context) that is necessary and sufficient to perform the specific specified (s) function (s).

Система 100, реализованная в соответствии с Фиг. 1, выполнена с возможностью выполнять способ регрессионного тестирования внешнего вида веб-страницы или страниц, и со ссылкой на Фиг. 2 описан пример того, как именно эта система может быть использована. Для этого в решении представлен способ, позволяющий тестировать фрагменты конкретной тестовой страницы в нескольких браузерах или нескольких версий одной страницы в одном браузере. Для обеспечения тестирования веб-страница или множество веб-страниц, вместе образующих веб-сайт, были распределены на множество функциональных блоков, которые были сохранены в базе 140 данных тестовой среды в рамках системы (этап 200).The system 100 implemented in accordance with FIG. 1 is configured to perform a regression testing method for the appearance of a web page or pages, and with reference to FIG. 2 describes an example of how exactly this system can be used. For this, the solution presents a method that allows you to test fragments of a specific test page in several browsers or several versions of one page in one browser. In order to provide testing, a web page or a plurality of web pages together forming a web site were distributed into a plurality of function blocks that were stored in the test environment database 140 within the system (step 200).

Частью функции тестирования этих индивидуальных блоков является модуль 150 создания тестирования, который обеспечивает определение одного или нескольких наборов тестов для каждого функционального блока (этап 210). Определенные наборы тестов могут быть выполнены с возможностью упростить тестирование каждого из этих функциональных блоков в рамках одного или нескольких из их функциональных состояний. Например, следует отметить, что поисковый блок может обладать двумя состояниями, первое из которых отображает визуальное представление страницы после того, как поисковый блок был изначально загружен и до выполнения поиска, а во втором состоянии данные возвращаются и отображаются в поисковом блоке. Другие примеры функциональных состояний представлены в выпадающих меню, показаны на Фиг. 5 и 6. На Фиг. 5 представлен образец отображаемой веб-страницы 500, на которой видны три выпадающих меню 510, 520 и 530. Каждое из этих меню, показанных с Фиг. 5, находятся в первом функциональном состоянии, которое в данном случае не активировано. На Фиг. 6 показана та же веб-страница 600 с теми же выпадающими меню 510, 520 и 530, но первое выпадающее меню 510 находится во втором функциональном состоянии, в котором видно меню 610. На этом примере видно, что визуальное представление, сформированное при отрисовке кода на экране для восприятия пользователя, будет зависеть от того, какое из двух состояний реализовано.Part of the testing function of these individual blocks is the test creation module 150, which provides the definition of one or more test suites for each function block (step 210). Certain test suites can be performed with the ability to simplify testing of each of these function blocks within one or more of their functional states. For example, it should be noted that the search block may have two states, the first of which displays a visual representation of the page after the search block was initially loaded and before the search was performed, and in the second state, the data is returned and displayed in the search block. Other examples of functional states are presented in the drop-down menus shown in FIG. 5 and 6. In FIG. 5 is an example of a displayed web page 500, on which three drop-down menus 510, 520 and 530 are visible. Each of these menus shown in FIG. 5 are in a first functional state, which in this case is not activated. In FIG. 6 shows the same web page 600 with the same drop-down menus 510, 520 and 530, but the first drop-down menu 510 is in a second functional state, in which menu 610 is visible. In this example, it is seen that the visual representation formed when rendering the code on screen for user perception will depend on which of the two states is implemented.

Создание конкретного набора тестов использует заранее созданные процедуры тестирования или сценарии (оба варианта включены в понятие "тестовые процедуры"), которые хранятся в базе 160 данных библиотеки тестов. Эти заранее созданные тестовые процедуры или действия могут быть связаны друг с другом и использованы для программирования серии этапов, которые будут выполнены по отношению к конкретному функциональному блоку. Серии этапов выполнены с возможностью имитировать взаимодействие пользователя с веб-страницей и автоматически приводить функциональный блок в желаемое состояние. Для каждого блока веб-сайта, который будет протестирован, есть набор тестов, созданных модулем 150 создания тестов. Каждый набор тестов обеспечивает тестирование одного или нескольких состояний функциональных блоков и подтверждает правильность их выполнения. Для тестирования каждого состояния необходимо создать функционирующий рабочий процесс или последовательность действий, которая, при выполнении ее по отношению к функциональному блоку, влияет на блок таким образом, что приводит его к (или проводит через) этим состояниям. Действия могут быть привязаны друг к другу и, желательно, выполнены с возможностью выполняться последовательно таким образом, что первое действие в наборе тестов выполняется и завершается до инициирования второго действия. Примерами действия могут быть:Creating a specific set of tests uses pre-created test procedures or scripts (both options are included in the concept of "test procedures"), which are stored in the database 160 of the test library. These pre-created test procedures or actions can be related to each other and used to program a series of steps that will be performed in relation to a specific function block. A series of steps are made with the ability to simulate user interaction with a web page and automatically bring the functional block to the desired state. For each block of the website to be tested, there is a set of tests created by the module 150 create tests. Each set of tests provides testing of one or several states of functional blocks and confirms the correctness of their execution. To test each state, it is necessary to create a functioning workflow or sequence of actions that, when executed in relation to a functional block, affects the block in such a way that it leads to (or leads through) these states. Actions can be tied to each other and, preferably, performed with the ability to be performed sequentially so that the first action in the test suite is performed and completed before the second action is initiated. Examples of actions may include:

- click (element) - щелчок мыши по центру элемента.- click (element) - click on the center of the element.

- doubleClick (element) - двойной щелчок мыши по центру элемента.- doubleClick (element) - double click on the center of the element.

- mouseDown (element, [button]) - нажатие кнопки мыши в центре элемента. Возможными значениями кнопки могут быть: 0 - левая, 1 - средняя, 2 - правая. По умолчанию, используется левая кнопка мыши.- mouseDown (element, [button]) - click the mouse button in the center of the element. Possible button values are: 0 - left, 1 - middle, 2 - right. By default, the left mouse button is used.

- mouseUp (element) - отпущена ранее нажатая кнопка мыши.- mouseUp (element) - the previously pressed mouse button is released.

- mouseMove (element, [offset]) - перемещение мыши на данный элемент. Смещение конкретизировано для левого верхнего угла элемента. Если оно не указано, мышь будет перемещена в центр элемента.- mouseMove (element, [offset]) - move the mouse to this element. The offset is specified for the upper left corner of the element. If not specified, the mouse will be moved to the center of the element.

- dragAndDrop (element, dragTo) - перетащить элемент на другой элемент dragTo.- dragAndDrop (element, dragTo) - drag an element onto another dragTo element.

- executeJS (function (window)) - запустить конкретную функцию в браузере. Аргументом функции является объект окна браузера.- executeJS (function (window)) - run a specific function in the browser. The argument to the function is the browser window object.

Любой созданный набор тестов также будет включать в себя область захвата экрана, которая будет влиять на захват и хранение конкретной части выполняемой веб-страницы. Функция захвата экрана также может быть выполнена с возможностью захватить массив различных областей веб-страницы и эта функция может быть привязана таким образом, что позволяет осуществлять несколько захватов в пределах одной процедуры набора тестов: примеры обычных частей кода, которые могут храниться в базе 160 данных библиотеки тестов, и которые могут быть использованы в создании набора тестов для последующего хранения их в библиотеке 150 наборов тестов, включают в себя:Any test suite created will also include a screen capture area, which will affect the capture and storage of a particular part of the webpage being executed. The screen capture function can also be performed with the ability to capture an array of different areas of a web page and this function can be linked in such a way that allows several captures within the same test suite procedure: examples of ordinary parts of the code that can be stored in the library database 160 tests, and which can be used to create a test suite for later storage in a library of 150 test suites, include:

setUrl (url) - указывает адрес веб-страницы, с которой будут создаваться снимки экрана. URL относится к полю настройки rootUrl.setUrl (url) - indicates the address of the web page from which screenshots will be taken. The URL refers to the rootUrl configuration field.

setCaptureElements ('selector1', 'selector2', …}) - указывает CSS-селекторы для элементов, которые будут использованы для определения области захвата веб-страницы.setCaptureElements ('selector1', 'selector2', ...}) - indicates CSS selectors for the elements that will be used to determine the capture area of the web page.

Следует отметить, что для подтверждения правильности захвата (формирования, получения) сформированной веб-страницы необходимо, чтобы область захвата была определена минимумом ограничивающей зоны для всех элементов, включая тени от окон, если это возможно. При выполнении процедуры захвата, которая будет исполняться автоматически как часть любого набора тестов, конкретные сформированные изображения, созданные в результате выполнения кода, который был определен тестируемым функциональным блоком, будут захвачены с помощью одного или нескольких снимков экрана. Эти снимки экрана ссылаются или иным образом связываются с исходным кодом. При помощи изоляции индивидуальных частей функционального кода и связи их с индивидуальными снимками экрана, эту часть кода становится возможным увидеть на куда большем уровне детализации, чем достигается, например, за счет выпадающих меню и тому подобного.It should be noted that in order to confirm the correct capture (formation, retrieval) of the generated web page, it is necessary that the capture area be defined by the minimum bounding area for all elements, including window shadows, if possible. During the capture procedure, which will be executed automatically as part of any set of tests, specific generated images created as a result of the execution of the code that was determined by the tested function block will be captured using one or more screenshots. These screenshots are referenced or otherwise linked to the source code. By isolating the individual parts of the functional code and associating them with individual screenshots, it becomes possible to see this part of the code at a much greater level of detail than is achieved, for example, through drop-down menus and the like.

После создания набора тестов для конкретного функционального блока кода в рамках тестового режима необходимо выполнить набор тестов по отношению к конкретному коду, чтобы определить свойства набора данных для конкретной части функционального кода (этап 220). Как упоминалось ранее, каждый из индивидуальных наборов тестов хранится в конкретном месте в библиотеке 150 наборов тестов. Сервер 110 может быть выполнен с возможностью выполнять конкретный набор тестов или комбинацию наборов тестов с помощью команд, таких как команда слияния, которая будет инициировать выполнение одного или нескольких наборов тестов, находящихся в конкретном разделе библиотеки наборов тестов, как было определено в конкретном случае. Следует отметить, что, поскольку наборы тестов были индивидуально персонализированы или связаны с конкретными блоками функционального кода, которые были определены в пределах базы 160 данных блоков функционального кода, выполнение набора тестов инициирует автоматическую обработку кода в рамках определенного функционального блока, включая графическую отрисовку тестируемых действий на веб-странице. Результирующее визуальное отображение, являющееся результатом выполнения набора тестов, далее будет захвачено с учетом определенных в наборе тестов параметров. В соответствии с настоящей технологией после захвата эталонный набор изображений далее сохраняется или каким-либо иным образом связывается с базой данных блока функционального кода (этап 230) для определения исходного массива данных. Исходный массив данных хранит данные, указывающие на поведение функционального блока в первый момент времени. Этот момент времени может указывать на то, как веб-страница, формируемая при обработке кода, который определяет функциональность веб-страницы, или же части веб-страницы, определенной тестируемыми функциональными блоками, выглядят в первом браузере, или же просто указывать на то, как будет отображаться и работать веб-сайт в конкретный день в конкретное время.After creating a test set for a specific functional block of code within the test mode, it is necessary to perform a set of tests with respect to a specific code in order to determine the properties of the data set for a specific part of the functional code (step 220). As mentioned earlier, each of the individual test suites is stored in a specific location in the library of 150 test suites. Server 110 may be configured to perform a specific test suite or a combination of test suites using commands, such as a merge command, that will initiate the execution of one or more test suites located in a particular section of the test suites library, as defined in a particular case. It should be noted that, since the test suites were individually personalized or associated with specific functional code blocks that were defined within the database of functional code blocks 160, the execution of the test suite initiates automatic code processing within a specific functional block, including graphical drawing of the actions being tested on web page. The resulting visual display resulting from the execution of the test suite will then be captured based on the parameters defined in the test suite. In accordance with the present technology, after capturing, the reference set of images is then stored or in some other way connected with the database of the functional code block (step 230) to determine the initial data array. The original data array stores data indicating the behavior of the function block at the first moment in time. This point in time may indicate how the web page generated by processing the code that determines the functionality of the web page, or the parts of the web page defined by the test function blocks, look in the first browser, or simply indicate how the website will be displayed and run on a specific day at a specific time.

Набор тестов может быть выполнен в фоновом режиме, но выполнение наборов тестов также может быть выполнено с возможностью обеспечить пользователю графический обзор исполняемого кода в процессе выполнения отдельных наборов тестов. Это может быть полезно по целому ряду причин, включая тот факт, что это в реальном времени обеспечивает демонстрацию того, что именно будет захвачено. Как будет подробнее объяснено ниже подобный графический обзор, который одновременно отображается во время выполнения отдельных наборов тестов, также может быть использован для демонстрации в реальном времени отличий между эталонным набором захваченных изображений и изображениями, захваченными во время последующего выполнения набора тестов по отношению к по сути тому же самому функциональному блоку.A set of tests can be performed in the background, but the execution of test sets can also be performed with the ability to provide the user with a graphical overview of the executable code during the execution of individual test sets. This can be useful for a number of reasons, including the fact that it provides a real-time demonstration of what will be captured. As will be explained in more detail below, a similar graphical overview, which is simultaneously displayed during the execution of individual test sets, can also be used to demonstrate in real time the differences between the reference set of captured images and images captured during the subsequent execution of the test set relative to the fact same functional block.

Следует отметить, что формирование базы 140 данных о среде тестирования и функционального кода, который был применен для отрисовки этих изображений, является только первым этапом в способе регрессионного тестирования. Вторым этапом является сравнение этих эталонных изображений, которые были определены в исходном массиве данных, со вторым набором захваченных изображений, тестовым массивом данных. На Фиг. 3 представлен обзор примерной схемы, которая может быть принята в качестве части этого способа сравнения.It should be noted that the formation of a database 140 of data about the testing environment and the functional code that was used to render these images is only the first step in the regression testing method. The second step is to compare these reference images, which were defined in the original data array, with the second set of captured images, the test data array. In FIG. 3 provides an overview of an exemplary scheme that can be adopted as part of this comparison method.

После применения набора (наборов) тестов к одному или нескольким функциональным блокам в рамках конкретной веб-страницы настоящая технология обеспечивает второе применение того же набора тестов к функциональному блоку, и предполагается, что по существу оно будет выполняться тем же образом, что и в случае уже протестированного эталонного функционального блока (этап 300). Примеры такого последовательного тестирования могут включать в себя тестирование одного и того же функционального блока в различных браузерных средах или тестирование измененной версии функционального блока в той же браузерной среде, которая была использована в случае эталона, или же комбинации этих двух случаев.After applying a set of tests (s) to one or more functional blocks within a particular web page, this technology provides a second application of the same set of tests to a functional block, and it is assumed that it will essentially be performed in the same way as in the case of a tested reference function block (step 300). Examples of such sequential testing may include testing the same function block in different browser environments, or testing a modified version of the function block in the same browser environment that was used in the reference case, or a combination of the two.

Аналогично тому, что описано со ссылкой на Фиг. 2, подобное применение набора тестов влияет на созданный набор захваченных изображений, которые связаны с функциональностью тестируемых функциональных блоков. Подобно хранению эталонных данных для любого функционального блока, эти захваченные изображения могут храниться в тестовой базе 170 данных (этап 310) и определять тестовый набор данных. Следует отметить, что захваченные изображения могут храниться не постоянно, достаточно того, что они будут кэшированы в памяти, и это позволит обрабатывать эти захваченные изображения по отношению к соответствующим эталонным изображениям (этап 320).Similar to that described with reference to FIG. 2, a similar application of the test suite affects the created set of captured images that are related to the functionality of the tested functional blocks. Like storing reference data for any function block, these captured images can be stored in a test database 170 (step 310) and define a test data set. It should be noted that the captured images may not be stored permanently, it is enough that they will be cached in memory, and this will allow to process these captured images in relation to the corresponding reference images (step 320).

Из всего вышесказанного будет понятно, что настоящая технология предлагает способ, который упрощает создание исходного массива данных, включающего в себя серию эталонных изображений для конкретных блоков кода. Эта библиотека эталонных снимков экрана может быть использована позднее для проверки дальнейших итераций на этой веб-странице или на той же версии веб-страницы в условиях другого браузера для другого сформированного изображения. В соответствии с одним вариантом файл данных создается в результате процесса тестирования, который определяет соответствующие изображения в каждом из исходного массива данных и тестируемого массива данных и сравнивает их друг с другом. Сравнение осуществляется с помощью пиксельных значений, таких как цвет пикселя и интенсивность пикселя, и способствует определению различий между изображениями в двух массивах данных. Файл данных может храниться в тестовой базе 170 данных (этап 330). Все это может быть осуществлено для каждого состояния в каждом браузере в рамках конкретной тестируемой веб-страницы. В другом варианте файл данных был создан в результате процесса тестирования, который определяет эталонное изображение в исходном массиве данных, конкретное изображение в тестовом массиве данных и отличия между ними для каждого неограниченного во времени в рамках конкретной веб-страницы, которая тестируется в одном и том же браузере.From the foregoing, it will be understood that the present technology offers a method that simplifies the creation of an initial data array including a series of reference images for specific blocks of code. This library of reference screenshots can be used later to check further iterations on this web page or on the same version of the web page in a different browser for another generated image. In accordance with one embodiment, a data file is created as a result of a testing process that determines the appropriate images in each of the original data array and the data array under test and compares them with each other. The comparison is carried out using pixel values, such as pixel color and pixel intensity, and helps to determine the differences between the images in the two data sets. The data file may be stored in the test database 170 (step 330). All of this can be done for each state in each browser within a particular webpage being tested. In another embodiment, the data file was created as a result of a testing process that determines the reference image in the original data array, the specific image in the test data array and the differences between them for each unlimited time within a specific web page that is being tested in the same browser

Путем проведения анализа на этом уровне детализации также можно увидеть то, как конкретная часть кода будет влиять на общий вид веб-страницы. Например, в соответствии с настоящим решением, можно проверить визуальные эффекты, которые вызваны тестовой частью кода, по отношению к соседним сформированным частям веб-страницы, которые относятся к не измененным частям кода. Также возможно последовательное определение того, какие части исходного кода были фактически тестированы в отличие от всей остальной страницы. Подобный способ обладает некоторыми преимуществами в отношении тестирования конкретных блоков веб-страницы и связи этих блоков кода с соответствующими снимками экрана, которые затем могут быть использованы в качестве эталонных.By conducting analysis at this level of detail, you can also see how a particular piece of code will affect the overall appearance of a web page. For example, in accordance with this decision, it is possible to check the visual effects that are caused by the test part of the code, in relation to the adjacent formed parts of the web page, which relate to unchanged parts of the code. It is also possible to sequentially determine which parts of the source code were actually tested, unlike the rest of the page. This method has some advantages in terms of testing specific blocks of a web page and linking these blocks of code with the corresponding screenshots, which can then be used as reference.

На части этапа 320 сравнения система и способ, соответствующие настоящей технологии, определяют отличия в изображениях, которые формируют тестовый массив данных и исходный массив данных. В некоторых вариантах осуществления настоящей технологии определение отличий может быть выполнено посредством попиксельного сравнения двух наборов изображений. В одном варианте это сравнение основано на цвете пикселей в каждом изображении. При сравнении фактических цветов пикселей в отличие от машинного кода каждого из цветов преимущественно компенсирует различные оттенки цветов, которые могут отображаться в процессе отрисовки веб-страницы. После проведения сравнение двух захваченных изображений становится возможно автоматически создать отчет в одном из различных форматов, включая HTML.In part of the comparison step 320, the system and method corresponding to the present technology determines the differences in the images that form the test data array and the original data array. In some embodiments of the present technology, the determination of differences can be made by pixel-by-pixel comparison of two sets of images. In one embodiment, this comparison is based on the color of the pixels in each image. When comparing the actual colors of the pixels, in contrast to the machine code of each of the colors, it mainly compensates for the different shades of colors that can be displayed during the rendering of the web page. After comparing the two captured images, it becomes possible to automatically create a report in one of various formats, including HTML.

В другом варианте, который не затрагивает фактические цвета пикселей в каждом изображении, цвет каждого пикселя рассматривается упрощенно в том виде, в котором цвет распознается человеческим глазом. При таком обращении с цветами эталонного изображения и тестируемого изображения становится возможным уменьшить возможность ложных совпадений, т.е. неправильного определения отличий между двумя изображениями. В некоторых вариантах осуществления упрощенный цветовой код был получен из более сложных определенных машиной цветов. Например, известны способы идентификации определенных машиной цветов в пределах основных цветов и суб-цветов (или оттенков). Эти суб-цвета могут не улавливаться человеческим глазом. В некоторых вариантах осуществления настоящей технологии система 100 поддерживает возможность сопоставления (не показана), которая связывает один или несколько сложных цветов, неуловимых человеческим глазом, с одним упрощенным цветом, который человеческий глаз способен воспринять. Например, данное сопоставление может связывать три цвета: <красный>, <ярко-красный> и <темно-красный> (или соответствующие машинные коды типа #ABCD) с цветом <красный>.In another embodiment, which does not affect the actual colors of the pixels in each image, the color of each pixel is considered simplified in the form in which the color is recognized by the human eye. With this treatment of the colors of the reference image and the test image, it becomes possible to reduce the possibility of false matches, i.e. incorrectly distinguishing between two images. In some embodiments, a simplified color code has been derived from more complex machine-defined colors. For example, methods are known for identifying machine-defined colors within primary colors and sub-colors (or shades). These sub-colors may not be captured by the human eye. In some embodiments of the present technology, system 100 supports a matching feature (not shown) that associates one or more complex colors, elusive to the human eye, with one simplified color that the human eye is able to perceive. For example, this mapping can associate three colors: <red>, <bright red> and <dark red> (or corresponding machine codes such as #ABCD) with the color <red>.

Путем анализа захваченных изображений на основе сравнения также возможно компенсировать помехи отрисовки, ошибочный текст или символы. Например, способ обработки изображения, который является одним из способов, которые могут быть использованы в соответствии с настоящей технологией, может выполняться с возможностью игнорировать наличие курсора в процедуре захвата экрана, как в случае эталонного, так и в случае тестового изображения.By analyzing captured images based on comparison, it is also possible to compensate for rendering noise, erroneous text or characters. For example, an image processing method, which is one of the methods that can be used in accordance with the present technology, can be performed with the ability to ignore the cursor in the screen capture procedure, both in the case of the reference image and in the case of the test image.

Поскольку все наборы тестов были созданы с помощью базы 160 данных библиотеки тестов, в которой содержатся заранее созданные процедуры тестирования или сценарии, и набор тестов создается для определенной пользователем части кода, возможно, что любой набор тестов будет охватывать несколько функциональных блоков на одной веб-странице. В этом случае возможно создать захват экрана, который будет иллюстрировать эффект от обработки одной части кода на другой части веб-страницы. На Фиг. 4 представлен пример фрагмента веб-страницы, который создан в результате обработки двух отдельных частей функционального кода, блока А 400 и блока В 410. Поскольку система и способ позволяют использовать несколько регионов (областей) захвата для любого одного функционального блока, то возможно опознать последовательность нескольких блоков в отношении кода элементов. Каждая часть кода может быть связана с соответствующим визуальным представлением кода в макете веб-страницы. Кроме того, поскольку набор тестов позволяет пользователю определить область захвата, то можно определить и обозначить границы между блоками в рамках захваченного снимка экрана, и дает определение того, что представление является одним из:Since all test suites were created using the test library database 160, which contains predefined test procedures or scripts, and the test suites are created for a user-defined part of the code, it is possible that any test suites will span multiple function blocks on one web page . In this case, it is possible to create a screen capture that will illustrate the effect of processing one part of the code on another part of the web page. In FIG. Figure 4 presents an example of a fragment of a web page that was created as a result of processing two separate parts of a functional code, block A 400 and block B 410. Since the system and method allow the use of several capture regions (areas) for any one functional block, it is possible to identify a sequence of several blocks in relation to element code. Each piece of code can be associated with a corresponding visual representation of the code in the layout of the web page. In addition, since the test suite allows the user to determine the capture area, it is possible to define and mark the boundaries between the blocks within the captured screenshot, and gives a definition that the view is one of:

a) один блок в нулевом состоянии (например, кнопка в выпадающем меню, кнопка не выбрана;a) one block in the zero state (for example, a button in the drop-down menu, the button is not selected;

b) два (несколько) блоков в нулевом состоянии;b) two (several) blocks in the zero state;

c) один блок с активированными функциями (нажатая кнопка в выпадающем меню);c) one block with activated functions (pressed button in the drop-down menu);

d) две кнопки и, например, выпадающее меню перекрывает вторую кнопку.d) two buttons and, for example, a drop-down menu overlaps the second button.

Частью способа регрессионного тестирования является, как подчеркивалось выше, тестирование одного и того же функционального кода в различных браузерных средах или тестирование различных версий одного и того же кода в одной браузерной среде. Для обеспечения этой функции система 100 может взаимодействовать с третьей стороной, предоставляющей инструменты 180 автоматизации (см. Фиг. 1), например, такие, которые могут быть использованы для автоматизации выполнения веб-приложения в рамках браузерной среды или для симуляции выполнения той же веб-страницы в различных браузерах. Примерами таких инструментов могут быть Selenium - набор различных программных инструментов, каждый из которых обладает различными подходами к автоматизации тестирования, что может упростить тестирования в различных браузерных средах или PhantomJS, который является консольной версией браузера webkit, и может быть выполнен с возможностью обрабатывать функциональный блок и измененные версии этого функционального блока в рамках того, что определяется как одна и та же браузерная среда. Несмотря на то что эти инструменты автоматизации показаны как находящиеся снаружи системы 100, некоторые варианты осуществления этих инструментов могут быть установлены внутри системы 100 или получать к ней доступ по сети 130. Следует отметить, что выбор любого из этих типов инструментов может осуществляться как часть создания конкретных наборов тестов.Part of the regression testing method is, as emphasized above, testing the same functional code in different browser environments or testing different versions of the same code in the same browser environment. To provide this function, the system 100 may interact with a third party providing automation tools 180 (see FIG. 1), for example, those that can be used to automate the execution of a web application within a browser environment or to simulate the execution of the same web pages in various browsers. Examples of such tools can be Selenium - a set of different software tools, each of which has different approaches to testing automation, which can simplify testing in different browser environments or PhantomJS, which is a console version of the webkit browser, and can be executed with the ability to process a function block and Modified versions of this function block as part of what is defined as the same browser environment. Although these automation tools are shown as being outside the system 100, some embodiments of these tools can be installed inside the system 100 or accessed through the network 130. It should be noted that any of these types of tools can be selected as part of creating specific test suites.

Следует отметить также, что описанная здесь функциональность была представлена со ссылкой на тестирование конкретных определенных функциональных блоков кода в рамках конкретной веб-страницы или групп веб-страниц, образующих веб-сайт. Как было упомянуто ранее, пользовательское определение функционального блока кода, например, CSS-кода, на конкретном веб-странице может быть протестировано, а созданные или сформированные веб-страницы, которые связаны с этой конкретной страницей, могут сохраняться и использоваться в тестовом режиме. Путем разбиения веб-страницы на составные функциональные блоки и дальнейшего тестирования этих блоков настоящая технология позволяет очень подробно оценивать эти блоки в контексте общего вида веб-страницы. При определении области захвата функционального блока возможно определять то, как именно различные блоки могут влиять на общее отображение, в том числе частей веб-страницы, которые являются результатами процесса отрисовки другого функционального блока.It should also be noted that the functionality described here was presented with reference to testing specific specific functional blocks of code within a particular web page or groups of web pages forming a website. As mentioned earlier, a user-defined definition of a functional block of code, for example, CSS code, on a particular web page can be tested, and created or formed web pages that are associated with this particular page can be saved and used in test mode. By dividing the web page into composite functional blocks and further testing these blocks, this technology makes it possible to evaluate these blocks in great detail in the context of the overall appearance of the web page. When determining the capture area of a function block, it is possible to determine how exactly various blocks can affect the overall display, including parts of the web page that are the results of the process of rendering another function block.

Система 100 позволяет пользователю разбить веб-страница на составные функциональные блоки, что может быть выполнено для последующего отчета о том, какие части веб-страницы были протестированы. Как было описано ранее, после создания набора тестов для функционального блока и сохранения его в библиотеке 150 наборов тестов, этот конкретный набор тестов может быть использован независимо или одновременно с другими наборами тестов. Если к одной то же веб-странице применяются несколько наборов тестов, то система может быть выполнена с возможностью определить, какие именно части кода на исходной веб-странице были протестированы. Это может быть выражено с помощью, например, цветовой последовательности, при этом те части, который были по меньшей мере в одном тесте захвачены полностью, могут быть отмечены в первом цвете, частично -во втором цвете, вообще не были захвачены - в третьем цвете. Путем цветового кодирования с использованием последовательности типа "светофор" (красный, оранжевый, зеленый) может быть создана достаточно наглядная картина.System 100 allows a user to break a web page into composite functional blocks, which can be done to subsequently report which parts of the web page have been tested. As described previously, after creating a test suite for a function block and storing it in a library of 150 test suites, this particular test suite can be used independently or simultaneously with other test suites. If multiple test suites are applied to the same web page, the system can be configured to determine which parts of the code on the original web page have been tested. This can be expressed using, for example, a color sequence, while those parts that were completely captured in at least one test can be marked in the first color, partially in the second color, and were not captured at all in the third color. By color coding using a sequence of type "traffic light" (red, orange, green) can be created quite a clear picture.

Следует отметить, что был описан только примерный вариант осуществления системы и способа упрощения регрессионного тестирования веб-сайта. Подобные система и способ обладают множеством преимуществ, такими как:It should be noted that only an example embodiment of a system and method for simplifying website regression testing has been described. Such a system and method have many advantages, such as:

- Совместимость с различными браузерами;- Compatible with various browsers;

- Возможность отдельного тестирования частей веб-страницы;- The ability to separately test parts of a web page;

- Позиция и размер захваченного элемента могут быть определены независимо от части их базового кода и могут быть вычислены огромным количеством разных способов, включая, например, тени от окна и свойства контура;- The position and size of the captured element can be determined regardless of part of their base code and can be calculated in a huge number of different ways, including, for example, window shadows and outline properties;

- Путем анализа на основе изображения возможно обеспечить выборочное тестирование таким образом, чтобы некоторые конкретные отличия между изображениями (помехи при обработке, вставленный текст и так далее) игнорировались;- Through image-based analysis, it is possible to provide selective testing so that some specific differences between images (processing noise, inserted text, and so on) are ignored;

- Создание отчета о тестировании веб-страницы в целом и, соответственно, области этого тестирования.- Creating a report on testing the web page as a whole and, accordingly, the scope of this testing.

В контексте настоящего описания, если конкретно не указано иное, термин «используемый компьютером носитель компьютерной информации» подразумевает под собой носитель абсолютно любого типа и характера, включая ОЗУ, ПЗУ, диски (компакт диски, DVD-диски, дискеты, жесткие диски и т.д.), USB флеш-накопители, твердотельные накопители, накопители на магнитной ленте и т.д.In the context of the present description, unless specifically indicated otherwise, the term “computer-supported computer information medium” means a medium of absolutely any type and nature, including RAM, ROM, disks (CDs, DVDs, diskettes, hard drives, etc.). e.), USB flash drives, solid state drives, tape drives, etc.

В контексте настоящего описания, если конкретно не указано иное, слова «первый», «второй», «третий» и и т.д. используются в виде прилагательных исключительно для того, чтобы отличать существительные, к которым они относятся, друг от друга, а не для целей описания какой-либо конкретной связи между этими существительными. Так, например, следует иметь в виду, что использование терминов "первый сервер" и "третий сервер " не подразумевает какого-либо порядка, отнесения к определенному типу, хронологии, иерархии или ранжирования (например) серверов/между серверами, равно как и их использование (само по себе) не предполагает, что некий "второй сервер" обязательно должен существовать в той или иной ситуации. В дальнейшем, как указано здесь в других контекстах, упоминание "первого" элемента и "второго" элемента не исключает возможности того, что это один и тот же фактический реальный элемент. Так, например, в некоторых случаях, "первый" сервер и "второй" сервер могут являться одним и тем же программным и/или аппаратным обеспечением, а в других случаях они могут являться разным программным и/или аппаратным обеспечением.In the context of the present description, unless specifically indicated otherwise, the words "first", "second", "third", etc. used in the form of adjectives solely to distinguish the nouns to which they relate from each other, and not for the purpose of describing any specific relationship between these nouns. So, for example, it should be borne in mind that the use of the terms “first server” and “third server” does not imply any ordering, chronology, hierarchy or ranking (for example) of servers / between servers, as well as their use (in itself) does not imply that a certain "second server" must exist in a given situation. Hereinafter, as indicated here in other contexts, reference to the “first” element and the “second” element does not exclude the possibility that it is one and the same actual real element. So, for example, in some cases, the “first” server and the “second” server can be the same software and / or hardware, and in other cases they can be different software and / or hardware.

Каждый вариант осуществления включает по меньшей мере одну из вышеупомянутых целей и/или объектов. Дополнительные и/или альтернативные характеристики, аспекты и преимущества вариантов осуществления очевидны из описания, прилагаемых чертежей и прилагаемой формулы технологии.Each embodiment includes at least one of the aforementioned objectives and / or objects. Additional and / or alternative characteristics, aspects, and advantages of the embodiments are apparent from the description, the accompanying drawings, and the accompanying technology claims.

Специалисты в данной области техники поймут, что в настоящем описании выражение "получение данных" от пользователя подразумевает получение электронным устройством данных от пользователя в виде электронного (или другого) сигнала. Кроме того, специалисты в данной области техники поймут, что отображение данных пользователю через графический интерфейс пользователя (например, экран электронного устройства и тому подобное) может включать в себя передачу сигнала графическому интерфейсу пользователя, этот сигнал содержит данные, которые могут быть обработаны, и по меньшей мере часть этих данных может отображаться пользователю через графический интерфейс пользователя.Those skilled in the art will understand that in the present description, the expression “receiving data” from a user means receiving by the electronic device data from the user in the form of an electronic (or other) signal. In addition, those skilled in the art will understand that displaying data to a user via a graphical user interface (e.g., an electronic device screen and the like) may include transmitting a signal to the graphical user interface, this signal contains data that can be processed, and at least a portion of this data may be displayed to the user via a graphical user interface.

Некоторые из этих этапов, а также передача-получение сигнала хорошо известны в данной области техники и поэтому для упрощения были опущены в конкретных частях описания. Сигналы могут быть переданы-получены с помощью оптических средств (например, оптического соединения), электронных средств (например, проводного или беспроводного соединения) и механических средств (например, на основе давления, температуры или другого подходящего параметра).Some of these steps, as well as signal transmission-reception, are well known in the art and therefore have been omitted in specific parts of the description for simplicity. Signals can be transmitted-received using optical means (for example, optical connection), electronic means (for example, wired or wireless connection) and mechanical means (for example, based on pressure, temperature or other suitable parameter).

Модификации и улучшения вышеописанных вариантов осуществления будут ясны специалистам в данной области техники. Предшествующее описание представлено только в качестве примера и не несет никаких ограничений. Таким образом, объем правовой защиты ограничен только объемом прилагаемой формулы изобретения.Modifications and improvements to the above described embodiments will be apparent to those skilled in the art. The preceding description is provided as an example only and is not subject to any restrictions. Thus, the scope of legal protection is limited only by the scope of the attached claims.

Claims (27)

1. Способ регрессионного тестирования функциональности веб-страницы, включающий:1. A method of regression testing the functionality of a web page, including: определение по меньшей мере одного функционального блока веб-страницы, выполненного с возможностью принимать по меньшей мере первое и второе функциональное состояние, каждое из которых связано с конкретным сформированным изображением в результате выполнения кода, соответствующего функциональному блоку;determining at least one functional block of the web page, configured to receive at least the first and second functional state, each of which is associated with a particular generated image as a result of executing code corresponding to the functional block; эмуляцию в первый момент времени выполнения кода функционального блока и захват сформированных изображений для каждого из первого и второго функциональных состояний;emulation at the first instant of execution of the code of the functional block and capture of the generated images for each of the first and second functional states; установление связи между захваченными сформированными изображениями функционального блока и сохранение захваченных изображений в исходном массиве данных;establishing a connection between the captured generated images of the functional unit and storing the captured images in the original data array; эмуляцию во второй момент времени выполнения кода функционального блока и захват для тестирования сформированных изображений для каждого из первого и второго функциональных состояний для создания тестового массива данных;emulation at the second time of execution of the code of the function block and capture for testing the generated images for each of the first and second functional states to create a test data array; сравнение пиксельных значений изображений в каждом из исходного массива данных и тестового массива данных для определения изменений между исходным и тестовым массивами данных.comparing the pixel values of the images in each of the original data array and the test data array to determine the changes between the original and test data arrays. 2. Способ по п. 1, в котором эмуляцию выполнения по меньшей мере части кода функционального блока осуществляют путем первоначального определения набора тестов для этого функционального блока, определенных посредством получения доступа к заранее созданным процедурам тестирования, хранящимся в базе библиотеки тестов.2. The method according to p. 1, in which the emulation of the execution of at least part of the code of the functional block is carried out by initially defining a set of tests for this functional block, determined by accessing pre-created testing procedures stored in the database of the test library. 3. Способ по п. 2, в котором процедуры тестирования связаны друг с другом и образуют серию этапов, выполнение которых по отношению конкретного функционального блока имитирует взаимодействие пользователя с веб-страницей, на которой находится функциональный блок.3. The method according to claim 2, in which the testing procedures are related to each other and form a series of stages, the implementation of which with respect to a specific functional block imitates the interaction of the user with the web page on which the functional block is located. 4. Способ по п. 3, в котором набор тестов выполнен с возможностью тестирования функционального блока в первом и втором функциональных состояниях и захвата изображений с каждым из этих двух функциональных состояний.4. The method of claim 3, wherein the test suite is configured to test a functional unit in the first and second functional states and capture images with each of these two functional states. 5. Способ по п. 1, в котором создают библиотеку исходных массивов данных, содержащих изображения, связанные с конкретным функциональным блоком.5. The method according to claim 1, wherein creating a library of source data arrays containing images associated with a particular function block. 6. Способ по п. 1. в котором каждый из тестового массива данных и исходного массива данных содержит сформированные изображения, захваченные при эмуляции функционального кода в одной браузерной среде.6. The method according to p. 1. in which each of the test data array and the original data array contains the generated image captured during the emulation of the functional code in one browser environment. 7. Способ по п. 1. в котором каждый из тестового массива данных и исходного массива данных содержит сформированные графические изображения, захваченные при эмуляции кода функционального блока в различных браузерных средах для предоставления информации о совместимости веб-страницы с различными браузерными средами.7. The method according to claim 1. in which each of the test data array and the original data array contains generated graphic images captured during emulation of the function block code in various browser environments to provide information about the compatibility of the web page with different browser environments. 8. Способ по п. 1, в котором создают файл данных, содержащий данные, указывающие на изменения между тестовым массивом данных и исходным массивом данных.8. The method according to claim 1, wherein creating a data file containing data indicating changes between the test data array and the original data array. 9. Способ по п. 8, в котором определяют различие между тестовым массивом данных и исходным массивом данных для каждого из состояний, созданных при эмуляции кода функционального блока.9. The method according to claim 8, in which the difference between the test data array and the original data array for each of the states created by emulating the function block code is determined. 10. Способ по п. 1, в котором сравнивают пиксельные значения изображений посредством анализа пикселей в каждом изображении в тестовом массиве данных и исходом массиве данных.10. The method of claim 1, wherein comparing the pixel values of the images by analyzing the pixels in each image in the test data array and the output data array. 11. Способ по п. 10, в котором при сравнении переводят цвета каждого пикселя в упрощенную версию.11. The method according to p. 10, in which when comparing translate the colors of each pixel in a simplified version. 12. Способ по п. 1, в котором осуществляют семантический разбор кода для определения веб-страницы с определением какие части кода расположены в функциональных блоках.12. The method according to p. 1, which carry out semantic analysis of the code to determine the web page with the determination of which parts of the code are located in functional blocks. 13. Способ по п. 12, в котором определяют, какой из функциональных блоков был протестирован во второй момент времени.13. The method according to p. 12, which determines which of the functional blocks was tested at the second point in time. 14. Машиночитаемый носитель информации, включающий машиночитаемые коды, выполненные с возможностью их выполнения вычислительным устройством с осуществлением способа по п. 1.14. Machine-readable storage medium, including machine-readable codes made with the possibility of their execution by a computing device with the implementation of the method according to p. 1. 15. Система регрессионного тестирования функциональности веб-страницы, включающая:15. System regression testing the functionality of a web page, including: первое хранилище данных, содержащее исходный массив данных со сформированным изображением по меньшей мере части веб-страницы в первом и втором функциональных состояниях, причем сформированные изображения связаны с кодом функционального блока, который при эмуляции влияет на отрисовку сформированного изображения;the first data store containing the initial data array with the generated image of at least part of the web page in the first and second functional states, the generated images being associated with a function block code, which when emulated affects the rendering of the generated image; процессор, выполненный с возможностью:a processor configured to: эмуляции в первый момент времени выполнения кода функционального блока и захвата сформированных изображений для каждого из первого и второго функциональных состояний;emulating at the first time the code of the function block is executed and capturing the generated images for each of the first and second functional states; установления связи между захваченными сформированными изображениями функционального блока и сохранения захваченных изображений в исходном массиве данных;establishing a connection between the captured generated images of the functional unit and storing the captured images in the original data array; осуществления эмуляции функционального блока для создания тестового массива данных, содержащего захваченные сформированные изображения по меньшей мере части веб-страницы в первом и втором функциональных состояниях во второй момент времени;emulating a function block to create a test data array containing captured generated images of at least a portion of the web page in the first and second functional states at the second time moment; сравнения пиксельных значений изображений в каждом из исходного массива данных и тестового массива данных с определением изменения в сформированных изображениях между исходным и тестовым массивами данных.comparing the pixel values of the images in each of the original data array and the test data array with determining the changes in the generated images between the original and test data arrays. 16. Система по п. 15, которая включает библиотеку наборов тестов, содержащую заранее созданные тестовые процедуры, используемые в наборе тестов для оценки функциональности функционального блока.16. The system of claim 15, which includes a library of test suites containing predefined test procedures used in the test suites to evaluate the functionality of a functional unit.
RU2014145739A 2014-11-14 2014-11-14 Method and system of regression testing of web page functionality, machine-readable data storage media RU2611961C2 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
RU2014145739A RU2611961C2 (en) 2014-11-14 2014-11-14 Method and system of regression testing of web page functionality, machine-readable data storage media
PCT/IB2015/052432 WO2016075552A1 (en) 2014-11-14 2015-04-02 Method of testing webpage layout

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
RU2014145739A RU2611961C2 (en) 2014-11-14 2014-11-14 Method and system of regression testing of web page functionality, machine-readable data storage media

Publications (2)

Publication Number Publication Date
RU2014145739A RU2014145739A (en) 2016-06-10
RU2611961C2 true RU2611961C2 (en) 2017-03-01

Family

ID=55953793

Family Applications (1)

Application Number Title Priority Date Filing Date
RU2014145739A RU2611961C2 (en) 2014-11-14 2014-11-14 Method and system of regression testing of web page functionality, machine-readable data storage media

Country Status (2)

Country Link
RU (1) RU2611961C2 (en)
WO (1) WO2016075552A1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2665244C1 (en) * 2017-06-06 2018-08-28 Общество С Ограниченной Ответственностью "Яндекс" Metric generalized parameter forming for a/b testing methods and system

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108874810B (en) * 2017-05-10 2021-01-26 北京京东尚科信息技术有限公司 Information acquisition method and device
RU2699573C2 (en) * 2017-12-15 2019-09-06 Общество С Ограниченной Ответственностью "Яндекс" Methods and systems for generating values of an omnibus evaluation criterion
CN109947637B (en) * 2017-12-21 2022-10-14 中国移动通信集团重庆有限公司 Automatic testing method, device, equipment and medium for webpage compatibility
CN113344824A (en) * 2021-06-30 2021-09-03 平安资产管理有限责任公司 Interface image comparison method and device, computer equipment and storage medium
CN114911698B (en) * 2022-05-05 2024-04-05 西安交通大学 Automatic test method and device, electronic equipment and storage medium

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6523027B1 (en) * 1999-07-30 2003-02-18 Accenture Llp Interfacing servers in a Java based e-commerce architecture
US6615253B1 (en) * 1999-08-31 2003-09-02 Accenture Llp Efficient server side data retrieval for execution of client side applications
US7231606B2 (en) * 2000-10-31 2007-06-12 Software Research, Inc. Method and system for testing websites
RU2390829C2 (en) * 2004-09-29 2010-05-27 Майкрософт Корпорейшн System and method for test case execution modes for automation of repeated testing
US20140013165A1 (en) * 2007-06-05 2014-01-09 Software Research Inc. Method for System for Testing Websites

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7716322B2 (en) * 2002-09-23 2010-05-11 Alcatel-Lucent Usa Inc. Automatic exploration and testing of dynamic Web sites
GB0623912D0 (en) * 2006-11-30 2007-01-10 Bayne Duncan J Improved electronic form software and brower programming methods
US20110276834A1 (en) * 2010-05-06 2011-11-10 Salesforce.Com, Inc. Techniques for testing computer readable code
US9076072B2 (en) * 2012-10-11 2015-07-07 Salesforce.Com, Inc. System and method for web page rendering test automation suite

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6523027B1 (en) * 1999-07-30 2003-02-18 Accenture Llp Interfacing servers in a Java based e-commerce architecture
US6615253B1 (en) * 1999-08-31 2003-09-02 Accenture Llp Efficient server side data retrieval for execution of client side applications
US7231606B2 (en) * 2000-10-31 2007-06-12 Software Research, Inc. Method and system for testing websites
RU2390829C2 (en) * 2004-09-29 2010-05-27 Майкрософт Корпорейшн System and method for test case execution modes for automation of repeated testing
US20140013165A1 (en) * 2007-06-05 2014-01-09 Software Research Inc. Method for System for Testing Websites

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2665244C1 (en) * 2017-06-06 2018-08-28 Общество С Ограниченной Ответственностью "Яндекс" Metric generalized parameter forming for a/b testing methods and system

Also Published As

Publication number Publication date
WO2016075552A1 (en) 2016-05-19
RU2014145739A (en) 2016-06-10

Similar Documents

Publication Publication Date Title
US9720799B1 (en) Validating applications using object level hierarchy analysis
US9342237B2 (en) Automated testing of gesture-based applications
AU2017258963B2 (en) Simultaneous multi-platform testing
RU2611961C2 (en) Method and system of regression testing of web page functionality, machine-readable data storage media
CN107025174B (en) Method, device and readable storage medium for user interface anomaly test of equipment
US9104809B2 (en) Facilitating automated validation of a web application
US7962547B2 (en) Method for server-side logging of client browser state through markup language
US9600400B1 (en) Performance testing of web application components using image differentiation
US10146753B2 (en) Visual regression testing tool
US9003235B2 (en) Indicating coverage of web application testing
US20190303269A1 (en) Methods and systems for testing visual aspects of a web page
CN104102643B (en) A kind of method and apparatus for carrying out page snapshot
US20120278698A1 (en) Method and system for processing a webpage
CN111414309B (en) Automatic test method of application program, computer equipment and storage medium
WO2017165071A1 (en) Visual regression analysis
US20160034378A1 (en) Method and system for testing page link addresses
CN105335282A (en) Method and system for cross-platform test of applications
Tuovenen et al. MAuto: Automatic mobile game testing tool using image-matching based approach
Wu et al. Appcheck: a crowdsourced testing service for android applications
US9229846B1 (en) Testing application code changes using a state assertion framework
KR102635847B1 (en) Apparatus and method for application test automation
US10728095B2 (en) Client-configured server class tracing to a configurable threshold
US11403209B2 (en) Rendering GUI test object of application under test to reflect test information
US20200272785A1 (en) Transformation of resource files using mapped keys for tracking content location
US10530835B2 (en) Application recording

Legal Events

Date Code Title Description
MM4A The patent is invalid due to non-payment of fees

Effective date: 20161115

NF4A Reinstatement of patent

Effective date: 20171109