Sign In to Follow Application
View All Documents & Correspondence

Software Testing In Development Environment

Abstract: Systems and methods for software testing in a development environment are described. In one embodiment, the method comprises obtaining development environment testing data comprising production data and manufactured data. Further, the method comprises testing a development environment code and an impacted code of a software application based on the development environment testing data to generate a development test result and an impacted test result. Furthermore, the method comprises comparing the development test result with the impacted test result. Based on the comparison, a test report is generated.

Get Free WhatsApp Updates!
Notices, Deadlines & Correspondence

Patent Information

Application #
Filing Date
28 February 2012
Publication Number
49/2013
Publication Type
INA
Invention Field
COMPUTER SCIENCE
Status
Email
Parent Application

Applicants

TATA CONSULTANCY SERVICES LIMITED
Nirmal Building  9th Floor  Nariman Point  Mumbai  Maharashtra

Inventors

1. DEVARAJ  Venkatesan
M/s. Tata Consultancy Services Ltd.  Siruseri SEZ Unit 2  Building Number : EB - 2 Chennai Tamil Nadu 603103
2. ANNAMDEVULA  Radhika
M/s. Tata Consultancy Services Ltd.  Siruseri SEZ Unit 2  Building Number : EB - 2 Chennai Tamil Nadu 603103
3. DHANABALAN  Manikandan
M/s. Tata Consultancy Services Ltd.  Siruseri SEZ Unit 2  Building Number : EB - 2 Chennai Tamil Nadu 603103
4. SETHURAMAN  Shankar
M/s. Tata Consultancy Services Ltd.  Siruseri SEZ Unit 2  Building Number : EB - 2 Chennai Tamil Nadu 603103

Specification

FORM 2
THE PATENTS ACT, 1970
(39 of 1970)
&
THE PATENTS RULES, 2003 COMPLETE SPECIFICATION
(See section 10, rule 13)
1. Title of the invention: SOFTWARE TESTING IN DEVELOPMENT ENVIRONMENT
2. Applicant(s)
NAME NATIONALITY ADDRESS
TATA CONSULTANCY SERVICES Indian Nirmal Building, 9th Floor, Nariman Point,
LIMITED
Mumbai, Maharashtra 400021
India
3. Preamble to the description
COMPLETE SPECIFICATION
The following specification particularly describes the invention and the manner in which it
is to be performed.

TECHNICAL FIELD
[0001] The present subject matter, in general, relates to software testing, in particular,
to systems and methods for software testing in a development environment.
BACKGROUND
[0002] In general, software applications have replaced tedious human labor in almost all avenues. For example, in a banking industry, applications are developed and implemented for carrying out monetary transactions and accounting. In a tourism industry, applications are developed and implemented for carrying out travel bookings. Thus, various types of applications are being developed and implemented for reducing human labor in almost all industries. According to the traditional approach followed for application development, functional requirements relating to the application to be developed are obtained from the business and technical team. On the basis of the functional requirements, design and architecture of the application is engineered and the application is developed. Post development, applications are tested to ensure that the applications perform the functions it is designed for. The applications are tested for functionality, bugs, and glitches in order to determine whether the applications meet required goals or not.
[0003] Further, the application is tested for functional defects in a testing environment. In order to test the functionality of a software application, functional testing requirements may be gathered. Based on the functional testing requirements, test scenarios and test cases are designed and the software application is accordingly executed to verify its functionality. If results of the execution reveal that the software application is not performing in an expected or planned manner, the software application is reported to be malfunctioning and the development team modifies the software application to correct the defects found.
SUMMARY
[0004] This summary is provided to introduce concepts related to software testing in a
development environment. These concepts 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.
[0005] In one embodiment, a method for software testing in a development
environment comprises obtaining development environment testing data comprising production data and manufactured data. Further, the method comprises testing a development environment code and an impacted code of a software application based on the development environment testing data to generate a development test result and an impacted test result. Furthermore, the method comprises comparing the development test result with the impacted test result. Based on the comparison, a test report is generated.
BRIEF DESCRIPTION OF THE DRAWINGS
[0006] The detailed description is described with reference to the accompanying
figure(s). In the figure(s), 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 figure(s)
to reference like features and components. Some embodiments of system and/or methods in
accordance with embodiments of the present subject matter are now described, by way of
example only, and with reference to the accompanying figure(s), in which:
[0007] Fig. 1 illustrates a network environment implementing a development
environment testing system, in accordance with an embodiment of the present subject matter.
[0008] Fig. 2 illustrates details of the development environment testing system, in
accordance with an embodiment of the present subject matter.
[0009] Fig. 3 illustrates a method for testing software application in a development
environment, in accordance with an embodiment of the present subject matter.
DETAILED DESCRIPTION
[0010] Conventional systems and methods for software testing involve testing a
software application in a test environment, after it is developed, based on designing test scenarios and/or test cases. The software application is executed based on such test scenarios and/or test cases to test the software application for functional defects. In case results of the execution reveal that the software application is not performing in an expected manner,

defects are reported to the development team and the development team modifies the software
application to correct the defects found.
[0011] Generally, in the test environment, various testing equipments are set up to test
the complete software application or various components of the software application in an
integrated form. In the test environment, testing team has no access to the components, i.e.,
pieces of code of the software application. Further, testing in the test environment is
performed based on test cases, test scenarios, test scripts, and/or other testing artifacts. Any
defects if found at the end of testing are reported to the development team, and the software
application is modified, and retested by the testing team, and the process continues till the
expected test results are obtained.
[0012] The conventional systems and methods of software testing are time consuming,
as the testing process is iterative, and involves creation of various test scenarios, test cases,
and other testing artifacts. Further, the testing is performed in the test environment, which is
set up based on specialized testing equipment, and is therefore resource intensive.
[0013] In accordance with the present subject matter, the systems and methods of
software testing in a development environment are described. The systems and methods
involve testing a software application based on production data, and manufactured data. Thus,
the need of creation of various testing artifacts is eliminated. Further, the testing process is
carried out in a development environment. Thus, the need of setting up the test environment is
eliminated.
[0014] The production data as described herein is the actual data on which the
software application would operate, and is thus considered as reliable for testing the software
application. The production data covers various real-life scenarios. The manufactured data
represents false data, which may be created by altering a portion of the production data or the
entire production data. The manufactured data may be created to cover certain scenarios that
are not covered by production data. According to the present subject matter, the production
data and the manufactured data is collectively used as a development environment testing
(DET) data, for testing the software application in the development environment.
[0015] Subsequent to generation of the DET data based on the production data and
manufactured data, the development environment code of the software application, which is
developed by developers, is executed based on the DET data to generate test results. The test

result obtained by execution of the development environment code is hereinafter referred to as development test result.
[0016] In one implementation, certain changes are made in the development
environment code to generate an impacted code. The impacted code thus produced is tested
on the same DET data to generate another set of test results. Such test result/output obtained
by executing the impacted code is hereinafter referred to as impacted test result.
[0017] Once both the test results are obtained, the development environment test
result is compared with the impacted test result. If the comparison results in an expected
output, the development environment code with impacted code changes may be moved to the
production environment. For example, result of the comparison may also be displayed to the
customer, and the customer's acceptance may be taken in the development environment itself,
and the development environment code can be directly moved to the production environment
eliminating the need of the development environment code be tested in a testing environment.
Therefore, the overall turn-around time taken for testing and developing the development
environment code is reduced, and it may be possible to roll out large number of development
environment codes to the production environment in a short span of time.
[0018] In one implementation, other software applications which are related to the
development environment code are identified. Such related software applications are then tested in the same manner as explained above, in order to ensure that such related software applications also produce an expected output. Thus, the systems and methods of the present subject matter is fast and cost-effective, as the testing process is less iterative, and does not involve creation of testing artifacts.
[0019] The manner in which the software testing in the development environment
takes place shall be explained in detail with respect to the Figs. 1-3. While aspects of systems and methods can 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 architecture(s). Furthermore, the present description has been provided with implementations that are specific to certain business functions or certain businesses. It would be appreciated that other implementations are also covered without deviating from the scope of the present subject matter.

[0020] Fig. 1 illustrates a network environment 100 implementing a development
environment testing system 102, in accordance with an embodiment of the present subject matter. In one implementation, the network environment 100 can be a company network, including thousands of office personal computers, laptops, various servers, such as blade servers, and other computing devices connected over a network 106.
[0021] The development environment testing system 102 (hereinafter referred to as
system 102) is connected to a plurality of user devices 104-1, 104-2, 104-3,...104-N, collectively referred to as the user devices 104 and individually referred to as a user device 104, through a network 106. The system 102 may be implemented in a variety of computing systems, such as servers, a desktop personal computer, a notebook or portable computer, a workstation, a mainframe computer, and a laptop. The user devices 104 may include, without limitation, desktop computers, laptops or other portable computing devices, and network computing devices. The users, such as developers may use the user devices 104 to interact with the system 102 and to test a software application.
[0022] The network 106 may be a wireless network, 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 such. The network 106 may either be a dedicated network or a shared network, which 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), and Wireless Application Protocol (WAP), to communicate with each other. Further, the network 106 may include a variety of network devices, including routers, bridges, servers, computing devices, storage devices.
[0023] The system 102, according to an implementation of the present subject matter,
receives production data 112 from a database 110. The database 110 may be a production
database associated with system 102 through the network 106. In one implementation, the
production data 112 may be copied from the database 110 into an internal repository of the
system 102, and is thereafter retrieved from the internal repository for testing purposes.
[0024] Further, the system 102 receives manufactured data. In one implementation,
the manufactured data may be received from a user. For example, the user may alter the production data 112 to generate manufactured data either manually or using various synthetic

data generation tools, known in the art. In another implementation, a synthetic data generation tool may be integrated within the system 102 for generating manufactured data based on the production data 112. The production data 112 and the manufactured data, thus, received, is used as a development environment testing (DET) data for testing a software application in a development environment.
[0025] .The system 102 includes a testing module 108 that receives the DET data and
performs testing of the software application. For testing, the testing module 108 executes a development environment code based on the DET data to obtain development test result. Further, the testing module 108 executes an impacted code based on the DET data to obtain impacted test result. The development environment code may be understood as an original code of the software application to be tested, and the manufactured code may be understood as a test code which is developed by modifying a portion of the development environment code, and is used for testing the development environment code.
[0026] The system 102 compares the development test result with the impacted test
result to determine whether result of the comparison indicate an expected output. Based on the result of the comparison, the system 102 generates a test report. In one implementation, one or more other software applications that are associated with the development environment code are identified, integrated, and tested to produce integrated test report.
[0027] Fig. 2 illustrates details of the system 102, according to an embodiment of the
present subject matter.
[0028] In said embodiment, the system 102 includes one or more processor(s) 202, a
memory 204 coupled to the processor 202, and interface(s) 206. The 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 processor 202 is configured to fetch and execute computer-readable instructions and data stored in the memory 204. The interface(s) 206 may include a variety of software and hardware interfaces, for example, a web interface, a graphical user interface, allowing the system 102 to interact with the user devices 104. Further, the interface(s) 206 may enable the system 102 to communicate with other computing devices, such as web servers and external data servers (not shown in figure). The interface(s) 206 can facilitate multiple

communications within a wide variety of networks and protocol types, including wired networks, for example LAN, cable, and wireless networks such as WLAN, cellular, or satellite. The interface(s) 206 may include one or more ports for connecting the system 102 to a number of other devices to or to another server.
[0029] The memory 204 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 204 also includes module(s) 208 and data 210.
[0030] The modules 208 include routines, programs, objects, components, data
structures, etc., which perform particular tasks or implement particular abstract data types. The modules 208 further include the testing module 108, an analysis module 212, and other modules 214. The other modules 214 may include programs or coded instructions that supplement applications and functions on the system 102.
[0031] The data 210, amongst other things, serves as a repository for storing data
processed, received, and generated by one or more of the module(s) 208. The data 210 includes development environment testing (DET) data 216, development environment code 218, impacted code 220, development test result 222, impacted test result 224, analysis data 226, and other data 228. The other data 228 may include data generated as a result of the execution of one or more modules in the other modules 214.
[0032] In accordance with an embodiment of the present subject matter, the testing
module 108 receives DET data 216. The DET data comprises production data, and the manufactured data. The testing module 108 may obtain the production data from a database, such as the database 110, while the manufactured data may be obtained from a user, such as a developer. The user may, for example, manually alter at least a portion of the production data, or use conventionally known synthetic data generation tools to create the manufactured data. In one implementation, a synthetic data generation module (not shown in the figure) may be integrated within the system 102, which is configured to generate the manufactured data based on the production data.
[0033] Subsequent to receiving the DET data 216, the testing module 108 executes a
development environment code 218 of the software application based on the DET data 216 to

generate development test result 222. As indicated previously, the development environment code 218 is original code of the software application to be tested.
[0034] Further, the testing module 108 executes the impacted code 220 of the software
application based on the DET data 216 to generate impacted test result 224. The impacted code 220 may be understood as a test code, which is used to test the development environment code 218. Such an impacted code 220 is produced by altering a portion of the development environment code 218 to determine an impact of the impacted code 220 on the functionality of the development environment code 218.
[0035] The development test result 222 and the impacted test result 224 thus
generated is analyzed by the analysis module 212. The analysis module 212, for example, compares the development test result 222 with the impacted test result 224 to determine the differences between the two. Further, the analysis module 212 generates a test report indicative of such differences. If result of the comparison, i.e., difference between the development test result and the impacted test result are as expected, the development environment code 218 may be moved to a production environment upon obtaining customer's acceptance/approval. In case result of the comparison indicates that other functionality of the development environment code 218, i.e., functionality apart from the one based on alterations made to the code is changed, the development environment code 218 may be rectified, and retested.
[0036] Considering an example where the development environment code 218 is
designed to operate on production data that includes branch code as primary key based on
which account information about various offices of an organization can be obtained. In the
development environment code 218, the branch code is defined to accept only numeric data as
input. In said example, an impacted code is created which can accept the alpha-numeric data
as input. The DET data 216 which is provided as an input to the development environment
code 218 and impacted code 220 includes the production data in which the branch code are in
numeric form, and manufactured data which is created based on altering a portion of the
production data to include false branch codes that are in alpha-numeric form.
[0037] The testing module 108 then executes the development environment code 218
based on the DET data 216 to generate development test result 222, and also executes the impacted code 220 based on the DET data 216 to produce impacted test result 224. In the

above example, the development environment code 218 may not operate on data pertaining to alpha-numeric branch codes, while the impacted code 220 may not operate on data pertaining to numeric branch codes. Thus, when the development test result 222 and the impacted test result 224 are compared, and comparison indicates only differences with respect to branch codes, and no other differences, the test report containing such differences may be displayed to the customer, and customer's acceptance may be obtained to move the development environment code 218 to the production environment.
[0038] In one implementation, the testing module 108 other software applications
which are related to the development environment code, for example, upstream and downstream applications, are identified and tested in the same manner as explained above to ensure that the related software applications also produces expected output. The accumulated result obtained after the testing of software application and related software applications may be provided in form of an integrated test report.
[0039] Fig. 3 illustrates a method 300 for software testing in a development
environment, in accordance with an embodiment of the present subject matter. The method 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, etc., that perform particular functions or implement particular abstract data types. The method 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.
[0040] The order in which the method 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, or an alternative method. Additionally, individual blocks may be deleted from the method 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.
[0041] At block 302, development environment testing data comprising production
data and manufactured data is obtained as an input for testing a software application. As

indicated previously, the production data is the operational data, which is also referred to as real data. The manufactured data is a synthetic data that is generated by alternating a portion of the production data or entire production data. Such manufactured data is also referred as unreal or false data. The manufactured data may be created by a user, such as a developer either manually or using conventionally available synthetic data generation tools. In one implementation, a synthetic data generation module may be provided within the system 102 to generate the manufactured data based on the production data. In one implementation, the testing module 108 obtains the manufactured data and production data as development environment testing data 216 for testing the software application in a development environment.
[0042] At block 304, development environment code is tested based on the
development environment testing data to generate development test result. In one implementation, the testing module 108 executes the development environment code 218 based on the development environment testing data 216 to generate development test result 222.
[0043] At block 306, an impacted code is tested based on the development
environment testing data to generate impacted test result. In one implementation, the testing module 108 executes the impacted code 220 based on the development environment testing data 216 to generate impacted test result 224. In one implementation, the testing module 108 may be configured to test the development environment code 218 and the impacted code 220 in parallel in order to save the testing time. In another implementation, the testing module 108 may be configured to test the development environment code 218 and the impacted code 220 sequentially, i.e., one after the other.
[0044] At block 308, the development test result obtained upon testing the
development environment code is compared with the impacted test result obtained upon
testing the impacted code to determine differences in the development test result and the
impacted test result. In one implementation, the analysis module 212 of the system 102
compares the development test result 222 with the impacted test result 224. The analysis
module 212 may store result of the comparison within the analysis data 226.
[0045] At block 310, a test report is generated based on the comparing. The test report
contains the result of the comparison. If the comparison results in an expected output, a

customer acceptance may be taken and the development environment code is moved to a production environment, where the development environment code is deployed. While, if the comparison results in an un-expected output, the development environment code may be remediated and retested. In one implementation, the analysis module 212 generates the test report based on the analysis data 226.
[0046] Although embodiments for software testing in a development environment
have been described in language specific to structural features and/or methods, it is to be understood that the invention is not necessarily limited to the specific features or methods described. Rather, the specific features and methods are disclosed as exemplary implementations for systems and methods for software testing in a development environment.

I/We claim:
1. A method of software testing in a development environment, the method comprising:
obtaining development environment testing data comprising production data and manufactured data;
testing a development environment code and an impacted code of a software application, based on the development environment testing data to generate a development test result and an impacted test result;
comparing the development test result with the impacted test result; and
generating a test report based on the comparison.
2. The method as claimed in claim 1 further comprises identifying at least one related software application to be integrated with the development environment code.
3. The method as claimed in claim 2 further comprises testing the at least one related software application based on the development environment testing data, to generate an integrated test report.
4. The method as claimed in claim 1 further comprises generating manufactured data based on the production data.
5. A development environment testing (DET) system (102) comprising:
a processor (202); and
a memory (204) coupled to the processor (202), the memory (204) comprising:
a testing module (108) configured to test a development environment code (218) and an impacted code (220) of a software application based on DET data (216) to generate development test result (222) and impacted test result (224), wherein the DET data (216) comprises production data and manufactured data; and
an analysis module (212) configured to generate a test report based on comparing the development test result (222) with the impacted test result (224).
6. The DET system (102) as claimed in claim 5, wherein the analysis module (212) is
further configured to identify at least one related software application to be integrated with the development environment code (218).

7. The DET system (102) as claimed in claim 6, wherein the testing module (108) is
further configured to test the at least one related software application based on the DET data (216).
8. The DET system (102) as claimed in claim 7, wherein the analysis module (212) is
further configured to generate an integrated test report.
9. The DET system (102) as claimed in claim 5 further comprises a synthetic data
generation module configured to generate the manufactured data based on the production data.
10. A computer-readable medium having embodied thereon a computer program for
executing a method for software testing in a development environment, the method
comprising:
obtaining development environment testing data comprising production data and manufactured data;
testing a development environment code and an impacted code of a software application, based on the development environment testing data to generate a development test result and an impacted test result, wherein the testing is performed in a development environment; and
generating a test report based on comparing the development test result with the impacted test result.

Documents

Application Documents

# Name Date
1 538-MUM-2012-Written submissions and relevant documents (MANDATORY) [07-11-2019(online)].pdf 2019-11-07
1 ABSTRACT1.jpg 2018-08-11
2 538-MUM-2012-FORM 3.pdf 2018-08-11
2 538-MUM-2012-Correspondence to notify the Controller (Mandatory) [22-10-2019(online)].pdf 2019-10-22
3 538-MUM-2012-FORM 26(25-4-2012).pdf 2018-08-11
3 538-MUM-2012-HearingNoticeLetter-(DateOfHearing-25-10-2019).pdf 2019-10-14
4 538-MUM-2012-FORM 2.pdf 2018-08-11
5 538-MUM-2012-FORM 18(1-3-2012).pdf 2018-08-11
6 538-MUM-2012-FER.pdf 2018-08-11
7 538-MUM-2012-CORRESPONDENCE(25-4-2012).pdf 2018-08-11
8 538-MUM-2012-CORRESPONDENCE(1-3-2012).pdf 2018-08-11
9 538-MUM-2012-OTHERS [03-10-2018(online)].pdf 2018-10-03
10 538-MUM-2012-FER_SER_REPLY [03-10-2018(online)].pdf 2018-10-03
11 538-MUM-2012-COMPLETE SPECIFICATION [03-10-2018(online)].pdf 2018-10-03
12 538-MUM-2012-CLAIMS [03-10-2018(online)].pdf 2018-10-03
13 538-MUM-2012-HearingNoticeLetter-(DateOfHearing-25-10-2019).pdf 2019-10-14
14 538-MUM-2012-Correspondence to notify the Controller (Mandatory) [22-10-2019(online)].pdf 2019-10-22
15 538-MUM-2012-Written submissions and relevant documents (MANDATORY) [07-11-2019(online)].pdf 2019-11-07

Search Strategy

1 SEARCH_STRATEGY_538MUM2012_17-04-2018.pdf