U.S. patent application number 15/714602 was filed with the patent office on 2018-03-15 for method and system for webpage regression testing.
The applicant listed for this patent is III Holdings 1, LLC. Invention is credited to Hans-Jurgen Greiner, Krishna Bihari Kumar, Keshav A. Narsipur.
Application Number | 20180075298 15/714602 |
Document ID | / |
Family ID | 47390769 |
Filed Date | 2018-03-15 |
United States Patent
Application |
20180075298 |
Kind Code |
A1 |
Kumar; Krishna Bihari ; et
al. |
March 15, 2018 |
METHOD AND SYSTEM FOR WEBPAGE REGRESSION TESTING
Abstract
A regression testing system comprises an automatic test tool
configured to capture a first web screen shot and a second web
screen shot of a webpage, where the webpage has undergone an update
or edit. The regression testing system also comprises a visual
comparator configured to identify similar areas in the first web
screen shot and the second web screen shot. The visual comparator
receives, and compares characteristics of, the web screen shots.
Furthermore, the regression testing system generates a report with
marked different characteristics between the first and second web
screen shots. The regression testing system identifies similar
areas in the first and second web screen shots shot even if the
similar areas are at different locations within the web screen
shots. The comparison performed by the visual comparator includes
performing a pixel comparison combined with a marking algorithm to
group differences in smaller, related but separate areas.
Inventors: |
Kumar; Krishna Bihari;
(Phoenix, AZ) ; Narsipur; Keshav A.; (Phoenix,
AZ) ; Greiner; Hans-Jurgen; (Phoenix, AZ) |
|
Applicant: |
Name |
City |
State |
Country |
Type |
III Holdings 1, LLC |
Wilmington |
DE |
US |
|
|
Family ID: |
47390769 |
Appl. No.: |
15/714602 |
Filed: |
September 25, 2017 |
Related U.S. Patent Documents
|
|
|
|
|
|
Application
Number |
Filing Date |
Patent Number |
|
|
14170012 |
Jan 31, 2014 |
9773165 |
|
|
15714602 |
|
|
|
|
13173132 |
Jun 30, 2011 |
8682083 |
|
|
14170012 |
|
|
|
|
Current U.S.
Class: |
1/1 |
Current CPC
Class: |
G06K 9/6202 20130101;
G06K 9/00442 20130101; G06F 11/3688 20130101 |
International
Class: |
G06K 9/00 20060101
G06K009/00; G06F 11/36 20060101 G06F011/36; G06K 9/62 20060101
G06K009/62 |
Claims
1-20. (canceled)
21. A method, comprising: capturing, by a computer system, a first
screen shot of a webpage; capturing, by the computer system, a
second screen shot of the webpage, wherein the second screen shot
is captured after an update to the webpage has been implemented;
performing, by the computer system, a comparison of a first area of
the first screen shot to a second area of the second screen shot;
and generating, by the computer system, a report based on the
comparison, wherein the report indicates one or more discrepancies
between the first screen shot at a first location of the first area
and the second screen shot at a second location of the second
area.
22. The method of claim 21, wherein the comparison includes:
identifying the first area of the first screen shot; based on a
comparison to the first area, iteratively shifting the second area
of the second screen shot; and in response to identifying a match
between the first screen shot and the second screen shot,
identifying the second location, wherein the second area of the
second screen shot includes the second location.
23. The method of claim 22, wherein the first area is at a
different location within the webpage than the second area.
24. The method of claim 21, wherein the comparison comprises
performing a pixel-to-pixel comparison of the first screen shot to
the second screen shot.
25. The method of claim 24, further comprising identifying a third
area of the second screen shot, wherein the third area includes to
a grouping of pixel discrepancies between the first screen shot and
the second screen shot.
26. The method of claim 25, further comprising, in response to
identifying the third area, iteratively shifting the second area
relative to the first screen shot.
27. The method of claim 26, further comprising, subsequent to
shifting the second area, in response to at least a particular
number of pixel discrepancies, marking differences in the second
screen shot.
28. A non-transitory computer-readable medium having instructions
stored thereon that, in response to execution by a computer system,
cause the computer system to perform operations comprising:
capturing a first screen shot of a webpage; capturing a second
screen shot of the webpage, wherein the second screen shot is
captured after an update to the webpage has been implemented;
performing a comparison of the first screen shot to the second
screen shot; and generating a report based on the comparison,
wherein the report indicates one or more discrepancies between the
first screen shot at a first location and the second screen shot at
a second location.
29. The computer-readable medium of claim 28, wherein performing
the comparison includes comparing visual changes between the first
screen shot and the second screen shot.
30. The computer-readable medium of claim 28, wherein performing
the comparison includes determining a percentage difference between
the first screen shot and the second screen shot.
31. The computer-readable medium of claim 30, wherein generating
the report includes indicating the percentage difference.
32. The computer-readable medium of claim 28, wherein the one or
more discrepancies indicate a difference in one or more of the
following characteristics: color, size, font, style, location, and
value.
33. The computer-readable medium of claim 28, wherein generating
the report comprises indicating a suggested color change for a
portion of text on the webpage.
34. A system comprising: a processor; and a memory coupled to the
processor, wherein the memory has stored thereon instructions
executable by the system to cause the system to perform operations
comprising: receiving a first screen shot of a webpage; receiving a
second screen shot of the webpage, wherein the second screen shot
is captured after an update to the webpage has been implemented;
performing a comparison of the first screen shot to the second
screen shot; and generating a report based on the comparison,
wherein the report indicates one or more discrepancies between the
first screen shot and the second screen shot.
35. The system of claim 34, wherein generating the report includes
generating a modified screen shot that visually indicates the one
or more discrepancies.
36. The system of claim 35, wherein the operations further comprise
marking different characteristics between the first screen shot and
the second screen shot, wherein the marking produces the modified
screen shot.
37. The system of claim 34, wherein generating the report comprises
identifying a type of change corresponding to at least one of the
one or more discrepancies.
38. The system of claim 34, wherein performing the comparison
includes: comparing a first rectangular area of the first screen
shot to a second rectangular area of the second screen shot; and
determining a percentage difference between the first rectangular
area and the second rectangular area.
39. The system of claim 38, wherein performing the comparison
includes: determining a size of the first rectangular area; and
determining a size of the second rectangular area.
40. The system of claim 39, wherein determining the size of the
second rectangular area includes performing a pixel comparison of
the first rectangular area to the second rectangular area.
Description
CROSS-REFERENCE TO RELATED APPLICATIONS
[0001] This application is a continuation of, claims priority to
and the benefit of, U.S. Ser. No. 13/173,132 filed Jun. 30, 2011
and entitled "METHOD AND SYSTEM FOR WEBPAGE REGRESSION TESTING,"
which is incorporated herein in its entirety.
FIELD OF INVENTION
[0002] The present disclosure generally relates to webpage testing,
and more particularly, to methods, systems, and computer readable
mediums for performing webpage regression testing.
BACKGROUND OF THE INVENTION
[0003] Product/service providers, hereinafter collectively referred
to as "service providers", extensively use web pages for providing
product/service information, online services, company information,
facilitating transactions, online support, and/or the like. Over a
period of time, the service providers may need to update or modify
their web applications underlying the web pages to accommodate new
or modified business requirements. Such modifications in the web
applications may cause unexpected visual changes in the appearance
of a web page. The service providers may not want such unexpected
visual changes in the web pages. This creates a new challenge for
testing professionals as currently available software testing tools
are only capable of determining whether data on modified web pages
are correct and do not test visual appearance of the web pages for
modification. One conventional approach to overcome the
aforementioned challenge requires a testing professional to
manually compare web pages prior to and after the incorporation of
an update or modification to the web applications underlying the
web pages. Such manual comparison results in a loss of productive
time. Further, such comparison may be prone to errors.
[0004] One currently available comparison tool uses color histogram
for comparing web pages before and after incorporating the changes
in the application. However, such a tool cannot identify a change
in the modified webpage in comparison with the original webpage if
the web pages under test produce similar color histograms. Another
tool currently available discloses a use of pixel comparison for
determining changes in the web pages. However, such tools can
merely determine that the web pages are different and cannot
identify the nature of change or location of change in the modified
web page, such as, for example, change in fonts, modified placement
of web components, links within the webpage and/or the like.
Consequently, the testing professionals have to spend a lot of time
comparing web pages manually to identify the changes and their
locations in the modified web page. Thus, there is a need for a
method, system and/or program for testing web pages in a more
accurate and efficient manner.
SUMMARY OF THE INVENTION
[0005] The present disclosure meets the above-identified need by
providing methods and systems configured to perform webpage
regression testing. In one embodiment, a regression testing system
comprises an automatic test tool configured to capture a first web
screen shot and a second web screen shot of a webpage, where the
webpage has undergone an update or edit. The regression testing
system also comprises a visual comparator configured to identify
similar areas in the first web screen shot and the second web
screen shot. The visual comparator receives the first web screen
shot and the second web screen shot from the automatic test tool,
and compares characteristics of the first and second web screen
shots. Furthermore, the regression testing system generates a
report with marked different characteristics between the first web
screen shot and the second web screen shot. The report may be
generated in HTML.
[0006] The regression testing system identifies the same or similar
areas in the first web screen shot and the second web screen shot
even if the similar areas are at different locations within the web
screen. The comparison performed by the visual comparator includes
performing a pixel comparison combined with a marking algorithm to
group differences in smaller, related but separate areas. The
characteristics used during the comparison process may include at
least one of color, element positioning, style, and content.
[0007] Furthermore, in one embodiment, the visual comparator
compares a first rectangular area of the first web screen shot to a
second rectangular area of the second web screen shot. The first
rectangular area and the second rectangular area are shifted during
the comparison process and a percentage difference is determined.
The rectangular sizes of the rectangular areas may be determined by
performing a pixel-to-pixel comparison of the first web screen shot
to the second web screen shot, and forming a rectangular size
around a grouping of pixel discrepancies. In another embodiment,
the regression testing system is further configured to provide
suggestions of image area relocation in order to increase matching
of the first web screen shot and the second web screen shot.
[0008] Additionally, in an exemplary method, a webpage regression
testing method comprises capturing, by an automatic test tool, a
first web screen shot of a webpage, implementing a webpage update
to the webpage, and capturing, by the automatic test tool, a second
web screen shot of the webpage. A visual comparator receives the
first web screen shot and the second web screen shot from the
automatic test tool. The regression testing method further includes
comparing, by the visual comparator, characteristics of the first
web screen shot and the second web screen shot, marking different
characteristics between the first web screen shot and the second
web screen shot, and generating a report of the marked different
characteristics. The comparing of the first web screen shot and the
second web screen shot may include comparing visual changes
occurring after the webpage update.
[0009] Furthermore, the webpage regression testing method may
include comparing a first rectangular area of the first web screen
shot to a second rectangular area of the second web screen shot,
and comparison shifting the first rectangular area and the second
rectangular area and determining the percentage difference. It may
also include determining the rectangular size of the first
rectangular area and the second rectangular area, wherein the
determining the rectangular size comprises performing a
pixel-to-pixel comparison of the first web screen shot to the
second web screen shot, and forming a rectangular size around a
grouping of pixel discrepancies. To achieve the comparison, the
virtual comparator may include performing iterations of the
comparison shifting of the first rectangular area and the second
rectangular area until a match is made, and marking the differences
in the second web screen shot for rectangular areas for which a
match is not found. Furthermore, the automatic test tool may be a
commercial off the shelf (COTS) software program. Correspondingly,
the visual comparator may be a Java application programming
interface (API). Furthermore, the process may include configuring
parameters to optimize performance of the visual comparator.
[0010] Further features and advantages of the present disclosure as
well as the structure and operation of various embodiments are
described in detail below with reference to the accompanying
drawings.
BRIEF DESCRIPTION OF THE DRAWINGS
[0011] A more complete understanding of the present disclosure may
be derived by referring to the detailed description and claims when
considered in connection with the Figures, wherein like reference
numbers refer to similar elements throughout the Figures, and:
[0012] FIG. 1 is an overview of an exemplary system for webpage
regression testing, in accordance with various embodiments of the
present disclosure;
[0013] FIG. 2 is a flowchart illustrating one exemplary process of
webpage regression testing;
[0014] FIG. 3 illustrates a first web screen shot, according to an
exemplary embodiment;
[0015] FIG. 4 illustrates a second web screen shot, according to an
exemplary embodiment;
[0016] FIG. 5 illustrates an exemplary embodiment of a second web
screen shot with marked differences and suggestions;
[0017] FIG. 6 is an exemplary report of marked different
characteristics between the first web screen shot and the second
web screen shot, according to an embodiment of the present
disclosure; and
[0018] FIG. 7 is a block diagram of an exemplary embodiment of a
computer system.
DETAILED DESCRIPTION
[0019] The detailed description of exemplary embodiments herein
makes reference to the accompanying drawings and figures, which
show the exemplary embodiments by way of illustration only. While
these exemplary embodiments are described in sufficient detail to
enable those skilled in the art, it should be understood that other
embodiments may be realized and that logical and mechanical changes
may be made without departing from the spirit and scope of the
disclosure. It will be apparent to a person skilled in the
pertinent art that this disclosure can also be employed in a
variety of other applications. Thus, the detailed description
herein is presented for purposes of illustration only and not of
limitation. For example, the steps recited in any of the method or
process descriptions may be executed in any order and are not
limited to the order presented.
[0020] For the sake of brevity, conventional data networking,
application development and other functional aspects of the systems
may not be described in detail herein. Furtheituore, the connecting
lines shown in the various figures contained herein are intended to
represent exemplary functional relationships and/or physical
couplings between the various elements. It should be noted that
many alternative or additional functional relationships or physical
connections may be present in a practical system.
[0021] The present disclosure is described herein with reference to
block diagrams and flowchart illustrations of methods, and computer
program products according to various aspects. It will be
understood that each functional block of the block diagrams and the
flowchart illustrations, and combinations of functional blocks in
the block diagrams and flowchart illustrations, respectively, can
be implemented by computer program instructions.
[0022] These computer program instructions may be loaded onto a
general purpose computer, special purpose computer, or other
programmable data processing apparatus to produce a machine, such
that the instructions that execute on the computer or other
programmable data processing apparatus create means for
implementing the functions specified in the flowchart block or
blocks. These computer program instructions may also be stored in a
computer-readable memory that can direct a computer or other
programmable data processing apparatus to function in a particular
manner, such that the instructions stored in the computer-readable
memory produce an article of manufacture including instruction
means which implement the function specified in the flowchart block
or blocks. The computer program instructions may also be loaded
onto a computer or other programmable data processing apparatus to
cause a series of operational steps to be performed on the computer
or other programmable apparatus to produce a computer-implemented
process such that the instructions which execute on the computer or
other programmable apparatus provide steps for implementing the
functions specified in the flowchart block or blocks.
[0023] Accordingly, functional blocks of the block diagrams and
flow diagram illustrations support combinations of means for
performing the specified functions, combinations of steps for
performing the specified functions, and program instruction means
for performing the specified functions. It will also be understood
that each functional block of the block diagrams and flowchart
illustrations, and combinations of functional blocks in the block
diagrams and flowchart illustrations, can be implemented by either
special purpose hardware-based computer systems which perform the
specified functions or steps, or suitable combinations of special
purpose hardware and computer instructions. Further, illustrations
of the process flows and the descriptions thereof may make
reference to user windows, web pages, websites, web forms, prompts,
etc. Practitioners will appreciate that the illustrated steps
described herein may comprise in any number of configurations
including the use of windows, web pages, hypertexts, hyperlinks,
web forms, popup windows, prompts and/or the like. It should be
further appreciated that the multiple steps as illustrated and
described may be combined into single web pages and/or windows but
have been expanded for the sake of simplicity. In other cases,
steps illustrated and described as single process steps may be
separated into multiple web pages and/or windows but have been
combined for simplicity.
[0024] "Testing professional" may include any individual, user,
employee, contractor, group, and/or other entity that creates,
revises, tests, implements, or modifies software and/or hardware
related to the visual comparator and associated components.
[0025] "Web construction logic"--may include an understanding of
how a web page is constructed or rendered, such as a web page being
constructed using rectangular building blocks and each element on
page is rendered as rectangle.
[0026] "Pixel discrepancies"--may denote differences in the value
of Red, Green, Blue and/or Alpha between pixels at same location in
two images
[0027] The present disclosure is now described in terms of an
exemplary system, in which various embodiments would be
implemented. It will be apparent to one skilled in the relevant
art(s) that the above disclosure has been described by way of
illustration and not limitation, and may be implemented in
alternate embodiments.
[0028] FIG. 1 is an overview of an exemplary computer-based system
100 for regression testing, in accordance with various embodiments
of the present disclosure. Computer-based system 100 includes a
testing tool 102 and a visual comparator 104. Testing tool 102 and
visual comparator 104 may be programmatically coupled to each other
directly, through a network, or both.
[0029] Testing tool 102 tests quality and/or reliability of
software applications. In one example implementation, testing tool
102 may include a testing module 120 and a webpage capture module
122. Testing module 120 may be an automatic testing tool, such as a
regression testing tool. In one embodiment, testing module 120
performs regression testing to identify errors (e.g., software
regression) in functionalities of the software applications
underlying the webpages, after incorporating modifications/updates
to the software applications. Examples of such
modifications/updates include functional enhancements, upgrades,
configuration changes, patches, and/or the like. In one example
implementation, testing module 120 launches a browser and executes
test cases for the web applications. In one example, testing module
120 discussed herein can be a commercial off the shelf (COTS)
software program such as a QuickTestProfessional (QTP.RTM.),
Selenium.RTM. and/or the like. Alternatively, testing module 120
may be proprietary software developed for performing regression
testing.
[0030] Webpage capture module 122 captures screen shots of web
pages under test and may pass the screen shots to visual comparator
104 as images. In one example implementation, webpage capture
module 122 may be an image capturing tool. Although webpage capture
module 122 is described as a part of testing tool 102, one skilled
in art can appreciate that webpage capture module 122 can be a
separate unit programmatically coupled to testing tool 102.
Alternatively, webpage capture module 122 may be integrated with
visual comparator 104. Webpage capture module 122 captures a first
screen shot of a webpage before a webpage update and a second web
screen shot of the webpage after a webpage update.
[0031] Although, the disclosure describes testing tool 102 and
visual comparator 104 as separate units, one skilled in art can
appreciate that testing tool 102 and visual comparator 104 can be
modified to be included in a single tool. In one example
implementation, testing tool 102 and visual comparator 104 may be
implemented in a single device. Alternatively, testing tool 102 and
visual comparator 104 may be implemented in different devices and
coupled to each other through a network, for example, an intranet,
a Local Area Network (LAN), Internet or the like.
[0032] Visual comparator 104 performs webpage regression testing on
the captured web screen shots. The webpage regression testing may
include comparison of at least two captured web screen shots to
identify and mark the differences in characteristics between the
web screen shots caused due to a webpage update. Visual comparator
104 can identify and differentiate texts (glyphs representing
characters in the images), font of the text, color of texts, font
styles, missing values, numbers and/or the like in the web screen
shots. Furthermore, visual comparator 104 can also identify change
in component location, size, color, shape and/or the like in the
web screen shots. For example, visual comparator 104 can identify
similar images in the web screen shots placed at different
location, having a different size and different colors.
Additionally, visual comparator 104 can mark the differences in the
web screen shot with suggestions for modifications. Furthermore,
visual comparator 104 can also generate a report and a difference
image illustrating the changes. In one example, visual comparator
104 may be implemented in Java using a Java Advanced Imaging
application programming interface (API) to perform comparison
between at least two captured web screen shots, and to generate a
difference image, a result image and the report. In other examples,
visual comparator 104 can be implemented using other platforms
and/or languages. Examples of other platforms and/or languages
include C, C++, .Net, PHP. Visual Basic, Visual C, and/or the
like.
[0033] In one embodiment, visual comparator 104 may include a
receiving module 130, a comparison module 132, a marking module
134, a suggestion module 136, an image creation module 138, and a
report module 140, or a combination of these modules.
[0034] Receiving module 130 receives the first web screen shot and
the second screen shot from webpage capture module 122. Comparison
module 132 compares characteristics of the first web screen shot
and the second web screen shot. Examples of the characteristics
used by comparison module 132 may include at least one of color,
content, element positioning, element size, transparency, font
family, font size, font weight, font decoration (underline,
strikethrough, etc) and/or the like. Comparison module 132 may
perform the comparison using various techniques or combinations of
various techniques, for example, using a pixel comparison technique
and web analysis technique. In one example implementation,
comparison module 132 may perform pixel to pixel comparison between
the first web screen shot and the second web screen shot.
Comparison module 132 may determine areas having pixel
discrepancies in the first web screen shot and the second web
screen shot. In one embodiment, comparison module 132 may group
pixel discrepancies in smaller, related but separate areas. For
example, comparison module 132 may identify one or more sets of
pixel discrepancies belonging to a particular characteristic or
element such as a text (glyph), an image and/or the like. Further,
comparison module 132 may recognize each of the sets of the pixel
discrepancies as distinct groups (hereinafter referred to as
"groups"). More specifically, discrepancies may be grouped together
based on the similarity of pixel discrepancies (e.g., color
difference, transparency difference, magnitude of color difference,
etc.) as well as the distance between pixels. Pixels with similar
discrepancies and closer to each other may be grouped together.
Although one example is provided herein for describing grouping,
other forms of grouping are contemplated.
[0035] Further, comparison module 132 may form a first rectangular
area encompassing, at least in part, a group of pixel discrepancies
in the first web screen shot. Similarly, comparison module 132 may
form a second rectangular area in the second web screen shot. In
one embodiment, dimensions of second rectangular area may be same
as the dimensions of the first rectangular area. In alternate
embodiment, the dimensions of the second rectangular area may be
different from the dimensions of the first rectangular area. Also,
in one example implementation, comparison module 132 may allow a
user to set a size of the first and second rectangular areas.
Although, use of rectangular area is described herein for
encompassing pixel areas, other forms of geometric/non-geometric
shapes for encompassing pixel areas have been contemplated.
[0036] Comparison module 132 compares the first rectangular area
and the second rectangular area. In one example implementation,
comparison module 132 may use a pixel comparison method alone or in
combination with web construction logic, to compare the first
rectangular area and the second rectangular area. Comparison module
132 may perform pixel to pixel comparison between the first
rectangular area and the second rectangular area. Comparison module
132 may identify content, such as for example, texts (glyphs
representing characters in the images), font of the text, color of
texts, font styles, missing values, numbers and/or the like in the
first and the second web screen shots. Comparison module 132 may
also perform content to content comparison to identify similar
content with varying characteristics. For example, comparison
module 132 may perform comparison between the texts of the
rectangular areas to determine similarities or differences in
content.
[0037] Comparison module 132 may also calculate percentage
difference based upon the comparison. For example, the percentage
difference may be calculated as a ratio, represented in
percentages, of the number of pixels in discrepancy to the total
number of pixels encompassed by the first rectangular area. Such
combination of comparison techniques not only helps identifying
similar content, but also helps identifying difference in
characteristics. For example, comparison module 132 may identify
the rectangular areas having the same text but different font
and/or color.
[0038] In response to a successful match, comparison module 132
identifies locations of the first and second rectangular areas and
places location information in memory. Otherwise, comparison module
132 shifts the position of the at least one of the first
rectangular area or the second rectangular area to another location
having pixel discrepancies in the corresponding screen shots and
performs the comparison. In one example, comparison module 132 may
shift the position of the second rectangular area to another area
comprising pixel discrepancies of the second web screen shot while
keeping the position the first rectangular area the same. In
another example, comparison module 132 may shift the position of
the first rectangular area to another area comprising pixel
discrepancies of the first web screen shot while keeping the
position the second rectangular area the same.
[0039] Comparison module 132 continues to perform shifting and
comparison for all areas comprising pixel discrepancies in the
first web screen shot and/or in the second web screen shot or until
a match is found. In response to a successful match, comparison
module 132 determines the locations of the first rectangular area
and the second rectangular area as the locations of match and
places the location information in memory.
[0040] In case of failure to find a match, comparison module 132
may modify the dimensions of at least one of the first rectangular
area and the second rectangular area, and continues to perform the
comparison, and shifting and comparing operation as described
above. In one embodiment, modification of dimensions may be based
on web construction logic and/or grouping of pixel discrepancies.
For example, comparison module 132 may identify similar grouping
pixels based on a characteristic, such as grouping based on image
content or text and/or the like using web construction logic. Using
the grouping information, comparison module 132 may identify
similar groups in other web screen shots and may modify the
dimensions of one of the first and the second rectangular areas.
For example, comparison module 132 may modify the dimension of the
first or the second rectangular area comprising a similar image in
one of the screen shots based on dimension of similar group
comprising an image in another screen shot. In response to a
successful match, comparison module 132 may identify the locations
of the first rectangular area and the second rectangular area, as
the locations of match and place location information in memory.
This method of comparison enables identification of similar content
with different sizes. For example, comparison module 132 can
identify the same image having different sizes in the same or
different locations in the web screen shots.
[0041] If this process ends without finding a match, comparison
module 132 may conclude that there is no match or an element is
missing, according to one embodiment. The above mentioned
comparison method performed by the comparison module 132 is
described in at least one part for one group of pixel discrepancy.
The above mentioned method may be iterated for remaining parts of
the same pixel group and other pixel groups in the web screen
shots.
[0042] Based upon the comparison, marking module 134 marks
differences in the characteristics between the first web screen
shot and the second web screen shot. Marking module 134 may mark
the location comprising differences in characteristics. For
example, marking module 134 may mark a rectangular boundary around
areas having pixel discrepancies. In one embodiment, marking module
134 may mark boundaries around identified distinct groups. Marking
module 134 may be a graphical tool to visually create an impression
around a boundary of different characteristics. Marking module 134
may mark the differences either in the first web screen shot or the
second web screen shot or both.
[0043] Suggestion module 136 provides one or more suggestions to
increase matching between the first web screen shot and the second
web screen shot. Suggestion module 136 may use results of pixel
comparison alone or in combination with the comparison method or
web page construction logic to identify structural changes that can
be performed on the second web screen shot to make the second web
screen shot visually consistent with the first web screen shot. In
one embodiment, comparison module 132 uses image region recognition
techniques to identify underlying rectangular areas. According to
one example, suggestion module 136 may suggest to relocate a
webpage component, such as a form field, an image, a link, a text
box and/or the like, from one position to another position. In
another example, suggestion module 136 may suggest to add an image,
remove an image, resize an image and/or the like. In yet another
example, suggestion module 136 may suggest changing a font type, a
font color, a font size, font content, and/or the like.
[0044] Image creation module 138 generates a result image having
the differences between the first web screen shot and the second
web screen shot. In one example implementation, image creation
module 138 generates a replica of the differences alone in the
result image.
[0045] Report module 140 generates a report of the marked different
characteristics between the first web screen shot and the second
web screen shot. In one example implementation, the report may be
generated in a Hyper Text Markup Language (HTML) document, though
the report may be generated in any other suitable document formats.
The report may include information about the web pages for which
webpage regression testing was performed, the result of webpage
regression testing, locations of differences in characteristics,
comments, hyperlink to the marked second web screen shot, and/or
the like. In one example, the report may include fields, such as a
record ID field, a differences field, a location of differences
field, a result image field, a comment field and/or the like,
providing details of webpage regression testing results.
[0046] Visual comparator 104 may further include at least one
interface such as, for example, a command line interface (CLI), and
graphical user interface (GUI) for the testing professional to
configure various parameters to optimize performance thereof. One
such parameter may be a dimension for comparison area (e.g.,
rectangular area). Another parameter may be maximum number of
iterations that may performed by visual comparator 104 to ascertain
a match between the first web page screen shot and the second web
page screen shot.
[0047] Computer-based system 100 as described herein may be a data
processing system such as, for example, a server, any suitable
personal computer, network computer, workstation, minicomputer,
mainframe or the like. Those skilled in art can appreciate that
computer-based system 100 includes an operating system (e.g.,
Windows NT, 95/98/2000, OS2, UNIX, Linux, Solaris, MacOS, etc.) as
well as various conventional support software and drivers typically
associated with server/computer. Computer-based system 100 also
includes one or more browsers (e.g., Internet Explorer.RTM.,
Mozilla Firefox.TM., etc.) to display web pages. Computer-based
system 100 may also include a database (not shown) to store web
screen shots, corresponding web pages, web construction logic,
results of webpage regression testing, result images, difference
images and reports.
[0048] Furthermore, computer readable instructions of corresponding
modules and tools may be loaded onto a general purpose computer,
special purpose computer, or other programmable data processing
apparatus to produce a machine, such that the instructions that
execute on the computer or other programmable data processing
apparatus create means for implementing the functions specified in
the flowchart block or blocks. These computer program instructions
may also be stored in a computer-readable memory that can direct a
computer or other programmable data processing apparatus to
function in a particular manner, such that the instructions stored
in the computer-readable memory produce an article of manufacture
including instruction means which implement the function specified
in the flowchart block or blocks. The computer program instructions
may also be loaded onto a computer or other programmable data
processing apparatus to cause a series of operational steps to be
performed on the computer or other programmable apparatus to
produce a computer-implemented process such that the instructions
which execute on the computer or other programmable apparatus
provide steps for implementing the functions specified in the
flowchart block or blocks.
[0049] FIG. 2 is a flowchart illustrating an exemplary process 200
for webpage regression testing, according to an embodiment of the
present disclosure. In one embodiment, a computer-based system,
such as computer-based system 100, performs various steps in
process 200. In step S202, computer-based system 100 captures a
first web screen shot of a webpage before performing an update to
underlying web application. In step S204, computer-based system 100
implements a webpage update to the webpage. Computer-based system
100 may implement the webpage update as a part of a process of web
application modification. In response to updating the webpage,
computer-based system 100 captures a second web screen shot of the
webpage in step S206. In one implementation, the first web screen
shot and the second web screen shot are saved as images.
[0050] In step S208, the characteristics of the first web screen
shot and the second web screen shot are compared to identify visual
changes occurring as a result of the webpage update. The
characteristics include color, content, element positioning,
element size, transparency, font family, font size, font weight,
font decoration (underline, strikethrough, etc.) and/or the like.
Computer-based system 100 uses various techniques including a pixel
comparison technique and web construction technique to perform
characteristics comparison as described with respect to FIG. 1.
[0051] In response to completion of comparing characteristics of
the first web screen shot and the second web screen shot,
computer-based system 100, in step S210, marks the boundaries of
one or more groups of pixels having pixel discrepancies, as a
difference. In step S212, computer-based system 100 provides
suggestions to modify the web page associated with the web screen
shot to increase a match in visual appearance of the second web
screen shot to the first web screen shot. For example,
computer-based system 100 may suggest a change in font color for a
text in a marked part of web screen shot, to match a font color of
a text in a corresponding location of another web screen shot. In
one exemplary implementation, the suggestions may be provided on
the second web screen shot at locations of markings. Process 200
may perform multiple iterations between step S210 and step S212,
with each iteration improving the match between the first web
screen shot and the second web screen shot. In step S214,
computer-based system 100 generates a report of marked different
characteristics between the first web screen shot and the second
web screen shot. In one exemplary implementation, the report is in
HTML format. A person skilled in the art will appreciate that any
other suitable format may also be used to generate the report.
[0052] While the steps outlined above represent a specific
embodiment, practitioners will appreciate that there are any number
of computing algorithms and user interfaces that may be applied to
create similar results. The steps are presented for the sake of
explanation only and are not intended to limit the scope in any
way.
[0053] In an exemplary embodiment and with reference to FIG. 3, a
first web screen shot 300 of a credit card application form is
presented. The exemplary application form includes various data
fields, such as, first name, last name, address, date of birth,
phone number, email address, date of birth, annual income and/or
the like, to enable a user to enter corresponding information.
Furthermore, the application form may also include one or more
checkboxes and/or radio buttons allowing the user to select various
options.
[0054] In one example, one or more web applications underlying the
first webpage may be modified to accommodate business requirements,
security policies, customer policy, regulatory compliance issues,
and/or the like. Updating in the web applications may result in
visual changes to the webpage corresponding to first web screen
shot 300. For example, a webpage update may render a webpage with
changes in the location of webpage elements, change in fonts,
missing values, change in values, and/or the like. Webpage capture
module 122 captures a screen shot (i.e. the second web screen shot)
of the updated webpage. An example of a second web screen shot 400
is shown in FIG. 4, according to one embodiment. In the current
example, the webpage update has rendered few changes in visual
appearances in the webpage. The differences in characteristics in
the second web screen shot in comparison with characteristics in
the first web screen shot are marked by marking module 134. An
example screen shot of a marked second web screen shot 500 is
illustrated in FIG. 5. The markings illustrate visual changes as a
result of the webpage update. In current example, there are six (6)
changes that are identified and marked by visual comparator 104 in
the process of webpage regression testing.
[0055] As shown in FIG. 5, a difference characteristic may be
marked by drawing a rectangle around a location on second web
screen shot 400 corresponding to the difference characteristic. A
person skilled in the art will appreciate that drawing a rectangle
is only exemplary way of marking the difference characteristics and
any other suitable technique, for example, drawing a circle around
the difference characteristics, highlighting the area in a visible
manner, pointing an arrow to the difference characteristics and/or
the like, may be used instead of or in addition to it. In the
current example, marked second web screen shot 500 shows six
difference characteristics 502-512. Further, as shown, marked
second web screen shot 500, may also optionally include suggestions
corresponding to the marked difference characteristics provided by
suggestion module 136.
[0056] Difference characteristic 502 indicates a shift in position
of a starting point of the webpage after the webpage update.
Marking module 134 may draw a rectangle around the area where the
shift has occurred. Also, in a first embodiment, marking module 134
may mark the difference characteristic using a suitable label to
enable the testing professional to identify a type of difference
characteristic, as illustrated here with label "shift". Further, in
a second embodiment, a corresponding suggested modification or
action may be provided to the testing professional. For example,
suggesting the testing professional perform a vertical shift of the
second web screen shot to compensate for the shift in position
consistent with the position of the first web screen shot.
[0057] Difference characteristic 504 indicates a change in font
style of a text after the webpage update. In the current example,
the font style has changed from normal text to bolded text. Marking
module 134 may draw a rectangle around the text of which the font
style has changed. Also, marking module 134 may mark the difference
with a label "style change". A suggestion is provided to perform a
font style change to keep the font style consistent with the first
web screen shot.
[0058] Difference characteristic 506 indicates a change in value
after the webpage update. In the current example, the value has
changed from 21 to 15. Marking module 134 may draw a rectangle
around the changed value. Also, marking module 134 may mark the
difference with a label "value change". In addition, a suggestion
is provided to change the value to be consistent with the value in
the first web screen shot. In an exemplary embodiment, a value may
be any alphanumeric value.
[0059] Difference characteristic 508 indicates a change in font
color after the webpage update. In the current example, the color
of the font has changed from black to blue. Marking module 134 may
draw a rectangle around the text of which the color has changed
indicating the difference with a label "color change". In addition,
a suggestion is provided to change the color of the text to a color
that is consistent with the color of the text in first web screen
shot.
[0060] Difference characteristic 510 indicates a missing value
after the webpage update. Marking module 134 may draw a rectangle
around the area in which a missing value was identified. Marking
module 134 may mark to indicate the difference with a label "value
missing". In addition, a suggestion is provided requesting a value
that is consistent with the value of first web screen shot.
[0061] Difference characteristic 512 indicates a difference in the
button selection after the webpage update. Marking module 134 may
draw a rectangle around the radio buttons in which a discrepancy
was identified, and indicate the difference with a label "button
selection change". In addition, a suggestion is provided to change
the button selection to one that is consistent with the selection
of first web screen shot.
[0062] FIG. 6 illustrates an exemplary report 600 of the different
characteristics between the first web screen shot and the second
web screen shot, according to an embodiment of the present
disclosure. In one exemplary implementation, report 600 includes a
table having various rows, where each row corresponds to one set of
tested webpage screen shots. For each tested set of screen shots,
report 600 may include a record ID field 602, a found differences
field 604, a differences field 606, a result image field 608, and a
comment field 610.
[0063] Record ID field 602 lists identification of web pages
corresponding to the screen shots for which the webpage regression
test is performed. For example, "Newmember_enroll_app" in second
row may be an ID of webpages underlying the screen shots
illustrated in FIG. 3 and FIG. 4. Found differences field 604 lists
information indicating whether there were any changes after the
webpage update. In the current example, found difference field 604
illustrates a Boolean value "true" indicating that the webpage
having record ID "Newmember_enroll_app" had changes after the
webpage update. Differences field 606 lists the positions of the
differences found in the second web screen shot in comparison with
the first web screen shot. In the current example,
"java.awt.Rectangle [x=0, y=2369, width 60, height=10]" indicates
location of one of the differences, in terms of image coordinates,
that was found in the second web screen shot after webpage update.
Result image field 608 provides a miniature result image
illustrating locations of changes and markings on the second web
screen shot. In one exemplary implementation, the miniature result
image may be embedded with a hyperlink, which when clicked provides
a result webpage screen shot having marked difference
characteristics. Comment field 610 lists comments such as number of
changes, suggestions and/or the like associated with the particular
webpage. Similar to the second row, a third row illustrates a
result of webpage regression testing for a record bearing record ID
"Confirmation_credit_app" associated with webpages underlying
screen shots. The fourth row illustrates a result of webpage
regression testing for a record bearing a record ID
"Service_upgrade_credit_app". The webpage regression testing did
not find any differences between web screen shots corresponding to
"Service_upgrade_credit_app". Thus, the fields: found differences
604, differences 606, and result image 608, corresponding to the
"Service_upgrade_credit_app" shows false, NA and a miniature empty
image respectively.
[0064] Benefits, other advantages, and solutions to problems have
been described herein with regard to specific embodiments. However,
the benefits, advantages, solutions to problems, and any element(s)
that may cause any benefit, advantage, or solution to occur or
become more pronounced are not to be construed as critical,
required, or essential features or elements of any or all the
claims. It should be understood that the detailed description and
specific examples, indicating exemplary embodiments, are given for
purposes of illustration only and not as limitations. Many changes
and modifications within the scope of the instant disclosure may be
made without departing from the spirit thereof, and includes all
such modifications. Corresponding structures, materials, acts, and
equivalents of all elements in the claims below are intended to
include any structure, material, or acts for performing the
functions in combination with other claim elements as specifically
claimed. The scope should be determined by the appended claims and
their legal equivalents, rather than by the examples given above.
Reference to an element in the singular is not intended to mean
"one and only one" unless explicitly so stated, but rather "one or
more." Moreover, where a phrase similar to at least one of A, B,
and C is used in the claims, it is intended that the phrase be
interpreted to mean that A alone may be present in an embodiment, B
alone may be present in an embodiment, C alone may be present in an
embodiment, or that any combination of the elements A, B and C may
be present in a single embodiment; for example, A and B, A and C, B
and C, or A and B and C.
[0065] The present disclosure (i.e., computer-based system 100,
visual comparator 104, process 200, any part(s) or function(s)
thereof) may be implemented using hardware, software or a
combination thereof, and may be implemented in one or more computer
systems or other processing systems. However, the manipulations
performed by the present disclosure were often referred to in
terms, such as comparing or checking, which are commonly associated
with mental operations performed by a human operator. No such
capability of a human operator is necessary, or desirable in most
cases, in any of the operations described herein. Rather, the
operations are machine operations. Useful machines for performing
the operations may include general-purpose digital computers or
similar devices.
[0066] In fact, an exemplary embodiment may be directed towards one
or more computer systems capable of carrying out the functionality
described herein.
[0067] Computer system 700 includes at least one processor, such as
a processor 702. Processor 702 is connected to a communication
infrastructure 704, for example, a communications bus, a cross over
bar, a network, and/or the like. Various software embodiments are
described in terms of this exemplary computer system 700. After
reading this description, it will become apparent to a person
skilled in the relevant art(s) how to implement the present
embodiments using other computer systems and/or architectures.
[0068] The computer system 700 includes a display interface 706
that forwards graphics, text, and other data from the communication
infrastructure 704 for display on a display unit 708.
[0069] The computer system 700 further includes a main memory 710,
such as random access memory (RAM), and may also include a
secondary memory 712. The secondary memory 712 may further include,
for example, a hard disk drive 714 and/or a removable storage drive
716, representing a floppy disk drive, a magnetic tape drive, an
optical disk drive, etc. The removable storage drive 716 reads from
and/or writes to a removable storage unit 718 in a well known
manner. The removable storage unit 718 may represent a floppy disk,
magnetic tape or an optical disk, and may be read by and written to
by the removable storage drive 716. As will be appreciated, the
removable storage unit 718 includes a computer usable storage
medium having stored therein, computer software and/or data.
[0070] In accordance with various embodiments, the secondary memory
712 may include other similar devices for allowing computer
programs or other instructions to be loaded into the computer
system 700. Such devices may include, for example, a removable
storage unit 720, and an interface 722. Examples of such may
include a program cartridge and cartridge interface (such as that
found in video game devices), a removable memory chip (such as an
erasable programmable read only memory (EPROM), or programmable
read only memory (PROM)) and associated socket, and other removable
storage unit 720 and interfaces 722, which allow software and data
to be transferred from the removable storage unit 720 to the
computer system 700.
[0071] The computer system 700 may further include a communication
interface 724. The communication interface 724 allows software and
data to be transferred between the computer system 700 and external
devices. Examples of the communication interface 724 include, but
may not be limited to a modem, a network interface (such as an
Ethernet card), a communications port, a Personal Computer Memory
Card International Association (PCMCIA) slot and card, and/or the
like. Software and data transferred via the communication interface
724 are in the form of a plurality of signals, hereinafter referred
to as signals 726, which may be electronic, electromagnetic,
optical or other signals capable of being received by the
communication interface 724. Signals 726 are provided to the
communication interface 724 via a communication path (e.g.,
channel) 728. The communication path 728 carries the signals 726
and may be implemented using wire or cable, fiber optics, a
telephone line, a cellular link, a radio frequency (RF) link and
other communication channels.
[0072] In this document, the terms "computer program medium" and
"computer usable medium" are used to generally refer to media such
as the removable storage drive 716, a hard disk installed in hard
disk drive 714, signals 726, and/or the like. These computer
program products provide software to the computer system 700. The
present disclosure is directed to such computer program
products.
[0073] Computer programs (also referred to as computer control
logic) are stored in the main memory 710 and/or the secondary
memory 712. Computer programs may also be received via the
communication infrastructure 704. Such computer programs, when
executed, enable the computer system 700 to perform the features as
discussed herein. In particular, the computer programs, when
executed, enable the processor 702 to perform the features of the
various embodiments. Accordingly, such computer programs represent
controllers of the computer system 700.
[0074] In accordance with an embodiment implemented using a
software, the software may be stored in a computer program product
and loaded into the computer system 700 using the removable storage
drive 716, the hard disk drive 714 or the communication interface
724. The control logic (software), when executed by the processor
702, causes the processor 702 to perform the functions as described
herein.
[0075] Another embodiment may be implemented primarily in hardware
using, for example, hardware components such as application
specific integrated circuits (ASIC). Implementation of the hardware
state machine so as to perform the functions described herein will
be apparent to persons skilled in the relevant art(s).
[0076] In yet another embodiment, an exemplary embodiment is
implemented using a combination of both the hardware and the
software.
[0077] While various embodiments have been described above, it
should be understood that they have been presented by way of
example, and not limitation. It will be apparent to persons skilled
in the relevant art(s) that various changes in form and detail can
be made therein without departing from the spirit and scope of the
present disclosure. Thus, the present disclosure should not be
limited by any of the above described exemplary embodiments, but
should be defined only in accordance with the following claims and
their equivalents.
[0078] In addition, it should be understood that the figures
illustrated in the attachments, which highlight the functionality
and advantages, are presented for example purposes only. The
architecture is sufficiently flexible and configurable, such that
it may be utilized (and navigated) in ways other than that shown in
the accompanying figures.
* * * * *