Sign In to Follow Application
View All Documents & Correspondence

A System And Method For Ensuring Quality Of A Software Product Without Testing Phase

Abstract: Disclosed is a system for ensuring quality of a software product. In order to ensure the quality of the software product, the system conforms quality the product during the development phase itself without an independent testing phase. In one aspect, the system conforms quality by ensuring development activities are progressing towards path of success. To do so, the system defines various possible success paths for the software in development during the design and requirement definition stage itself and further ensures, at any point of development time, the development is not deviated from the success path beyond an acceptable level.

Get Free WhatsApp Updates!
Notices, Deadlines & Correspondence

Patent Information

Application #
Filing Date
20 May 2017
Publication Number
22/2017
Publication Type
INA
Invention Field
COMPUTER SCIENCE
Status
Email
ip@legasis.in
Parent Application

Applicants

HCL Technologies Limited
A-9, Sector - 3, Noida 201 301, Uttar Pradesh, India

Inventors

1. M, Hareendran
HCL Technologies Limited, Chennai-Kandanchavadi, Mahabalipuram Rd, 4/293, Chennai 600096, Tamil Nadu, India
2. MANGI, Sudakar
HCL Technologies Limited, Chennai-Kandanchavadi, Mahabalipuram Rd, 4/293, Chennai 600096, Tamil Nadu, India
3. BHAGAVATHIAMMAL, Padmajaya
HCL Technologies Limited, Chennai-Kandanchavadi, Mahabalipuram Rd, 4/293, Chennai 600096, Tamil Nadu, India
4. SURAPARAJU, Rajesh Babu
HCL Technologies Limited, Chennai-Kandanchavadi, Mahabalipuram Rd, 4/293, Chennai 600096, Tamil Nadu, India

Specification

CROSS REFERENCE TO RELATED APPLICATIONS
[001] This patent application does not claim priority from any application.
TECHNICAL FIELD
[002] The present subject matter described herein, in general, relates to ensure quality of a software product. More particularly, a system and method for ensuring the quality without testing the software product.
BACKGROUND
[003] Like any other product, a software product is deployed in a production only after successfully testing each module belongs to the software product. It may be noted that testing efforts require a lot of resources including manpower, financial, time etc. Even after spending a lot of resources in testing the software product, the testing efforts remain fruitless in a Software development process when no defect is detected in a testing phase pertaining to the software product. Thus, the testing phase in a Software Development Lifecycle (SDLC) may be considered as an overhead in such scenarios.
SUMMARY
[004] Before the present systems and methods, are described, it is to be understood that this application is not limited to the particular systems, and methodologies described, as there can be multiple possible embodiments which are not expressly illustrated in the present disclosure. It is also to be understood that the terminology used in the description is for the purpose of describing the particular versions or embodiments only, and is not intended to limit the scope of the present application. This summary is provided to introduce concepts related to systems and methods for ensuring quality of a software product and the 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 limiting the scope of the claimed subject matter.
[005] In one implementation, a system for ensuring quality of a software product is disclosed. The system may comprise a processor and a memory coupled to the processor. The
3
processor may execute a plurality of modules present in the memory. The plurality of modules may comprise a decomposing module, a computation module, and a determining module. The decomposing module decomposes a software product into a plurality of requirement blocks. In one aspect, each requirement block may be associated to a Requirement Block Value (RBV). The decomposing module further decomposes each requirement block into a plurality of function blocks. In one aspect, each function block comprises one or more functions, and wherein each function block may be associated to a Function Block Value (FBV). In one aspect, each requirement block may comprise a first set of traversal paths formed upon interlinking one or more function blocks in a manner such that an expected requirement of the requirement block is achieved. The computation module computes the FBV corresponding to each function block based on an input, an output, and a plurality of influential parameters. The determining module determines a Requirement Value (RV) corresponding to each traversal path of the first set of traversal paths. In one aspect, the RV may be determined based on the FBV computed for each function block. The determining module further determines a first set of success path from the first set of traversal paths based on the RV determined for each traversal path. The computation module for computing the RBV corresponding to each requirement block based on the RV computed for the first set of success path. The determining module further determines a second set of traversal paths formed upon interlinking one or more requirement blocks, of the plurality of requirement blocks, in a manner such that an expected output of the software product is achieved. In one aspect, the one or more requirement blocks may be associated to the first set of success path. The determining module further determines a Software Product Value (SWV) corresponding to each traversal path of the second set of traversal paths. In one aspect, the SWV may be determined based on the RBV computed for each requirement block. The determining module further determines a second set of success path from the second set of traversal paths based on the SWV determined for each traversal path.
[006] In another implementation, a method for ensuring quality of a software product is disclosed. In order to ensure the quality, a software product may be decomposed into a plurality of requirement blocks. In one aspect, each requirement block may be associated to a Requirement Block Value (RBV). In one embodiment, each requirement block may be decomposed into a plurality of function blocks. In one aspect, each function block may comprise one or more functions, and wherein each function block may be associated to a Function Block Value (FBV). Upon decomposing the software product and
4
each requirement block, the FBV may be computed corresponding to each function block based on an input, an output, and a plurality of influential parameters. Based on the computation, a Requirement Value (RV) may be determined corresponding to each traversal path of the first set of traversal paths. In one aspect, the RV may be determined based on the FBV computed for each function block. Subsequently, a first set of success path may be determined from the first set of traversal paths based on the RV determined for each traversal path. Subsequent to the determination of the RV and the first set of success path, a second set of traversal paths may be determined. The second set of traversal paths are formed upon interlinking one or more requirement blocks, of the plurality of requirement blocks, in a manner such that an expected output of the software product is achieved. In one aspect, the one or more requirement blocks may be associated to the first set of success path. After determination of the second set of traversal paths, a Software Product Value (SWV) corresponding to each traversal path of the second set of traversal paths may be determined. In one aspect, the SWV may be determined based on the RBV computed for each requirement block. Post determination of the SWV, a second set of success path may be determined from the second set of traversal paths based on the SWV determined for each traversal path. In one aspect, the aforementioned method for ensuring quality of the software product may be performed by a processor using programmed instructions stored in a memory.
[007] In yet another implementation, non-transitory computer readable medium embodying a program executable in a computing device for ensuring quality of a software product is disclosed. The program may comprise a program code for decomposing a software product into a plurality of requirement blocks, wherein each requirement block is associated to a Requirement Block Value (RBV), and each requirement block into a plurality of function blocks, and wherein each function block comprises one or more functions, and wherein each function block is associated to a Function Block Value (FBV), and wherein each requirement block comprises a first set of traversal paths formed upon interlinking one or more function blocks in a manner such that an expected requirement of the requirement block is achieved. The program may further comprise a program code for computing the FBV corresponding to each function block based on an input, an output, and a plurality of influential parameters. The program may further comprise a program code for determining a Requirement Value (RV) corresponding to each traversal path of the first set of traversal paths, wherein the RV is determined based on the FBV computed for each function block, and a first set of success path from the first set of traversal paths based on the RV determined for each traversal path.
5
The program may further comprise a program code for computing the RBV corresponding to each requirement block based on the RV computed for the first set of success path. The program may further comprise a program code for determining a second set of traversal paths formed upon interlinking one or more requirement blocks, of the plurality of requirement blocks, in a manner such that an expected output of the software product is achieved, wherein one or more requirement blocks are associated to the first set of success path, a Software Product Value (SWV) corresponding to each traversal path of the second set of traversal paths, wherein the SWV is determined based on the RBV computed for each requirement block, and a second set of success path paths from the second set of traversal paths based on the SWV determined for each traversal path.
BRIEF DESCRIPTION OF THE DRAWINGS
[008] The foregoing detailed description of embodiments is better understood when read in conjunction with the appended drawings. For the purpose of illustrating the disclosure, example constructions of the disclosure are shown in the present document; however, the disclosure is not limited to the specific methods and apparatus disclosed in the document and the drawings.
[009] The detailed description is given 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.
[0010] Figure 1 illustrates a network implementation of a system for ensuring quality of a software product, in accordance with an embodiment of the present subject matter.
[0011] Figure 2 illustrates the system, in accordance with an embodiment of the present subject matter.
[0012] Figures 3, 4A, 4B, 5, and 6 illustrate various embodiments of the system for ensuring the quality of the software product.
[0013] Figure 7 illustrates a method for ensuring the quality of the software product, in accordance with an embodiment of the present subject matter.
6
DETAILED DESCRIPTION
[0014] Some embodiments of this disclosure, 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, the exemplary, systems and methods are now described. The disclosed embodiments are merely exemplary of the disclosure, which may be embodied in various forms.
[0015] Various modifications to the embodiment will be readily apparent to those skilled in the art and the generic principles herein may be applied to other embodiments. However, one of ordinary skill in the art will readily recognize that the present disclosure is not intended to be limited to the embodiments illustrated, but is to be accorded the widest scope consistent with the principles and features described herein.
[0016] The proposed invention facilitates to conform quality of a software product during a development phase itself without an independent testing phase by ensuring development activities are progressing towards path of success. In other words, the present approach enables to deploy the software product developed with a test less development phase by calculating quality index along with the development progress. To do so, the proposed invention facilitates to define the various possible success path for the software product in software development during design / requirement definition stage and ensuring, at any point of development time, the quality is not deviated from the success path beyond an acceptable level.
[0017] The major steps involved in constructing the success path for the software product are explained below. It may be understood that the software product is developed based on various requirements, wherein each requirement is specified to achieve a designated task. In order to compute the SWV, the software product is decomposed into a series of requirement block, wherein each requirement block is associated with a Requirement Block Value (RBV). It may further be understood that each requirement may further be decomposed into a series of functional blocks, wherein each function block may be associated with a
7
Functional Block Value (FBV). Based on a role of a functional block, the requirement completion status may be identified along with a Requirement Value (RV). Using the RV and a plurality of influential parameters, the RBV may be calculated. Example of the influential parameters may comprise predecessor-requirement dependencies, successor requirement dependencies, time factor, acceptable input combinations, expected output combinations, and acceptation deviation level.
[0018] Subsequent to the determination of the RBV and based on a quality index / completion status of the requirement, the SWV may be calculated and confirmed against the configured acceptance level. While aspects of described system and method for ensuring the quality of the software product 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.
[0019] Referring now to Figure 1, a network implementation 100 of a system 102 system for ensuring quality of a software product is disclosed. The system 102 decomposes a software product into a plurality of requirement blocks. In one aspect, each requirement block may be associated to a Requirement Block Value (RBV). The system 102 further decomposes each requirement block into a plurality of function blocks. In one aspect, each function block comprises one or more functions, and wherein each function block is associated to a Function Block Value (FBV). The system 102 further computes the FBV corresponding to each function block based on an input, an output, and a plurality of influential parameters. The system 102 further determines a Requirement Value (RV) corresponding to each traversal path of the first set of traversal paths. In one aspect, the RV may be determined based on the FBV computed for each function block. The system 102 further determines a first set of success path from the first set of traversal paths based on the RV determined for each traversal path. The system 102 further computes the RBV corresponding to each requirement block based on the RV computed for the first set of success path. The system 102 further determines a second set of traversal paths formed upon interlinking one or more requirement blocks, of the plurality of requirement blocks, in a manner such that an expected output of the software product is achieved. In one aspect, the one or more requirement blocks may be associated to the first set of success path. The system 102 further determines a Software Product Value (SWV) corresponding to each traversal path of the second set of traversal paths. In one aspect, the SWV may be determined based on the RBV computed for each
8
requirement block. The system 102 further determines a second set of success path paths from the second set of traversal paths based on the SWV determined for each traversal path.
[0020] Although the present disclosure is explained considering that the system 102 is implemented on a server, it may be understood that the system 102 may 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, a cloud-based computing environment. It will be understood that the system 102 may be accessed by multiple users through one or more user devices 104-1, 104-2…104-N, collectively referred to as user 104 or stakeholders, hereinafter, or applications residing on the user devices 104. In one implementation, the system 102 may comprise the cloud-based computing environment in which a user may operate individual computing systems configured to execute remotely located applications. Examples of the user devices 104 may include, but are not limited to, a IoT device, IoT gateway, 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.
[0021] 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.
[0022] 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.
9
[0023] 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 the 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.
[0024] The memory 206 may include any computer-readable medium or computer program product 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.
[0025] The modules 208 include routines, programs, objects, components, data structures, etc., which perform particular tasks or implement particular abstract data types. In one implementation, the modules 208 may include a decomposing module 212, a computation module 214, a determining module 216, and other modules 218. The other modules 218 may include programs or coded instructions that supplement applications and functions of the system 102. The modules 208 described herein may be implemented as software modules that may be executed in the cloud-based computing environment of the system 102.
[0026] 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 system database 220 and other data 222. The other data 222 may include data generated as a result of the execution of one or more modules in the other modules 218.
[0027] As there are various challenges observed in the existing art, the challenges necessitate the need to build the system 102 for ensuring quality of a software product. It may be understood that the system 102 is combination of hardware and/or software module that may facilitate the user to handle multiple IoT devices/gateways from different vendors, wherein the IoT devices/gateways are using distinct communication protocols. In order to
10
facilitate the communication, at first, a user may use the user device 104 to access the system 102 via the I/O interface 204. The user may register them using the I/O interface 204 to use the system 102. In one aspect, the user may access the I/O interface 204 of the system 102. In order to facilitate the communication, the system 102 may employ the decomposing module 212, the computation module 214, and the determining module 216. The detail functioning of the modules is described below with the help of figures.
[0028] The decomposing module 212 decomposes a software product into a plurality of requirement blocks. In one aspect, each requirement block may be associated to a Requirement Block Value (RBV). The decomposing module 212 further decomposes each requirement block into a plurality of function blocks wherein each function block is associated to a Function Block Value (FBV). In one embodiment, each requirement block may comprise a first set of traversal paths formed upon interlinking one or more function blocks in a manner such that an expected requirement of the requirement block is achieved.
[0029] In one aspect, each function block comprises one or more functions. It may be noted that a function is considered as the base component. Each function may take multiple input combinations and generate multiple output combinations. As shown in figure 3, a function F1 takes multiple inputs i.e. Input 1, Input 2, Input 3, and Input n and generates multiple outputs i.e. Output 1, Output 2, and Output m. In one embodiment, one function may have multiple Function Values (FVs) based on the input-output mapping. In the same example, it is to be noted that, in function F1, the Input 1 auspicate with the Output 1 has function value FV1. Similarly, the Input 1 auspicate with Output 2 has function value FV2 and likewise.
[0030] Upon decomposing the software product and the requirement block, the computation module 214 computes the FBV corresponding to each function block based on an input, an output, and a plurality of influential parameters. In one embodiment, the FBV may be derived by applying a Function Value (FV) on the plurality of influential parameters. It may be noted that one function block is the association of one Function Value (FV) with the one or more influential parameters. Hence one function may associate with multiple function block based on the Function Values. Examples of the plurality of influential parameters may include, but not limited to, predecessor-requirement dependencies, successor requirement dependencies, time factor, acceptable input combinations, expected output combinations, and acceptation deviation level. For example, as illustrated in figure 4A, FBV 1 corresponds to Input 1 and Output 2 of the function in the context of one or more
11
influencing parameters. Similarly, as illustrated in figure 4B, FBV 2 corresponds to Input 3 and Output 1 of the function in the context of one or more influencing parameters.
[0031] Subsequent to the computation of the FBV, the determining module 216 determines a Requirement Value (RV) corresponding to each traversal path of the first set of traversal paths. In one embodiment, the RV may be computed based on a predefined formulation mentioned below.
RV = ( Sum ( FVi * f ( FVi ) ) …………(1)
[0032] wherein FV indicates Function Value and ‘f’ indicates at least one influential parameter. In one aspect, the RV may be determined based on the FBV computed for each function block. It may be understood that the requirement may be decomposed into the plurality of function blocks wherein each function block is linked to at least one subsequent function block. It is to be noted that there may be multiple end points for a requirement and the end point may be a success endpoint or a failure endpoint. From the start point to the end point there may be multiple traversal path which may be passed through various function blocks wherein each traversal path is associated to the RV. Thus, based on the above, it may be understood that there may be multiple resource values (RVs) for a requirement.
[0033] In one embodiment, the determining module 216 further determines a first set of success path from the first set of traversal paths based on the RV determined for each traversal path. In one aspect, the first set of success path may be determined based upon comparing the RV corresponding to each traversal path, of the first set of traversal paths, with a predefined threshold value range. In other words, based on the acceptance level of the functional and nonfunctional aspects of the requirement, the predefined threshold value range may be calculated. If the RV corresponding to each traversal path falls within the predefined threshold value range, the corresponding traversal path may be considered as the success path. On the contrary, if the RV corresponding to each traversal path falls outside the predefined threshold value range, the corresponding traversal path may be considered as the failure path.
[0034] Referring to figure 5, an example of a requirement pertaining to a software product is illustrated. As shown in the figure, the requirement comprises a start point, a plurality of functional blocks, having a FBV associated to each functional block, and multiple endpoints hereinafter referred to as End 1, End 2, End n, and End m. It may be understood that there may be several traversal paths that may lead to the success endpoint and the failure
12
end point. It may be noted that End 1, End 2, and End n are the success endpoint whereas End m is the failure endpoint. Since there are several traversal paths to reach either the success endpoint or the failure endpoint, the RV corresponding to each traversal path may be determined. In this example, the RV corresponding to a traversal path leading to the success endpoint End 1 is determined as RV1. Since the traversal path is leading to the success endpoint End 1, it indicates that the RV1 falls within the predefined threshold value range. Similarly, the RV corresponding to a traversal path leading to the failure endpoint End n is determined as RVn. Since the traversal path is leading to the failure endpoint End n, it indicates that the RVn falls outside the predefined threshold value range. Thus, in this manner, the determining module 216 determines the RV corresponding to each traversal path of the first set of traversal paths and thereby determines the first set of success path from the first set of traversal paths.
[0035] Subsequent to the determination of the RV and the first set of success path, the computation module 214 computes the RBV corresponding to each requirement block based on the RV. In one aspect, the RBV may be derived by applying the RV on at least one of the plurality of influential parameters. It may be understood that one requirement block is the association of one requirement value with the other influential parameters. Hence one requirement may associate with multiple function blocks based on its requirement values.
[0036] After determination of the RBV, the determining module 216 determines a second set of traversal paths formed upon interlinking one or more requirement blocks, of the plurality of requirement blocks, in a manner such that an expected output of the software product is achieved. In one aspect, the one or more requirement blocks may be associated to the first set of success path. Upon determining the second set of traversal paths, the determining module 216 determines a Software Product Value (SWV) corresponding to each traversal path of the second set of traversal paths. In one embodiment, the SWV may be computed based on a predefined formulation mentioned below.
SWV = ( Sum ( RVi * f ( RVi ) ) ……………(2)
[0037] wherein RV indicates Requirement Value and ‘f’ indicates at least one influential parameter. In one aspect, the SWV may be determined based on the RBV computed for each requirement block.
[0038] In one embodiment, the determining module 216 further determines a second set of success path from the second set of traversal paths based on the SWV determined for
13
each traversal path. In one aspect, the second set of success path may be determined based upon comparing the SWV corresponding to each traversal path, of the first set of traversal paths, with a predefined threshold value range. In other words, based on the acceptance level of the functional and nonfunctional aspects of the requirement, the predefined threshold value range may be calculated. If the SWV corresponding to each traversal path falls within the predefined threshold value range, the corresponding traversal path may be considered as the success path. On the contrary, if the SWV corresponding to each traversal path falls outside the predefined threshold value range, the corresponding traversal path may be considered as the failure path.
[0039] For example, as illustrated in the figure 6, the software product may be represented in the form of requirement blocks. The software product comprises a start point, a plurality of requirement blocks, having a RBV associated to each requirement block, and multiple endpoints hereinafter referred to as End 1, End 2, End n, and End m. It may be understood that there may be several traversal paths that may lead to the success endpoint and the failure end point. It may be noted that End 1, End 2, and End n are the success endpoint whereas End m is the failure endpoint. Since there are several traversal paths to reach either the success endpoint or the failure endpoint, the SWV corresponding to each traversal path may be determined. In this example, the SWV corresponding to a traversal path leading to the success endpoint End 1 is determined as SWV1. Since the traversal path is leading to the success endpoint End 1, it indicates that the SWV1 falls within the predefined threshold value range. Similarly, the SWV corresponding to a traversal path leading to the failure endpoint End n is determined as SWVn. Since the traversal path is leading to the failure endpoint End n, it indicates that the SWVn falls outside the predefined threshold value range. Thus, in this manner, the determining module 216 determines the SWV corresponding to each traversal path of the second set of traversal paths and thereby determines the second set of success path from the second set of traversal paths.
[0040] Based on the aforementioned description, it may be understood that the system 102 determines one or more functions, associated to the first set of success path and the second set of success path, to be used for development of the software product and thereby the one or more function in the development of the software product to ensure the quality without testing the software product.
[0041] Referring now to Figure 7, a method 700 for ensuring quality of a software product is shown, in accordance with an embodiment of the present subject matter. The
14
method 700 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 700 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.
[0042] The order in which the method 700 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 700 or alternate methods. Additionally, individual blocks may be deleted from the method 700 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 700 may be considered to be implemented as described in the system 102.
[0043] At block 702, a software product may be decomposed into a plurality of requirement blocks, wherein each requirement block may be associated to a Requirement Block Value (RBV). Each requirement block may further be decomposed into a plurality of function blocks, wherein each function block comprises one or more functions, and wherein each function block may be associated to a Function Block Value (FBV). In one aspect, each requirement block comprises a first set of traversal paths formed upon interlinking one or more function blocks in a manner such that an expected requirement of the requirement block is achieved. In one implementation, the software product and each requirement block may be decomposed by the decomposing module 212.
[0044] At block 704, the FBV corresponding to each function block may be computed based on an input, an output, and a plurality of influential parameters. In one implementation, the FBV may be computed by the computation module 214.
[0045] At block 706, Requirement Value (RV) corresponding to each traversal path of the first set of traversal paths may be determined. In one aspect, the RV may be determined based on the FBV computed for each function block. Further, a first set of success path may be determined from the first set of traversal paths based on the RV
15
determined for each traversal path. In one implementation, the RV and the first set of success path may be determined by the determining module 216.
[0046] At block 708, the RBV corresponding to each requirement block may be computed based on the RV computed for the first set of success path. In one implementation, the RBV may be computed by the computation module 214.
[0047] At block 710, a second set of traversal paths may be determined, wherein the second set of traversal paths are formed upon interlinking one or more requirement blocks, of the plurality of requirement blocks, in a manner such that an expected output of the software product is achieved, and wherein the one or more requirement blocks are associated to the first set of success path. Further, a Software Product Value (SWV) may be determined corresponding to each traversal path of the second set of traversal paths. In one aspect, the SWV may be determined based on the RBV computed for each requirement block. Further, a second set of success path may be determined from the second set of traversal paths based on the SWV determined for each traversal path. In one implementation, the second set of traversal paths, the SWV, and the second set of success path may be determined by the determining module 216.
[0048] Exemplary embodiments discussed above may provide certain advantages. Though not required to practice aspects of the disclosure, these advantages may include those provided by the following features.
[0049] Some embodiments enable a system and a method to identify actual recommended test cases to be tested.
[0050] Some embodiments enable a system and a method to reduce tester’s time.
[0051] Some embodiments enable a system and a method to optimize utilization of resources including, financial resource, time resource, and human resource.
[0052] Although implementations for methods and systems for ensuring quality of a software product have been described in language specific to structural features and/or methods, 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 ensuring the quality of the software product.

WE CLAIM:
1. A method for ensuring quality of a software product, the method comprising:
decomposing, by a processor,
a software product into a plurality of requirement blocks, wherein each requirement block is associated to a Requirement Block Value (RBV), and
each requirement block into a plurality of function blocks, wherein each function block comprises one or more functions, and wherein each function block is associated to a Function Block Value (FBV),
and wherein each requirement block comprises a first set of traversal paths formed upon interlinking one or more function blocks in a manner such that an expected requirement of the requirement block is achieved;
computing, by the processor, the FBV corresponding to each function block based on an input, an output, and a plurality of influential parameters, and
determining, by the processor,
a Requirement Value (RV) corresponding to each traversal path of the first set of traversal paths, wherein the RV is determined based on the FBV computed for each function block, and
a first set of success path from the first set of traversal paths based on the RV determined for each traversal path;
computing, by the processor, the RBV corresponding to each requirement block based on the RV computed for the first set of success path; and
determining, by the processor,
a second set of traversal paths formed upon interlinking one or more requirement blocks, of the plurality of requirement blocks, in a manner such that an expected output of the software product is achieved, wherein the one or more requirement blocks are associated to the first set of success path,
a Software Product Value (SWV) corresponding to each traversal path of the second set of traversal paths, wherein the SWV is determined based on the RBV computed for each requirement block, and
a second set of success path from the second set of traversal paths based on the SWV determined for each traversal path.
17
2. The method of claim 1 determines one or more functions, associated to the first set of success path and the second set of success path, to be used for development of the software product thereby ensuring the quality of the software product.
3. The method of claim 1, wherein the FBV and RBV are computed based on a predefined formulation.
4. The method of claim 1, wherein the first set of success path is determined upon comparing the RV corresponding to each traversal path, of the first set of traversal paths, with a predefined threshold value range, and wherein the second set of success path is determined upon comparing the SWV corresponding to each traversal path, of the second set of traversal paths, with a predefined threshold value range.
5. The method of claim 1, wherein the influential parameters comprise predecessor-requirement dependencies, successor requirement dependencies, time factor, acceptable input combinations, expected output combinations, and acceptation deviation level.
6. A system (102) for ensuring quality of a software product, the system (102) comprising:
a processor (202); and
a memory (206) coupled to the processor (202), wherein the processor (202) is capable of executing a plurality of modules stored in the memory (206), and wherein the plurality of modules comprising:
a decomposing module (212) for decomposing,
a software product into a plurality of requirement blocks, wherein each requirement block is associated to a Requirement Block Value (RBV), and
each requirement block into a plurality of function blocks, wherein each function block comprises one or more functions, and wherein each function block is associated to a Function Block Value (FBV),
and wherein each requirement block comprises a first set of traversal paths formed upon interlinking one or more function blocks in a manner such that an expected requirement of the requirement block is achieved;
18
a computation module (214) for computing the FBV corresponding to each function block based on an input, an output, and a plurality of influential parameters, and
a determining module (216) for determining
a Requirement Value (RV) corresponding to each traversal path of the first set of traversal paths, wherein the RV is determined based on the FBV computed for each function block, and
a first set of success path from the first set of traversal paths based on the RV determined for each traversal path;
the computation module (214) for computing the RBV corresponding to each requirement block based on the RV computed for the first set of success path; and
the determining module (216) for determining
a second set of traversal paths formed upon interlinking one or more requirement blocks, of the plurality of requirement blocks, in a manner such that an expected output of the software product is achieved, wherein the one or more requirement blocks are associated to the first set of success path,
a Software Product Value (SWV) corresponding to each traversal path of the second set of traversal paths, wherein the SWV is determined based on the RBV computed for each requirement block, and
a second set of success path from the second set of traversal paths based on the SWV determined for each traversal path.
7. The system (102) of claim 6 determines one or more functions, associated to the first set of success path and the second set of success path, to be used for development of the software product thereby ensuring the quality of the software product.
8. The system (102) of claim 6, wherein the FBV and RBV are computed based on a predefined formulation.
9. The system (102) of claim 6, wherein the determining module determines the first set of success path upon comparing the RV corresponding to each traversal path, of the first set of traversal paths, with a predefined threshold value range, and wherein the second set of success path is determined upon comparing the SWV corresponding to each traversal path, of the second set of traversal paths, with a predefined threshold value range.
19
10. The system (102) of claim 6, wherein the influential parameters comprise predecessor-requirement dependencies, successor requirement dependencies, time factor, acceptable input combinations, expected output combinations, and acceptation deviation level.
11. A non-transitory computer readable medium embodying a program executable in a computing device for ensuring quality of a software product, the program comprising a program code:
a program code for decomposing
a software product into a plurality of requirement blocks, wherein each requirement block is associated to a Requirement Block Value (RBV), and
each requirement block into a plurality of function blocks, wherein each function block comprises one or more functions, and wherein each function block is associated to a Function Block Value (FBV),
and wherein each requirement block comprises a first set of traversal paths formed upon interlinking one or more function blocks in a manner such that an expected requirement of the requirement block is achieved;
a program code for computing the FBV corresponding to each function block based on an input, an output, and a plurality of influential parameters, and
a program code for determining
a Requirement Value (RV) corresponding to each traversal path of the first set of traversal paths, wherein the RV is determined based on the FBV computed for each function block, and
a first set of success path from the first set of traversal paths based on the RV determined for each traversal path;
a program code for computing the RBV corresponding to each requirement block based on the RV computed for the first set of success path; and
a program code for determining
a second set of traversal paths formed upon interlinking one or more requirement blocks, of the plurality of requirement blocks, in a manner such that an expected output of the software product is achieved, wherein the one or more requirement blocks are associated to the first set of success path,
20
a Software Product Value (SWV) corresponding to each traversal path of the second set of traversal paths, wherein the SWV is determined based on the RBV computed for each requirement block, and
a second set of success path from the second set of traversal paths based on the SWV determined for each traversal path.

Documents

Application Documents

# Name Date
1 Power of Attorney [20-05-2017(online)].pdf 2017-05-20
2 Form 9 [20-05-2017(online)].pdf_360.pdf 2017-05-20
3 Form 9 [20-05-2017(online)].pdf 2017-05-20
4 Form 3 [20-05-2017(online)].pdf 2017-05-20
5 Form 20 [20-05-2017(online)].jpg 2017-05-20
6 Form 18 [20-05-2017(online)].pdf_152.pdf 2017-05-20
7 Form 18 [20-05-2017(online)].pdf 2017-05-20
8 Drawing [20-05-2017(online)].pdf 2017-05-20
9 Description(Complete) [20-05-2017(online)].pdf_153.pdf 2017-05-20
10 Description(Complete) [20-05-2017(online)].pdf 2017-05-20
11 abstract.jpg 2017-07-06
12 201711017793-Proof of Right (MANDATORY) [29-08-2017(online)].pdf 2017-08-29
13 201711017793-OTHERS-050917.pdf 2017-09-08
14 201711017793-Correspondence-050917.pdf 2017-09-08
15 201711017793-FER.pdf 2021-10-17

Search Strategy

1 SearchStrategyE_10-09-2020.pdf