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 PDFInfo
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Prevention of errors by analysis, debugging or testing of software
- G06F11/3668—Testing of software
- G06F11/3672—Test management
- G06F11/3688—Test management for test execution, e.g. scheduling of test suites
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/22—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
- G06F11/26—Functional testing
- G06F11/261—Functional testing by simulating additional hardware, e.g. fault simulation
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Prevention of errors by analysis, debugging or testing of software
- G06F11/3668—Testing of software
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/11—File system administration, e.g. details of archiving or snapshots
- G06F16/116—Details of conversion of file system types or formats
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/174—Redundancy elimination performed by the file system
- G06F16/1748—De-duplication implemented within the file system, e.g. based on file segments
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/40—Information retrieval; Database structures therefor; File system structures therefor of multimedia data, e.g. slideshows comprising image and additional audio data
- G06F16/43—Querying
- G06F16/432—Query formulation
- G06F16/434—Query formulation using image data, e.g. images, photos, pictures taken by a user
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/40—Information retrieval; Database structures therefor; File system structures therefor of multimedia data, e.g. slideshows comprising image and additional audio data
- G06F16/44—Browsing; Visualisation therefor
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software 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
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
В контексте настоящего описания, если конкретно не указано иное, «электронное устройство» подразумевает под собой аппаратное устройство, способное работать с программным обеспечением, подходящим к решению соответствующей задачи. Примерами электронных устройств, среди прочего, являются персональные компьютеры (настольные компьютеры, ноутбуки и т.д.), смартфоны и планшеты и устройства спутниковой навигации. Следует иметь в виду, что устройство, ведущее себя как электронное устройство в настоящем контексте, может вести себя как сервер по отношению к другим электронным устройствам. Использование выражения «электронное устройство» не исключает возможности использования множества электронных устройств для получения/отправки, выполнения или инициирования выполнения любой задачи или запроса, или же последствий любой задачи или запроса, или же этапов любого вышеописанного метода.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
В контексте настоящего описания, если конкретно не указано иное, «сервер» подразумевает под собой компьютерную программу, работающую на соответствующем оборудовании, которая способна получать запросы (например, от электронных устройств 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
В контексте настоящего описания, если конкретно не указано иное, термин «база данных» подразумевает под собой любой структурированный набор данных, не зависящий от конкретной структуры, программного обеспечения по управлению базой данных, аппаратного обеспечения компьютера, на котором данные хранятся, используются или иным образом оказываются доступны для использования. База данных может находиться на том же оборудовании, которое выполняет процесс, который сохраняет или использует информацию, хранящуюся в базе данных, или же она может находиться на отдельном оборудовании, например, выделенном сервере или множестве серверов.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
Частью функции тестирования этих индивидуальных блоков является модуль 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
Создание конкретного набора тестов использует заранее созданные процедуры тестирования или сценарии (оба варианта включены в понятие "тестовые процедуры"), которые хранятся в базе 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
- 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
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.
Набор тестов может быть выполнен в фоновом режиме, но выполнение наборов тестов также может быть выполнено с возможностью обеспечить пользователю графический обзор исполняемого кода в процессе выполнения отдельных наборов тестов. Это может быть полезно по целому ряду причин, включая тот факт, что это в реальном времени обеспечивает демонстрацию того, что именно будет захвачено. Как будет подробнее объяснено ниже подобный графический обзор, который одновременно отображается во время выполнения отдельных наборов тестов, также может быть использован для демонстрации в реальном времени отличий между эталонным набором захваченных изображений и изображениями, захваченными во время последующего выполнения набора тестов по отношению к по сути тому же самому функциональному блоку.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
После применения набора (наборов) тестов к одному или нескольким функциональным блокам в рамках конкретной веб-страницы настоящая технология обеспечивает второе применение того же набора тестов к функциональному блоку, и предполагается, что по существу оно будет выполняться тем же образом, что и в случае уже протестированного эталонного функционального блока (этап 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
В другом варианте, который не затрагивает фактические цвета пикселей в каждом изображении, цвет каждого пикселя рассматривается упрощенно в том виде, в котором цвет распознается человеческим глазом. При таком обращении с цветами эталонного изображения и тестируемого изображения становится возможным уменьшить возможность ложных совпадений, т.е. неправильного определения отличий между двумя изображениями. В некоторых вариантах осуществления упрощенный цветовой код был получен из более сложных определенных машиной цветов. Например, известны способы идентификации определенных машиной цветов в пределах основных цветов и суб-цветов (или оттенков). Эти суб-цвета могут не улавливаться человеческим глазом. В некоторых вариантах осуществления настоящей технологии система 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,
Путем анализа захваченных изображений на основе сравнения также возможно компенсировать помехи отрисовки, ошибочный текст или символы. Например, способ обработки изображения, который является одним из способов, которые могут быть использованы в соответствии с настоящей технологией, может выполняться с возможностью игнорировать наличие курсора в процедуре захвата экрана, как в случае эталонного, так и в случае тестового изображения.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
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
Следует отметить также, что описанная здесь функциональность была представлена со ссылкой на тестирование конкретных определенных функциональных блоков кода в рамках конкретной веб-страницы или групп веб-страниц, образующих веб-сайт. Как было упомянуто ранее, пользовательское определение функционального блока кода, например, 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 наборов тестов, этот конкретный набор тестов может быть использован независимо или одновременно с другими наборами тестов. Если к одной то же веб-странице применяются несколько наборов тестов, то система может быть выполнена с возможностью определить, какие именно части кода на исходной веб-странице были протестированы. Это может быть выражено с помощью, например, цветовой последовательности, при этом те части, который были по меньшей мере в одном тесте захвачены полностью, могут быть отмечены в первом цвете, частично -во втором цвете, вообще не были захвачены - в третьем цвете. Путем цветового кодирования с использованием последовательности типа "светофор" (красный, оранжевый, зеленый) может быть создана достаточно наглядная картина.
Следует отметить, что был описан только примерный вариант осуществления системы и способа упрощения регрессионного тестирования веб-сайта. Подобные система и способ обладают множеством преимуществ, такими как: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)
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)
| 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)
| 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)
| 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)
| 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 |
-
2014
- 2014-11-14 RU RU2014145739A patent/RU2611961C2/en active IP Right Revival
-
2015
- 2015-04-02 WO PCT/IB2015/052432 patent/WO2016075552A1/en not_active Ceased
Patent Citations (5)
| 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)
| 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 |