Abstract: System and method for conducting localization testing of a globalized software product for enhancing the quality of said localization testing is described. The system and method comprises of capturing data of one or more controls of the application in a base locale for the selected user interfaces; identifying format specifications of the controls using the captured data; aggregating the captured data and the format specifications and storing said aggregated data; generating code using the stored data for executing it in one or more target locales; capturing application data in one or more target locales; and verifying the captured data against the format specifications and predefined parameters during execution of the base locale.
THE PATENTS ACT, 1970
(39 OF 1970)
AND
THE PATENTS RULES, 2003
(As Amended)
COMPLETE SPECIFICATION
(See section 10; rule 13)
"System and Method for Conducting Localization Testing of User Interface
Applications"
HCL Technologies Ltd., a corporation organized and existing under the laws of India, of No. 8, MTH Road, Ambattur Industrial Estate, Chennai-600 058 Tamil Nadu India.
The following specification particularly describes the nature of this invention and the manner
in which it is to be performed:
Technical Field
The present invention relates to a software testing tool and more particularly to a system and method for conducting localization testing of a globalized software product for enhancing the quality of said localization testing.
Background
The user interface of a software application distributed internationally requires several versions of its user interface to conform to different locales. The process of creating these different versions from a source version is called localization. It is a process to translate the locale of an application into a different locale, especially while maintaining the look and feel of the application. Localization requires more than a mere substitution of character strings in the visual resources (menus, dialog boxes, titles, toolbars, and the like) to convert from the source to a target locale. For example, translated visual resources must be modified to account for varying lengths of the character strings representing a word or phrase which can change substantially between two languages.
A vast majority of the problems associated with localized products are attributed to "visual bugs." These visual bugs include such things as overlapped controls, truncated text on a control, and alignment errors. To manually check each visual resource of an application converted to a target language requires extensive resources and is costly and time consuming. The localized software must be tested for functionality and interoperability to verify that the localization process has been successful, and that the program operates without problem in the local language. The process for testing a localized computer program is also referred to as "Localization testing" . Localization testing has been traditionally carried out by visual comparison of two instances of the application executed simultaneously.
2
One of the instances of the application will be in the developer's language/locale and the other instance in the language/locale that needs to be tested. And this activity is most likely executed by the linguistic personnel from a particular locale for which the application needs to be tested. This process is slow/time consuming and may involve human errors. Also localization testing is performed only after the completion of a product; this also leads to identification of the bugs (if any) at the later stage, when the functional testing has also been conducted and proves to be very expensive. There are various approaches / tools available in market for automation of localization testing but they partially address the problem scenario. The current process they employ is to do a recording of the application in a source locale and play back in the target locale. The recording is generally done in the locale subject to tester comfort and playback is done in target locale. The verification of the above attributes described is done by manual inspection. The automation of verification achieved by them is partial and involves huge efforts as they tend to have custom scripts written, which again needs to be subjected to quality tests themselves and also reducing human errors.
The steadily increasing cost of testing has created a more urgent need for advancements in testing technology. Standard software testing tools include bug tracking databases, code coverage analyzers, and script automation systems. These tools have a number of inherent limitations. For instance, significant manual programming skills are required for many existing tools to be used effectively. Code coverage analyzers, generally provide little more than an abstract score of coverage, unless test personnel have sufficient knowledge and experience to analyze the code that was not covered and to create new test cases to execute that code. Consequently, software developers are sometimes forced to hire test personnel having substantial programming experience, which is often difficult. As a result, the overall cost of testing increases, which causes the overall cost of the
3
product to increase. Another problem with existing software testing tools is that they are not integrated. In other words, existing tools are point solutions which do not provide any effective combined solution covering different phases of the testing process. Most notably, existing tools do not provide an integrated, automated solution to the processes of designing, coding, and debugging tests.
There are various systems and methods devised for conducting localization testing of a globalized software product.
US 2005/0278728 disclose the tools for recording input from user actions in a user interface and replicating the UI activity on a computing device. When recording and replicating UI activity, these tools improve the readability of the recorded input data and the reliability of the playback. The techniques and tools may be used in combination or separately. For example, a recording tool uses a set of filters which aggregates recorded data into basic, readable primitive methods. The recording tool converts the aggregated data into playback code by converting the playback primitive methods into corresponding computer language instructions. A playback tool then replicate the initial recorded UI activity by playing back the computer language instructions.
US 2006/0005132 disclosed techniques and tools for recording and reliably replicating graphical user interfaces activity for various applications, including applications that have dynamic user interfaces. The techniques and tools may be used in combination or separately. For example, a recording tool receives internal macro data from a GUI based application as opaque tokens, which are embedded into playback code. A playback tool executes the playback code by passing the embedded tokens back to their original application for playback by the application's internal recorder.
4
The above-mentioned documents do not provide an integrated, automated solution to the design, coding, and debugging of tests for software.
The afore-mentioned problems are solved by the instant invention by providing a solution accelerator to enable automated localization testing, to cut down the manual testing cycles and enhance significantly the quality of test results by minimizing the human involvement in testing process. Also, the bugs are identified very quickly for all the language/locale combinations in quite a lesser time compared to the manual testing.
Objects and Summary
The object of the present invention is to provide a system and method for conducting localization testing of a globalized software product by enhancing the quality of the localization testing by minimizing the human efforts involved in testing process.
Another object of the present invention is to provide a system and method for testing any type of software applications/products irrespective of technology/programming language/platforms.
Yet another object of the present invention is to reduce the testing cycle times and to address more than 50 to 70 percent of the localization testing effort.
To achieve the aforementioned objects, the present invention provides a method of conducting localization testing of an application, said method comprising the steps of:
m capturing data of one or more controls of the application in a base locale for the selected user interfaces;
5
H identifying format specifications of the controls using the captured
data; * aggregating the captured data and the format specifications and
storing said aggregated data;
■ generating code using the stored data for executing it in one or more target locales;
■ capturing application data in one or more target locales; and
■ verifying the captured data against the format specifications and predefined parameters during execution of the base locale.
The present invention further provides a system of conducting localization testing of an application, said system comprising of:
■ an input unit for interacting with controls of the application;
■ a processor in communication with the input unit, said processor configured for:
■ capturing data of one or more controls of the application in a
base locale for the selected user interfaces;
H identifying format specifications of the controls using the captured data;
■ aggregating the captured data and the format specifications and storing said aggregated data;
■ generating code using the stored data for executing it in one or more target locales;
■ capturing application data in one or more target locales; and
■ verifying the captured data against the format specifications and predefined parameters during execution of the base locale;
■ memory unit for storing the application instances, format
specification and the verified data in a file(s); and
6
* output unit for displaying the file(s).
Brief Description of the Drawings
The detailed description is described with reference to the accompanying figures. In the figures, the left-most digit(s) of a reference number identifies the figure in which the reference number first appears. The same numbers are used throughout the drawings to reference like features and components.
Fig. 1 is a block diagram of an exemplary operating environment in which the invention can be implemented according to the present invention.
Fig. 2 is a block diagram illustrating various modules of the invention utilized for conducting localization testing according to an embodiment of the present invention.
Fig. 3 is an exemplary flowchart illustrating detailed methodology of conducting localization testing according to the present invention.
Fig. 4.a is a depiction of the interface/form for the user to confirm or change the format specification of each control that was identified by the system according to the present invention.
Fig. 4.b is an exemplary view illustrating the test results of conversion to a Japanese locale according to the present invention.
7
Detailed Description
System and method for conducting localization testing of a globalized software product for enhancing the quality of said localization testing is described. The system and method is not intended to be restricted to any particular form or arrangement, or any specific embodiment, or any specific use, disclosed herein, since the same may be modified in various particulars or relations without departing from the spirit or scope of the claimed invention herein shown and described. The system and/or method shown is intended only for illustration and disclosure of an operative embodiment and not to show all of the various forms or modifications in which this invention might be embodied or operated.
The instant invention provides a system and method for conducting localization testing of multilingual software applications in an automated and efficient way. The method of the instant invention captures the data of the user interface controls of the software application when the user interacts with said controls. The captured data is recorded in a base locale and then played back in a target locale to detect abnormalities or defects related to locale conversion by verifying it against the desired specifications.
The techniques described herein may be used in many different operating environments and systems. An exemplary environment that is suitable for practicing various implementations is discussed in the following section with respect to the accompanying figures.
EXEMPLARY SYSTEM
Fig. 1 is a block diagram of an exemplary operating environment in which the invention can be implemented according to the present invention.
8
The computer system 100 can operate as a standalone device or may be connected, e.g., using a network, to other computer systems or peripheral devices through a network interface 106. The computer system contains a bus 108 where a bus is a set of hardware lines used for data transfer among the components of a computer or processing system. Bus 108 is a shared conduit that connects different elements of a computer system such as processor, storage, memory, input/output interface, network ports etc that enables the transfer of information between the elements. In a networked deployment, the computer system can operate in the capacity of a server or as a client user computer in a server-client user network environment, or as a peer computer system in a peer-to-peer (or distributed) network environment. The computer system 100 can also be implemented as or incorporated into various devices, such as a personal computer (PC), a tablet PC, a set-top box (STB), a personal digital assistant (PDA), a mobile device, a palmtop computer, a laptop computer, a desktop computer, a communications device etc. It can also be implemented using electronic devices that provide voice, video or data communication.
The computer system 100 can include a processor 102, such as, a central processing unit (CPU), a graphics processing unit (GPU), or both. The processor 102 can be one or more general processors, digital signal processors, application specific integrated circuits, field programmable gate arrays, servers, networks, digital circuits, analog circuits, combinations thereof, or other now known or later developed devices for analyzing and processing data.
The computer system 100 can include a memory 116 that can communicate via a bus 108. The memory 116 can be a main memory, a static memory, or a dynamic memory. The memory can include various types of volatile and non-volatile storage media, including but not limited to random access memory, read-only
9
memory, programmable read-only memory, electrically programmable read-only memory, electrically erasable read-only memory, flash memory. The memory 116 can be operable to store instructions executable by the processor 102. The computer system 100 can include external storage 114 which can be magnetic tape or disk, optical media and the like. It can also be database for storing data and can include a hard drive, compact disc ("CD"), digital video disc ("DVD"), memory card, memory stick, floppy disc, universal serial bus ("USB") memory device, or any other device operative to store data. The processing strategies can include multiprocessing, multitasking, parallel processing and the like. The I/O interface 104 connects various input and output devices (e.g. keyboard, mouse, displays, printers, speakers etc.) to the computer system 100. The user can enter commands and information into the computer system through input devices.
EXEMPLARY METHOD
Fig. 2 is a block diagram illustrating various modules of the invention utilized for conducting localization testing according to an embodiment of the present invention.
The modules comprises of recording user interface controls data of an application user interface, preparing format specifications of the controls, combining the data and format specifications, generating playback code, playing the generated code and verifying it against the format specifications. Depending upon the implementation the modules can be added, omitted, split into multiple modules, combined with other modules and/or replaced with like modules.
The Application user interface system is the interface for which localization testing can be done depending upon the user requirements. The user interface offers graphical icons, and visual indicators, as opposed to text-based interfaces,
10
typed command labels or text navigation to fully represent the information and actions available to a user. The actions are usually performed through direct manipulation of the graphical elements. The recording module records the data when the user interacts with the controls/graphical elements in the user interface through keyboard or mouse. In one embodiment, the data can be system generated based on the events occurring in the system. The recording module records the data of the user interactions and the events with the controls in a base locale. The locale is a set of parameters that defines the user's language, country/ region and any special variant preferences that the user wants to see in their user interface. It can be any locale as per the preference of the tester conducting localization testing. The user interactions can be getting or setting a text field, clicking a button, link or menu item, selecting a list item element in a list box, toggling a check box or expanding or collapsing a tree and many more. The recording of data can be done in an object oriented architecture having one or more methods, one or more tasks or action classes.
After the recording, the next module identifies and prepares the format specifications e.g. date format default locale for India dd/mm/yyyy or custom format for all locations as "dd-mmm-yyyy"; currency; etc of the controls in XML, HTML or any other compatible markup language. After identifying, collecting and preparing the format specification(s), the user/tester will be provided and interface (Fig 4.a) to confirm on the identified specifications or make any changes. The format specifications specify the nature and type of data fields/controls that are embedded in the application user interface. The aggregator defines the format specifications for each specification mentioned as 'default' for each of the locale to the XML. This definition of default format specification of each control for each locale resides in a storage like database, XML, etc. The aggregator module then combines the recorded data with the format specifications and the aggregated
11
data can be stored in a sequence or a queue or any other arrangement depending upon the implementation.
The aggregated data is converted into a programming language code, scripting code or other commands or instructions for playback mechanism to perform localization testing. The code generator parses XML file to convert aggregated data into playback code. Once the code is generated, it can be modified, edited, added to or deleted from. The code generator generates playback code in a sequence that represents user actions and events that can be played by a playback module.
Once the code is generated, it can be played back by the playback module in target locale to test the application. According to an embodiment of the invention, same playback code can be repeated with multiple locales to get the validation across 'n' number of locales. The playback module reads and interprets playback code and can be configured to indicate how the playback can be done. The application data can be captured in the target locale and validation can be done against the format specifications that are defined by the tester as mentioned above. The validation can be performed for multiple locales by playing back the code repeatedly for n number of locales. During playback, the same series of interactions are replicated as were recorded. Validation can include the task such as whether the captured data of the application is in synchronization with the format specifications of the base locale e.g. For a date field, when the application instance is tested for Indian locale, the format of the data captured will be checked whether it is of type specification "dd/mm/yyyy"
The detailed methodology of conducting localization testing is illustrated by an exemplary flowchart in Fig. 3. The method is illustrated as a collection of steps in a logical flow graph, which represents a sequence of operations that can be
12
implemented in hardware, software, or a combination thereof. The order in which the process is described is not intended to be constructed as a limitation, and any number of the described steps can be combined in any order to implement the process, or an alternate process. Additionally, individual steps may be deleted from the process without departing from the spirit and scope of the subject matter described herein.
Initially, the tester can select or notify the application instance in a base locale for which the testing needs to be done. The data is captured regarding the user interactions and the system generated events and an object oriented test application is generated. After the capturing of the data, format specifications of the controls can be identified and presented in XML, HTML or any other compatible mark up language by the tester. The format specification of each control of the user interface application is defined by the tester and continues until # whole of the application is executed. After the recording, the playback code is generated by the code generator and the resultant code is played back in one or more target locales. The data of the same application instance as notified earlier by the tester is captured and is verified against the format specifications identified earlier. The verified data is stored in a file and playback continues till whole of the application paths and screens are executed in the target locale. The verification is done for multiple locales that are supported by the application.
Fig. 4.a is a depiction of the interface/form for the user to confirm or change the format specification of each control that was identified by the system.
Fig. 4,b is an exemplary view illustrating the test results of conversion to a Japanese locale according to the present invention.
13
The embodiments described above and illustrated in the figures are presented by way of example only and are not intended as a limitation upon the concepts and principles of the present invention. Elements and components described herein may be further divided into additional components or joined together to form fewer components for performing the same functions. As such, it will be appreciated by one having ordinary skill in the art that various changes in the elements and their configuration and arrangement are possible without departing from the spirit and scope of the present invention as set forth in the appended claims.
14
claim:
1. A method of conducting localization testing of an application, said method
comprising the steps of;
■ capturing data of one or more controls of the application in a base locale for the selected user interfaces;
■ identifying format specifications of the controls using the captured data;
" aggregating the captured data and the format specifications and storing said aggregated data;
■ generating code using the stored data for executing it in one or more target locales;
■ capturing application data in one or more target locales; and
■ verifying the captured data against the format specifications and predefined parameters during execution of the base locale.
2. The method as claimed in claim 1, wherein the capturing of data is done once in the base locale.
3. The method as claimed in claim 1, wherein one or more target locales are verified against the same format specifications.
4. The method as claimed in claim 1, wherein said method is enabled for testing applications independent of programming language or platform.
5. The method as claimed in claim 1, wherein the format specifications are stored in XML, HTML or a compatible markup language.
6. A system of conducting localization testing of an application, said system comprising of:
■ an input unit for interacting with controls of the application;
■ a processor in communication with the input unit, said processor configured for:
15
B capturing data of one or more controls of the application in a
base locale for the selected user interfaces; H identifying format specifications of the controls using the
captured data; c aggregating the captured data and the format specifications
and storing said aggregated data; H generating code using the stored data for executing it in one
or more target locales; a capturing application data in one or more target locales; and o verifying the captured data against the format specifications
and predefined parameters during execution of the base
locale; H memory unit for storing the application instances, format
specification and the verified data in a file(s); and ■ output unit for displaying the file(s).
7. The system as claimed in claim 6, wherein the capturing of data is done once in the base locale.
8. The system as claimed in claim 6, wherein one or more target locales are verified against the same format specifications.
9. The system as claimed in claim 6, wherein said system is configured for testing applications independent of programming language or platform.
10. The system as claimed in claim 6, wherein the format specifications are stored in XML, HTML or a compatible markup language.
11. A computer program product for conducting localization testing of an application, comprising one or more computer readable media configured to perform said method.
Dated this 06th day of January 2011
Of Anand and Anand Advocates Agents for the Applicant
| # | Name | Date |
|---|---|---|
| 1 | 44-CHE-2011 FORM-9 20-01-2011.pdf | 2011-01-20 |
| 1 | 44-CHE-2011-AbandonedLetter.pdf | 2017-07-17 |
| 2 | 44-CHE-2011 FORM-18 20-01-2011.pdf | 2011-01-20 |
| 2 | 44-CHE-2011-FER.pdf | 2016-10-31 |
| 3 | 44-CHE-2011 CORRESPONDENCE OTHERS 11-01-2012.pdf | 2012-01-11 |
| 3 | Form-3.pdf | 2011-09-02 |
| 4 | 44-CHE-2011 FORM-1 11-01-2012.pdf | 2012-01-11 |
| 4 | Form-1.pdf | 2011-09-02 |
| 5 | 44-CHE-2011 POWER OF ATTORNEY 11-01-2012.pdf | 2012-01-11 |
| 6 | 44-CHE-2011 FORM-1 11-01-2012.pdf | 2012-01-11 |
| 6 | Form-1.pdf | 2011-09-02 |
| 7 | 44-CHE-2011 CORRESPONDENCE OTHERS 11-01-2012.pdf | 2012-01-11 |
| 7 | Form-3.pdf | 2011-09-02 |
| 8 | 44-CHE-2011 FORM-18 20-01-2011.pdf | 2011-01-20 |
| 8 | 44-CHE-2011-FER.pdf | 2016-10-31 |
| 9 | 44-CHE-2011 FORM-9 20-01-2011.pdf | 2011-01-20 |
| 9 | 44-CHE-2011-AbandonedLetter.pdf | 2017-07-17 |
| 1 | PatSeer_17-10-2016.pdf |