Sign In to Follow Application
View All Documents & Correspondence

A System And Method For Automating Build Verification Testing

Abstract: The present invention describes a system to verify build stability before functional testing. The method aims to automate the build verification testing process by utilizing property list of each component within a user interface. The system targets to generate reports illustrating the stability of the build so that it can be handed over to the testing team for comprehensive testing of other functional aspects. The invention uses scripting for detecting object properties and by performing further analysis on the components within the user interface verifies the stability of the build.

Get Free WhatsApp Updates!
Notices, Deadlines & Correspondence

Patent Information

Application #
Filing Date
26 March 2012
Publication Number
13/2014
Publication Type
INA
Invention Field
COMPUTER SCIENCE
Status
Email
Parent Application
Patent Number
Legal Status
Grant Date
2020-06-26
Renewal Date

Applicants

TATA Consultancy Services Limited
Nirmal Building  9th Floor  Nariman Point  Mumbai 400021  Maharashtra  India

Inventors

1. Kumaresan N
Tata Consultancy Services Ltd.  200 Ft. Thoraipakkam - Pallavaram Ring Road  Chennai - 600096 Tamil Nadu  India
2. Shyam Nithyanandham
Tata Consultancy Services Ltd.  200 Ft. Thoraipakkam - Pallavaram Ring Road  Chennai - 600096 Tamil Nadu  India
3. Shiva Kumar Dabbiru
Tata Consultancy Services Kohinoor Park  Plot No 1  Jubilee Gardens  Cyberabad Hyderabad 500 084  Andhra Pradesh  India

Specification

FORM 2
THE PATENTS ACT  1970
(39 of 1970)
&
THE PATENT RULES  2003
COMPLETE SPECIFICATION
(See Section 10 and Rule 13)

TITLE OF INVENTION:
“A SYSTEM AND METHOD FOR AUTOMATING BUILD VERIFICATION TESTING”

Applicant
TATA Consultancy Services Limited
A company Incorporated in India under The Companies Act  1956
Having address:
Nirmal Building  9th Floor 
Nariman Point  Mumbai 400021 
Maharashtra  India

The following specification particularly describes the invention and the manner in which it is performed.

FIELD OF THE INVENTION

The present invention relates to the field of software testing. More particularly  the invention relates to a system and method of automating build verification testing.
BACKGROUND OF THE INVENTION

Functional testing is a type of black box testing that bases its test cases on specifications of a software component under test. Functions are tested by feeding them an input and examining an output  and internal program structure is rarely considered during the testing process. Functional testing mainly involves identification of functions that the software is expected to perform  creation of input data based on the function""s specifications  determination of output based on the function""s specifications  execution of the test case and comparison of actual and expected outputs. However it is evident from the process that functional testing involves late identification of user interface (UI) defects. Moreover  when deployed in multiple environments it leads to introduction of multiple failure points to be tested. The time lost on validation of UI is very critical as the same can be utilized more effectively on validating system performance for business needs.
The build verification test [BVT] also known as smoke testing is usually a predefined short set of tests  which helps to streamline the main functionality of the software. It is performed prior to the delivery of the project to the testing team and accordingly any build that fails in the build verification test is rejected  and testing continues on the previous build. Build verification testing [BVT] is important because it let the developers know right away if there is any critical problem with the build  thereby avoiding delay in the testing process. Build failures interrupt unattended automation script runs thereby reducing the effectiveness of the testing automation process. Smoke tests or BVT can either be performed manually or using an automated tool. When automated tools are used  the tests are often initiated by the same process that generates the build itself.
Repeatable scenarios for testing would be the ideal candidates for automation. Automation of this process would bring down the time of testing the build for every release. Also once the automation is in place; it could even be used by the developers to test the build before handing it to the testing team.
For a manual tester  it becomes taxing to execute the tests on daily builds which would incur more effort  time and cost leading to inefficient utilization of resources. To address this specific challenge automation of BVT is necessitated which would assist the testers to ease out the process of testing the daily or frequently occurring builds. In a scenario where there are multiple releases per year and verification is done manually it might consume days to complete the initial testing for each release. Automation of BVT is therefore foreseen as an urgent solution to bring down the testing time and increase the testing quality by reducing the manual effort.
Generally  while automating any application automation tool identifies the objects in the application with specific properties. User can include some properties according to his choice in order to make the tool identify the application. Once user selects the different properties of the objects  BVT would take these properties as inputs and generates the values for these properties using its feature. Once the object properties for a particular build are captured  the BVT scripts are tested for the subsequent builds thereby ensuring that the object properties values are tested and checking that build is stable and could be tested for functional/regression testing phases.
In the state of art  automation of testing has been done by generating scripts in the backend by capturing the event of the device. The inherent problem associated with this approach is that slight change in the properties of the GUI makes it necessary to repeat all the test scenarios that have been previously tested. Moreover  identification of different objects and verification of the property values of the objects has been ignored for this.
In the light of foregoing problem  there exists a need for an automation framework for build verification testing that shall work on the granular level to capture object properties for sufficing the need for a more effective and efficient sanity/smoke testing for the build.

OBJECTIVES OF THE INVENTION

The principle object of the present invention is to utilize object properties of the GUI for the purpose of automating build verification testing.

Another object of the invention is without having to change the code of the object properties  it can be used for testing thus reusability is ensured.
Another object of the invention is to analyze object level properties of the components to gain one time understanding and eventually reducing the testing effort for the further project.
Another object of the invention is to reduce testing time with less chance of human error as the process is automated.

Another object of the invention is to leverage the features of QTP in terms of object property comparison.

Another significant object of the invention is to reduce the multiple failure points introduced in a heterogeneous environment during deployment of the build.

It is another object of the invention to avoid slipping of the UI defects to the customer end.

Another object of the invention is to find the critical bugs in the application before the functional testing is initiated thus saving a lot of resources and eventually time.

Yet another object of the invention is to check and verify the stability of the build.

SUMMARY

This summary is provided to introduce a selection of concepts in a simplified form that are further described below in the detailed description. This summary is not intended to identify key features or essential features of the claimed subject matter  nor is it intended to be used as an aid in determining the scope of the claimed subject matter.

Additional features and advantages of the invention will be set forth in the description which follows  and in part will be obvious from the description  or may be learned by the practice of the invention. These and other features of the present invention will become more fully apparent from the following description  or may be learned by the practice of the invention as set forth hereinafter.

In one of the preferred embodiments of the present invention  a method and system for automating build verification testing using object properties of the components within the user interface has been provided. BVT is an automation framework built on top of QTP which is used to test the object properties of the GUI based systems where there are multiple builds changing quite frequently. It would compare the object properties of the new build vs the previous build and creates a report that gives the information regarding the various changes to the object properties of the build and verify its stability.

One embodiment of the invention contemplates a system comprising of an input module for retrieving plurality of object associated properties for each component of a user interface  a comparing module for mapping the component properties with those stored in a repository; and a reporting module to illustrate the stability of the build based result sheet. The system includes a memory device coupled with a processor to assist the comparing module and provide customizable object property list for generating the result sheet. The system also comprises of an auxiliary module to facilitate additional checks for easy extensions.

The system aims to automate the build verification testing process by utilizing property list of each component within a user interface by using automated scripts thus eliminating the need for sanity and user acceptance testing.

BRIEF DESCRIPTION OF THE DRAWINGS

The foregoing summary  as well as the following detailed description of preferred embodiments  is better understood when read in conjunction with the appended drawings. For the purpose of illustrating the invention  there is shown in the drawings example constructions of the invention; however  the invention is not limited to the specific system and method disclosed in the drawings:

Figure 1 depicts a process flow of the method for verifying the stability of the build in accordance with one of the embodiments of the present invention.
Figure 2 describes the process steps involved in the actual testing of the build in accordance with one disclosed embodiment of the present invention.
Figure 3 shows the high level architecture of the system involved in verifying the stability of build in accordance with one of the preferred embodiment of the present invention.

DETAILED DESCRIPTION OF THE INVENTION

Some embodiments of this invention  illustrating all its features  will now be discussed in detail. The words "comprising " "having " "containing " and "including " and other forms thereof  are intended to be equivalent in meaning and be open ended in that an item or items following any one of these words is not meant to be an exhaustive listing of such item or items  or meant to be limited to only the listed item or items.

It must also be noted that as used herein and in the appended claims  the singular forms "a " "an " and "the" include plural references unless the context clearly dictates otherwise. Although any systems and methods similar or equivalent to those described herein can be used in the practice or testing of embodiments of the present invention  the preferred  systems and methods are now described.

The present invention describes a system and method to make the build stable before functional testing. The present invention aims to automate the build verification testing process by utilizing property list of each component within a user interface. The system mainly comprises of a memory module coupled to a processor  a scripting unit to retrieve property list of the components within the UI  a comparing module which maps all the object properties of the components within the UI with the object property list in the repository  an auxiliary module for navigating through the different screens of the application to capture the object properties and which goes through the flow of the sanity/smoke test cases and a reporting module to generate reports illustrating the stability of the build so that it can be handed over to the testing team for comprehensive testing of other functional aspects.

In an embodiment the input module 300 consists of a test build 202 to be verified for stability. The test build 202 comprises of various user interface 201 screens consisting of multiple objects within the user interface. Validation of the properties of each of the objects leads to verifying the stability of the build.

The functionality of the scripting unit 302 is to retrieve the property list for each of the components within the user interface 201. Once the property lists are captured  the scripting unit 302 then captures the object property values for each of the object property lists from the user interface. The scripting unit 302 is mapped to the object repository file of QTP thereby ensuring that the object properties and their values are taken with respect to the QTP tool for any GUI based application.

In a preferred embodiment the memory module 308 coupled to the processor executes a series of instructions to assist the comparing module 304 for performing special purpose computing task and eventually aid the build verification process.

The comparing module 304 maps the object properties retrieved from the scripting unit 302 to the object properties present in the repository 208. The comparing module 304 has the various objects properties and their values stored in it. Basically  for the GUI based application system the object properties and their values are captured and stored in a spreadsheet. Again  for the new build these scripts takes the values from the new GUI based application build and compares it with the existing values and generates a report that gives the information regarding the instability  if any   within the build with respect to the changes to the object properties of the user interface.

In another embodiment the auxiliary module 312  provides a facility to perform additional checks for easy extensions. If any additional object properties that needs to be validated for example  color of the link  color of the text box  then these are validated as part of the auxiliary module. The auxiliary module has the feature of providing the flow between the various user interface screens. Usage of descriptive programming languages like XML and the like assists the developer in collaboration.

The report generation module 314 generates reports in the form of HTML format to verify the stability of the build and highlight the changes between the previous build and new build.

Referring to figure 1  the diagram 100 shows us a process flow of the method for verifying the stability of the build. The first step in the process 104 includes retrieving of the object properties 203 of the components within the user interface 201.The object properties 203 of the components refer to but are not limited to transparency  size  alignment  and the like. The second step 106 involves comparison between the retrieved properties in the first step and the property list present in the repository 208. The final step 108 involves generation of reports regarding the stability of the build based on the results obtained in the second step 106. The reports help the developers and testers analyze the critical faults within the build that need to be corrected at priority before functional testing of the build.

Now referring to figure 2  the diagram 200 describes the various steps involved in the actual testing of the build. The test build 202 is used as an input for build verification. The build is provided to the driver script 204 which then extracts the object properties and using the comparing modules maps the properties with the scenario sheet 206 and the object properties present in the repository 208. Based on mapping  the report 210 is generated to verify the stability of the build. If the build is stable it is forwarded to the testing team for functional testing. Thus the need for sanity testing and user acceptance testing is eliminated.

Further referring to figure 3  the diagram 300 shows all the various components involved in the process of verifying the stability of the build. The input module 300 consists of a test build 202 to be verified for stability. The test build 202 comprises of various user interface 201 screens consisting of multiple objects within the user interface. Validation of the properties of each of the objects leads to verifying the stability of the build. The functionality of the scripting unit 302 is to retrieve the property list for each of the components within the user interface 201. In a preferred embodiment the memory module 308 coupled to the processor executes a series of instructions to assist the comparing module 304. The comparing module 304 maps the object properties retrieved from the scripting unit 302 to the object properties present in the repository 208. In another embodiment the auxiliary module 312  provides a facility to perform additional checks for easy extensions. The report generation module 314 generates reports in the form of HTML reports to verify the stability of the build.

In another aspect of the invention scripts that can be readily used for testing are made available thus automating the build verification testing process. Furthermore  the same scripts can be customized and can be used for testing purposes thus eliminating the need to redesign the scripts for the new scenario leading to increase in resource utilization.

The advantages associated with the mentioned process include:
• Enabling faster deployment of stable systems into the environment thus reduced testing time and better resource utilization
• Moreover  scripting retrieves property lists for each screen and prepares expected user friendly reports generation making it easy to understand the defects in the build
• BVT framework provides as extensibility  in which developer can add their own user defined functions.
• BVT framework helps to deploy the stable application in the environment.
• BVT framework uses both descriptive programming and object repository in .xml format to identify the objects in the AUT. As BVT uses object repository in .xml format helps the developer to collaborate closely with the framework; even the developer can construct the BVT test with limited testing tool knowledge
• BVT mainly does the UI validation  thus BVT framework covers more than 80% of UI validation


WORKING EXAMPLE

Let us consider a test case file as shown in the below table 1. Test cases are customized in the excel sheet  it contains the flow of the execution. Test data like expected property values and the data required application flow are contained in the same sheet  both these can be customized by the user. It consists of various fields of object properties that need to be checked in the build. All these file supplies input to the driver script  driver script is developed in QTP. This driver script gets the input from object repositories and test case excel sheets. As shown in the table 1  on first page for paragraph 3 there is user defined height width and size for object ‘username’ which is specified in the last column of the row. Similarly on page 2 there is user defined height and width. According to the execution flow in the test case sheet  the driver script will interact with the AUT (Application Under Test) and perform the operations to generate results in the HTML format .Further now table 2 illustrates the object sheet to be used for report generation and table 3 shows the HTML report generated using the test cases and object sheet..

S.no Para 1 Para 2 Para 3 Para 4
Page 1 Open web http://new tours.com
Type input username mercury
checkprop username User defined Height  width  size 20;30;900
checkprop password default
Type input password mercury
Click and wait loginbtn 30000
Select and wait List form port London
Stop
Page 2 Open web http://google.com
Check Prop googletext User defined Height  width 
Type input googletext mylife
Click Google btn

Table 1: Test case file

Google Browser {“Google”}
Google Browser {“Google”}.Page{“Google”}
Q Browser {“Google”}. Page{“Google”}.WebEdit {“q”}
Google search Browser {“Google”}.WebButton{“Google Search”}

Table 2: Objects Sheet

Object Name: username
Property Name Expected Value Actual Value Result
Height 20 22 Failed
width 30 86 Failed
size 900 10 Failed

Table 3: Report Sheet


WE CLAIM:
1. A computer implemented method to automate a build verification testing  the method comprising:
retrieving at least one property associated with each component of a user interface via a scripting language;
mapping the retrieved properties against a plurality of object property list stored in a repository; and
generating at least one validation report for the user interface to verify the stability of the build.
2. The method of claim 1  wherein the property list refers to the plurality of object properties associated with components present within the user interface.

3. The method of claim 1  wherein the user interface includes plurality of components those need to be identified for testing.

4. The method of claim 1  wherein the repository includes plurality of property lists for each components within the user interface.

5. The method of claim 1  wherein the object property result sheet includes but is not limited to the screen name  object name  object property value  match count  mismatch count and the like.

6. The method of claim 1  wherein the validation report is a HTML report to verify the stability of the build.

7. The method of claim 1  wherein the scripting language refers to but is not limited to usage of JavaScript  ASP  JSP  PHP  Perl  and the like.

8. The method of claim 1  further provides a customizable object property list for generating an object property result sheet.
9. The method of claim 1  further facilitates additional checks for easy extensions to validate additional object properties.

10. An automated system for build verification testing  executed by a processor comprising:
an input module adapted to retrieve a plurality of property list for each component within an user interface via a scripting language;
a comparing module configured to map component properties to an object property list stored in a repository;
a memory device coupled with the processor to store and provide customizable object property list for generating an object property result sheet; and
a reporting module configured to generate validation reports based on the object property result sheet and the object property list of the repository for the user interface to verify stability of the build.

11. The system of claim 10  wherein the property list refers to the plurality of object properties associated with components present within the user interface.
12. The system of claim 10  wherein the user interface includes plurality of components those need to be identified for testing.

13. The system of claim 10  wherein the scripting language refers to but is not limited to usage of JavaScript  ASP  JSP  PHP  Perl  and the like.

14. The system of claim 10  wherein the repository includes plurality of property lists for each components within the user interface.

15. The system of claim 10  wherein the object property result sheet includes but is not limited to the screen name  object name  object property value  match count  mismatch count and the like.

16. The system of claim 10  wherein the reporting module generates end result in a HTML report to verify the stability of the build.
17. The system of claim 10  further comprising of an auxiliary module adapted to facilitate additional checks for easy extensions to validate additional object properties.

Documents

Application Documents

# Name Date
1 839-MUM-2012-RELEVANT DOCUMENTS [27-09-2023(online)].pdf 2023-09-27
1 ABSTRACT1.jpg 2018-08-11
2 839-MUM-2012-FORM 3.pdf 2018-08-11
2 839-MUM-2012-RELEVANT DOCUMENTS [30-09-2022(online)].pdf 2022-09-30
3 839-MUM-2012-IntimationOfGrant26-06-2020.pdf 2020-06-26
3 839-MUM-2012-FORM 26(9-4-2012).pdf 2018-08-11
4 839-MUM-2012-PatentCertificate26-06-2020.pdf 2020-06-26
4 839-MUM-2012-FORM 2.pdf 2018-08-11
5 839-MUM-2012-FORM 18(29-3-2012).pdf 2018-08-11
5 839-MUM-2012-ABSTRACT [18-04-2019(online)].pdf 2019-04-18
6 839-MUM-2012-FORM 1(25-9-2012).pdf 2018-08-11
6 839-MUM-2012-CLAIMS [18-04-2019(online)].pdf 2019-04-18
7 839-MUM-2012-CORRESPONDENCE(9-4-2012).pdf 2018-08-11
7 839-MUM-2012-COMPLETE SPECIFICATION [18-04-2019(online)].pdf 2019-04-18
8 839-MUM-2012-DRAWING [18-04-2019(online)].pdf 2019-04-18
8 839-MUM-2012-CORRESPONDENCE(29-3-2012).pdf 2018-08-11
9 839-MUM-2012-CORRESPONDENCE(25-9-2012).pdf 2018-08-11
9 839-MUM-2012-FER_SER_REPLY [18-04-2019(online)].pdf 2019-04-18
10 839-MUM-2012-FER.pdf 2018-10-22
10 839-MUM-2012-OTHERS [18-04-2019(online)].pdf 2019-04-18
11 839-MUM-2012-FER.pdf 2018-10-22
11 839-MUM-2012-OTHERS [18-04-2019(online)].pdf 2019-04-18
12 839-MUM-2012-CORRESPONDENCE(25-9-2012).pdf 2018-08-11
12 839-MUM-2012-FER_SER_REPLY [18-04-2019(online)].pdf 2019-04-18
13 839-MUM-2012-CORRESPONDENCE(29-3-2012).pdf 2018-08-11
13 839-MUM-2012-DRAWING [18-04-2019(online)].pdf 2019-04-18
14 839-MUM-2012-COMPLETE SPECIFICATION [18-04-2019(online)].pdf 2019-04-18
14 839-MUM-2012-CORRESPONDENCE(9-4-2012).pdf 2018-08-11
15 839-MUM-2012-CLAIMS [18-04-2019(online)].pdf 2019-04-18
15 839-MUM-2012-FORM 1(25-9-2012).pdf 2018-08-11
16 839-MUM-2012-ABSTRACT [18-04-2019(online)].pdf 2019-04-18
16 839-MUM-2012-FORM 18(29-3-2012).pdf 2018-08-11
17 839-MUM-2012-FORM 2.pdf 2018-08-11
17 839-MUM-2012-PatentCertificate26-06-2020.pdf 2020-06-26
18 839-MUM-2012-IntimationOfGrant26-06-2020.pdf 2020-06-26
18 839-MUM-2012-FORM 26(9-4-2012).pdf 2018-08-11
19 839-MUM-2012-RELEVANT DOCUMENTS [30-09-2022(online)].pdf 2022-09-30
19 839-MUM-2012-FORM 3.pdf 2018-08-11
20 ABSTRACT1.jpg 2018-08-11
20 839-MUM-2012-RELEVANT DOCUMENTS [27-09-2023(online)].pdf 2023-09-27

Search Strategy

1 839MUM2012_17-10-2018.pdf

ERegister / Renewals

3rd: 25 Sep 2020

From 26/03/2014 - To 26/03/2015

4th: 25 Sep 2020

From 26/03/2015 - To 26/03/2016

5th: 25 Sep 2020

From 26/03/2016 - To 26/03/2017

6th: 25 Sep 2020

From 26/03/2017 - To 26/03/2018

7th: 25 Sep 2020

From 26/03/2018 - To 26/03/2019

8th: 25 Sep 2020

From 26/03/2019 - To 26/03/2020

9th: 25 Sep 2020

From 26/03/2020 - To 26/03/2021

10th: 25 Mar 2021

From 26/03/2021 - To 26/03/2022

11th: 04 Mar 2022

From 26/03/2022 - To 26/03/2023

12th: 24 Mar 2023

From 26/03/2023 - To 26/03/2024

13th: 25 Mar 2024

From 26/03/2024 - To 26/03/2025

14th: 06 Mar 2025

From 26/03/2025 - To 26/03/2026