Abstract: The present disclosure relates to system(s) and method(s) for regression testing of software code is disclosed, wherein the software code is configured to perform ETL (Extract, transform, and Load) processing steps on source data. The system is configured for generating a first target table based upon execution of the software code on the source data and record a first count of one or more types of data records in a first target table. Further, the system is configured for generating a second target table based upon execution of the software code, being updated, on the source data. Further, the system is configured to record a second count of the one or more types of data records in a second target table. Further, the system is configured to compare the first count and the second count corresponding to each type of data record for facilitating regression testing of the software code.
CROSS-REFERENCE TO RELATED APPLICATIONS AND PRIORITY
[001] The present application does not claim priority from any patent application.
TECHNICAL FIELD
[002] The present disclosure in general relates to regression testing. More particularly, the present invention relates to a system and method for performing regression testing on a data warehouse.
BACKGROUND
[003] `Now-a-days, with the development in the field of Information Technology (IT), a large amount of data is captured from different source systems every day by different data processing systems. This data may be captured from different source systems such as financial institutes, government organizations, surveys and the like. Once this data is captured, in the next step, ETL processing is performed on this source data by a software code in order to generate a target table, wherein the target table is stored in the data warehouse. The target table maintains the source data in the form of records, wherein each record is configured store a data source code information and other details associated with the source data.
[004] The software code may be modified from time to time in order to enable new features in the ETL processing steps. Once the software code is modified, it is necessary to determine if the changed software code does not introduce any new bugs in the data processing system. When new software code is introduced in to the data processing system, it needs to be insured that already existing records and associated data source code information inside the target table is not changed. For this purpose, regression testing is performed over the new software code in order to determine if any new defects are introduced in the data processing system.
[005] However, the cost of performing regression testing of the new/ updated software code increases with the increase in the amount of data captured by the data processing system. Some of the references in the art teach about performing regression testing by comparing the captured data with the data in the target table in order to identify inconsistency in the software code. However, this is a time consuming process since each record from the captured data needs to be compared individually with the corresponding record in the target table.
SUMMARY
[006] This summary is provided to introduce aspects related to systems and methods for regression testing of a software code and the aspects are further described below in the detailed description. This summary is not intended to identify essential features of the claimed subject matter nor is it intended for use in determining or limiting the scope of the claimed subject matter.
[007] In one embodiment, a system for regression testing of a software code is illustrated, wherein the software code is configured to perform ETL (Extract, transform, and Load) processing steps on source data. The system comprises a memory and a processor coupled to the memory, wherein the processor is configured for executing programmed instructions stored in the memory for generating a first target table based upon execution of the software code on the source data. Further, the processor is configured to record a first count of one or more types of data records in a first target table. Further, the processor is configured for generating a second target table based upon execution of the software code, being updated, on the source data. Once the second target table is generated, in the next step, the processor is configured to record a second count of the one or more types of data records in a second target table. Further the processor is configured to compare the first count and the second count corresponding to each type of data record for facilitating regression testing of the software code.
[008] In one embodiment, a method for regression testing of a software code is illustrated, wherein the software code is configured to perform ETL (Extract, transform, and Load) processing steps on source data. The method comprises processor implemented steps of generating a first target table based upon execution of the software code on the source data and recording a first count of one or more types of data records in a first target table. Further, the method comprises processor implemented steps of generating a second target table based upon execution of the software code, being updated, on the source data. Further, the method comprises processor implemented steps of recording a second count of the one or more types of data records in a second target table. Furthermore, the method comprises processor implemented steps of comparing the first count and the second count corresponding to each type of data record for facilitating regression testing of the software code.
[009] In one embodiment, a computer program product having embodied computer program for regression testing of a software code is illustrated, wherein the software code is configured to perform ETL (Extract, transform, and Load) processing steps on source data. The program comprises a program code for generating a first target table based upon execution of the software code on the source data. The program further comprises a program code for recording a first count of one or more types of data records in a first target table. The program further comprises a program code for generating a second target table based upon execution of the software code, being updated, on the source data. The program further comprises a program code for recording a second count of the one or more types of data records in a second target table. The program further comprises a program code for comparing the first count and the second count corresponding to each type of data record for facilitating regression testing of the software code
BRIEF DESCRIPTION OF DRAWINGS
[0010] 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 refer like features and components.
[0011] Figure 1 illustrates a network implementation of a system for regression testing of a software code, in accordance with an embodiment of the present subject matter.
[0012] Figure 2 illustrates the system for regression testing of the software code, in accordance with an embodiment of the present subject matter.
[0013] Figure 3 illustrates a flowchart to enable the system for regression testing of the software code, in accordance with an embodiment of the present subject matter.
DETAILED DESCRIPTION
[0014] The present subject matter relates to a system for regression testing of a software code, wherein the software code is configured to perform ETL processing steps on source data captured from multiple sources such as financial institutions. The system is configured to generate a first target table based upon execution of the software code on the source data. Further, the system is configured to record a first count of one or more types of data records in a first target table. Further, the system is configured for determining if the software code is updated. The software code may be updated by a software developer by introducing one or more code patches to the software code or by modifying one or more code blocks in the software code. If the software code is updated/ modified, the system is configured for generating a second target table based upon execution of the software code, being updated, on the source data. Once the second target table is generated, in the next step, the system is configured to record a second count of the one or more types of data records in a second target table. Further the processor is configured to compare the first count and the second count corresponding to each type of data record for facilitating regression testing of the software code.
[0015] While aspects of described system and method for regression testing of a software code may be implemented in any number of different computing systems, environments, and/or configurations, the embodiments are described in the context of the following exemplary system.
[0016] Referring now to Figure 1, a network implementation 100 of a data processing system hereafter referred as the system 102 for regression testing of a software code is disclosed. Although the present subject matter is explained considering that the system 102 is implemented on a server, it may be understood that the system 102 may also be implemented in a variety of computing systems, such as a laptop computer, a desktop computer, a notebook, a workstation, a mainframe computer, a server, a network server, and the like. In one implementation, the system 102 may be implemented in a cloud-based environment. It will be understood that the system 102 may be accessed by multiple users through one or more display’s connected to the system 102, hereafter user devices 104-1, 104-2…104-N, collectively referred to as user devices 104. Examples of the user devices 104 may include, but are not limited to, a portable computer, a personal digital assistant, a handheld device, and a workstation. The user devices 104 are communicatively coupled to the system 102 through a network 106. Further, the system is connected to a set of source systems 108 and a data warehouse 110. In one embodiment, the set of source systems 108 are configured to capture source data from different financial institutions. Further, this source data is processed by software code stored at the system in order to generate a target table. The software code may be configured to perform different data processing steps such as ETL processing, ELT processing, data segregation, data aggregation, data collation, and data abstraction on the source data. In one embodiment, the software code is configured to perform ETL processing steps on the source data. This target table is then stored in the data warehouse 110 using the network 106.
[0017] In one implementation, the network 106 may be a wireless network, a wired network or a combination thereof. The network 106 can be implemented as one of the different types of networks, such as intranet, local area network (LAN), wide area network (WAN), the internet, and the like. The network 106 may either be a dedicated network or a shared network. The shared network represents an association of the different types of networks that use a variety of protocols, for example, Hypertext Transfer Protocol (HTTP), Transmission Control Protocol/Internet Protocol (TCP/IP), Wireless Application Protocol (WAP), and the like, to communicate with one another. Further the network 106 may include a variety of network devices, including routers, bridges, servers, computing devices, storage devices, and the like.
[0018] Referring now to Figure 2, the system 102 is illustrated in accordance with an embodiment of the present subject matter. In one embodiment, the system 102 may include at least one processor 202, an input/output (I/O) interface 204, and a memory 206. The at least one processor 202 may be implemented as one or more microprocessors, microcomputers, microcontrollers, digital signal processors, central processing units, state machines, logic circuitries, and/or any devices that manipulate signals based on operational instructions. Among other capabilities, the at least one processor 202 is configured to fetch and execute computer-readable instructions stored in the memory 206.
[0019] The I/O interface 204 may include a variety of software and hardware interfaces, for example, a web interface, a graphical user interface, and the like. The I/O interface 204 may allow the system 102 to interact with a user directly or through the user devices 104. Further, the I/O interface 204 may enable the system 102 to communicate with other computing devices, such as web servers and external data servers (not shown). The I/O interface 204 can facilitate multiple communications within a wide variety of networks and protocol types, including wired networks, for example, LAN, cable, etc., and wireless networks, such as WLAN, cellular, or satellite. The I/O interface 204 may include one or more ports for connecting a number of devices to one another or to another server.
[0020] The memory 206 may include any computer-readable medium known in the art including, for example, volatile memory, such as static random access memory (SRAM) and dynamic random access memory (DRAM), and/or non-volatile memory, such as read only memory (ROM), erasable programmable ROM, flash memories, hard disks, optical disks, and magnetic tapes. The memory 206 may include modules 208 and data 210.
[0021] The modules 208 include routines, programs, objects, components, data structures, etc., which perform particular tasks, functions or implement particular abstract data types. In one implementation, the modules 208 may include a software code execution module 212, a count recording module 214, a count comparison module 216, a reporting module 218, and other modules 220. The other modules 220 may include programs or coded instructions that supplement applications and functions of the system 102.
[0022] The data 210, amongst other things, serves as a repository for storing data processed, received, and generated by one or more of the modules 208. The data 210 may also include a repository 222, and other data 228. In one embodiment, the repository 222 may be configured to store a software code 224 and regression test cases 226. The software code 224 is configured to perform different data processing operation on the source data and generate target table which store the processed source data. These data processing operations may include ETL processing, ELT processing, data segregation, data abstraction, data abstraction and other data warehouse related data processing applications. In one embodiment, the regression test cases 226 are configured to perform regression testing of the software code 224. In one embodiment, the regression test cases 226 may be configured to count the number of record of each type in the target table generated by the software code 224. Further, other data 228 may include data generated as a result of the execution of one or more modules in the other module 220.
[0023] In one implementation, the software code execution module 212 is configured to retrieve source data from a set of source systems 108. Further, the software code execution module 212 enables the software code 224 to process the source data and generate a first target table. In one embodiment, the first target table stores different type of data records associated with the one or more financial institutions from which the source data is captured. In one embodiment, the data records may be classified into different categories such as open records, deleted records, closed records, updated records. For each category of records, the different the type of records is stored. The different type of records in the first target table may include Personal Loan (PL), Home Loan (HL), GL, and Credit Card (CC). Further, this first target table is stored in the data warehouse by the software code execution module 212.
[0024] Once the first target table is generated, in the next step, the count recording module 214 is configured to record a first count of one or more types of data records in a first target table. Further, a first record count table is generated by the count recording module 214 as represented in Table 1.
[0025] Table 1: First record count table.
Source Data Table Name
Data Record Type/
Data source code
Information First Count
PARTY PL 2161428
PARTY HL 763220
PARTY GL 232
PARTY CC 6386684
PRODUCT PL 964415
PRODUCT HL 674400
PRODUCT GL 12759736
AGREEMENT PL 343
AGREEMENT HL 2778762
AGREEMENT GL 14909
AGREEMENT CC 514449
EVENT PL 20759174
EVENT HL 2075945
EVENT GL 14041181
EVENT CC 14058892
[0026] Once the first record count table is generated, in the next step, a user may use the user device 104 to access the system 102. Further, the user may update the software code 224 as per his requirements. The user may also update the software code 224 to add new functionalities for processing of data stored at the data warehouse.
[0027] In one embodiment, the software code execution module 212 is configured to check if the software code 224 is updated by the user. In case if the software code 224 is updated, the software code execution module 212 is configured to execute the software code 224, being updated, and generates a second target table based on the execution of the updated software code 224.
[0028] Further, the count recording module 214 is configured to record a second count of each type of data records that are present in the second target table. Further, a second record count table is generated from the second count by the count recording module 214 as represented in table 2.
[0029] Table 2: Second record count table.
Source Data Table Name
Data Record Type/
Data source code
Information Second Count
PARTY PL 2161428
PARTY HL 763220
PARTY GL 232
PARTY CC 6386684
PRODUCT PL 964415
PRODUCT HL 674400
PRODUCT GL 12759736
AGREEMENT PL 345
AGREEMENT HL 639647
AGREEMENT GL 1054
AGREEMENT CC 971
EVENT PL 82968
EVENT HL 54915
EVENT GL 1206222
EVENT CC 89136
[0030] Once the first count and the second count is generated, in the next step, the count comparison module 216 is configured to compare the first count of each type of data records from the first target table with the second count of corresponding type of records from the second target table. If the count of a particular record type does not match, then the code block corresponding to this record type is identified as an erroneous code block. This erroneous code block may further be processed in order to remove the error in the software code 224. The comparison of the count of each type of records is represented in table 3.
[0031] Table 3: Comparison of counts
Source Data Table Name
Data Record Type/ Data source code
information First Count
Second Count
Count Difference
Regression Check
PARTY PL 2161428 2161428 0 OK
PARTY HL 763220 763220 0 OK
PARTY GL 232 232 0 OK
PARTY CC 6386684 6386684 0 OK
PRODUCT PL 964415 964415 0 OK
PRODUCT HL 674400 674400 0 OK
PRODUCT GL 12759736 12759736 0 OK
AGREEMENT PL 343 345 -2 Discrepancy
AGREEMENT HL 2778762 639647 2139115 Discrepancy
AGREEMENT GL 14909 1054 13855 Discrepancy
AGREEMENT CC 514449 971 513478 Discrepancy
EVENT PL 20759174 82968 20676206 Discrepancy
EVENT HL 2075945 54915 2021030 Discrepancy
EVENT GL 14041181 1206222 12834959 Discrepancy
EVENT CC 14058892 89136 13969756 Discrepancy
[0032] In one embodiment, the reporting module 218 is configured to collect information associated with all the erroneous code blocks and transfer this information to the user device 104. The user may view this information and consider revising the software code 224 in order to fix the errors in the software code 224. The process for regression testing of a software code 224 is further elaborated with respect to the flow chart of figure 3.
[0033] Referring now to figure 3, a method 300 for regression testing of the software code 224 is illustrated, in accordance with an embodiment of the present subject matter. The method 300 may be described in the general context of computer executable instructions. Generally, computer executable instructions can include routines, programs, objects, components, data structures, procedures, modules, functions, and the like, that perform particular functions or implement particular abstract data types. The method 300 may also be practiced in a distributed computing environment where functions are performed by remote processing devices that are linked through a communications network. In a distributed computing environment, computer executable instructions may be located in both local and remote computer storage media, including memory storage devices.
[0034] The order in which the method 300 is described is not intended to be construed as a limitation, and any number of the described method blocks can be combined in any order to implement the method 300 or alternate methods. Additionally, individual blocks may be deleted from the method 300 without departing from the spirit and scope of the subject matter described herein. Furthermore, the method can be implemented in any suitable hardware, software, firmware, or combination thereof. However, for ease of explanation, in the embodiments described below, the method 300 may be considered to be implemented in the above described system 102.
[0035] At block 302, the software code execution module 212 is configured to retrieve source data from a set of source systems 108. Further, the software code execution module 212 executes the software code 224 to process the source data and generate a first target table. In one embodiment, the first target table stores different type of records associated with the set of source systems 108 from which the source data is captured.
[0036] At block 304, once the first target table is generated, in the next step, the count recording module 214 is configured to record a first count of one or more types of data records identified from the first target table. In one embodiment, the count recording module 214 is configured to individually count each type of data records in the first target table and maintain record count of each type of data records in a tabulated format.
[0037] At block 306, the software code execution module 212 is configured to check if the software code 224 is updated by the user. In case if the software code 224 is updated, the software code execution module 212 is configured to execute the software code 224, being updated, and generates a second target table based on the execution of the updated software code 224.
[0038] At bock 308, the count recording module 214 is configured to record a second count of each type of data records that are present in the second target table. In one embodiment, the count recording module 214 is configured to individually count each type of data records in the second target table and maintain record count of each type of data records in a tabulated format.
[0039] At block 310, once the first count and the second count is generated, in the next step, the count comparison module 216 is configured to compare the first count of each type of data records from the first target table with the second count of corresponding type of records from the second target table. If the count of a particular record type does not match, then the code block corresponding to this record type is identified as an erroneous code block.
[0040] At block 312, a regression testing report is generated, the regression testing report stores details of all the erroneous code blocks. These erroneous code blocks may further be processed in order to remove the error in the software code 224.
[0041] Although implementations for methods and systems for regression testing of a software code have been described, it is to be understood that the appended claims are not necessarily limited to the specific features or methods described. Rather, the specific features and methods are disclosed as examples of implementations for regression testing of a software code.
Claims:WE CLAIM:
1. A system for regression testing of a software code, the system comprising:
a memory; and
a processor coupled to the memory, wherein the processor is configured to execute program instructions stored in the memory for:
generating a first target table based upon execution of a software code on source data;
recording a first count of one or more types of data records in a first target table;
generating a second target table based upon execution of the software code, being updated, on the source data;
recording a second count of the one or more types of data records in a second target table; and
comparing the first count and the second count of each type of data record thereby facilitating regression testing of the software code.
2. The system of claim 1, wherein the software code is configured for data Extraction, Transformation and Loading (ETL) process.
3. The system of claim 1, wherein the types of data records include an open record, a delete record, an insert record, and an update record.
4. The system of claim 1, wherein the software code is updated by introducing one or more code patches to the software code or by modifying one or more code blocks in the software code.
5. The system of claim 1, wherein the first count and second count are compared to identify discrepancy in the count of at least one type of records.
6. A method for regression testing of a software code, the method comprising steps of:
generating, by a processor, a first target table based upon execution of a software code on source data;
recording, by the processor, a first count of one or more types of data records in a first target table;
generating, by the processor, a second target table based upon execution of the software code, being updated, on the source data;
recording, by the processor, a second count of the one or more types of data records in a second target table; and
comparing, by the processor, the first count and the second count of each type of data record thereby facilitating regression testing of the software code.
7. The method of claim 6, wherein the software code is configured for data Extraction, Transformation and Loading (ETL) process.
8. The method of claim 6, wherein the types of data records include an open record, a delete record, an insert record, and an update record.
9. The method of claim 6, wherein the software code is updated by introducing one or more code patches to the software code or by modifying one or more code blocks in the software code.
10. The method of claim 6, wherein the first count and second count are compared to identify discrepancy in the count of at least one type of records.
11. A computer program product having embodied thereon a computer program for regression testing of a software code, the computer program product comprising:
a program code for generating a first target table based upon execution of a software code on source data;
a program code for recording a first count of one or more types of data records in a first target table;
a program code for generating a second target table based upon execution of the software code, being updated, on the source data;
a program code for recording a second count of the one or more types of data records in a second target table; and
a program code for comparing the first count and the second count of each type of data record thereby facilitating regression testing of the software code. , Description:FORM 2
| # | Name | Date |
|---|---|---|
| 1 | 3211-DEL-2015-FER.pdf | 2020-03-02 |
| 1 | Form 9 [06-10-2015(online)].pdf | 2015-10-06 |
| 2 | Form 3 [06-10-2015(online)].pdf | 2015-10-06 |
| 2 | 3211-del-2015-Affidavit-(04-04-2016).pdf | 2016-04-04 |
| 3 | 3211-del-2015-Correspondence Others-(04-04-2016).pdf | 2016-04-04 |
| 4 | Form 18 [06-10-2015(online)].pdf | 2015-10-06 |
| 4 | 3211-del-2015-Form-1-(04-04-2016).pdf | 2016-04-04 |
| 5 | 3211-del-2015-Form-8-(04-04-2016).pdf | 2016-04-04 |
| 5 | Drawing [06-10-2015(online)].pdf | 2015-10-06 |
| 6 | Description(Complete) [06-10-2015(online)].pdf | 2015-10-06 |
| 7 | 3211-del-2015-Form-8-(04-04-2016).pdf | 2016-04-04 |
| 7 | Drawing [06-10-2015(online)].pdf | 2015-10-06 |
| 8 | 3211-del-2015-Form-1-(04-04-2016).pdf | 2016-04-04 |
| 8 | Form 18 [06-10-2015(online)].pdf | 2015-10-06 |
| 9 | 3211-del-2015-Correspondence Others-(04-04-2016).pdf | 2016-04-04 |
| 10 | Form 3 [06-10-2015(online)].pdf | 2015-10-06 |
| 10 | 3211-del-2015-Affidavit-(04-04-2016).pdf | 2016-04-04 |
| 11 | Form 9 [06-10-2015(online)].pdf | 2015-10-06 |
| 11 | 3211-DEL-2015-FER.pdf | 2020-03-02 |
| 1 | 3211DEL2015E_02-03-2020.pdf |