US2018232298A1PendingUtilityA1
Methods and systems for isolating software components
Est. expirySep 25, 2026(~0.2 yrs left)· nominal 20-yr term from priority
Inventors:Eli Lopian
G06F 11/3668G06F 11/3644G06F 11/3696G06F 11/3612G06F 11/3688G06F 11/3672
54
PatentIndex Score
0
Cited by
0
References
0
Claims
Abstract
A software testing system operative to test a software application comprising a plurality of software components, at least some of which are highly coupled hence unable to support a dependency injection, each software component operative to perform a function, the system comprising apparatus for at least partially isolating, from within the software application, at least one highly coupled software component which performs a given function, and apparatus for testing at least the at least partially isolated highly coupled software component.
Claims
exact text as granted — not AI-modified1 . A system for providing testing for a given software application comprising a plurality of software components, at least some of which are coupled, said system comprising:
a first processor functionally associated with a digital memory, which digital memory stores processor executable software testing code adapted to cause one or more second processors to: at least partially isolate from within the given software application, during runtime, at least one coupled software component which performs a given function by introducing, prior to execution of the software application, code elements for runtime access of application points associated with the at least one coupled software component of the given software application, such that at least one of the introduced code elements provides the software testing code access between first utilizing software components to first utilized software components during runtime, wherein the at least one coupled software component is a generic software component; retrieve generic parameters relating to the at least one coupled software component; map a plurality of expectations relating to execution of the given software application, each mapped expectation comprising an expected call to an individual component from among the plurality of software components and an identity of the individual component, the retrieved generic parameters serving as keys for mapped expectations relating to the at least one coupled software component; and test, by use of the second processors running the testing code, the given software application by imposing a fake behavior on the at least one coupled software component, wherein imposing a fake behavior includes removing or replacing an expected behavior of the at least one coupled software component, during runtime, by use of the access provided by the at least one of the introduced code elements.
2 . The system of claim 1 , wherein the generic parameters comprise type generic and method generic parameters and [describe what you do with these types in setting the fake return.
3 . The system according to claim 1 , wherein the at least one coupled software component is type generic.
4 . The system according to claim 1 , wherein the at least one coupled software component is method generic.
5 . The system according to claim 1 , wherein a utilizing software component of the first utilizing software components comprises test code and wherein the code elements are designed to generate a plurality of testing scenarios for said test code by suitably controlling access of the test code to a utilized software component of the first utilized software components.
6 . The system according to claim 1 , wherein said processor executable software testing code is further adapted to cause the one or more second processors to, after the given software application has been loaded into directly accessible memory by an operating system from an executable file on disk and before the given software application has been run, parse the software application and add the code elements to the parsed software application, thereby providing an at least partially isolatable weaved application.
7 . The system according to claim 1 , wherein the given software application does not include interfaces for injection of alternate functions.
8 . The system according to claim 1 , wherein the software testing code is further adapted to cause the second processors to track objects returned from mocked calls and to mock methods of the tracked objects, so as to facilitate a chained mock response.
9 . The system according to claim 1 , where the given software application further includes second utilizing software components including metadata pointing to second utilized software components and said processor executable software testing code is further adapted to cause the one or more second processors to modify the metadata to point to access control code designed to control access of the second utilizing software components to the second utilized software components.
10 . A system for providing testing for a given software application comprising a plurality of software components, at least some of which are coupled, said system comprising:
a first processor functionally associated with a digital memory, which digital memory stores processor executable software testing code adapted to cause one or more second processors to: at least partially isolate from within the given software application, during runtime, at least one coupled software component which performs a given function by introducing, prior to execution of the software application, code elements for runtime access of application points associated with the at least one coupled component of the given software application; test, by use of the second processors running the testing code, the given software application by removing or replacing a behavior of the at least partially isolated coupled software component, during runtime, by use of the access provided by the at least one of the introduced code elements; and map a plurality of expectations, each of which comprises a string identifying an individual component from among the plurality of software components, which individual components are software components called during execution of the given software application.
11 . The system according to claim 10 , wherein said processor executable software testing code is adapted to cause the one or more second processors to map expectations by recording actual calls to the individual components.
12 . The system according to claim 11 , where said processor executable software testing code is further adapted to cause the one or more second processors to record arguments passed to the individual components with the actual calls and add the recorded arguments to the generated expectations.
13 . The system according to claim 10 , where at least one of the individual components calls another software component during execution of the at least one of the individual components, thereby defining a chain of calls during execution of the given software application.
14 . The system according to claim 13 , wherein said processor executable software testing code is further adapted to cause the one or more second processors to generate a set of n expectations, by recording the chain of calls during execution of the given software application.
15 . The system according to claim 10 , wherein the at least one coupled software component is a generic software component and imposing a fake behavior on the at least one coupled software component includes retrieving generic parameters relating to the at least one coupled software component.
16 . The system according to claim 15 , wherein the at least one coupled software component is type generic.
17 . The system according to claim 15 , wherein the at least one coupled software component is method generic.
18 . The system according to claim 10 , wherein the given software application does not include interfaces for injection of alternate functions.
19 . The system according to claim 10 , where the given software application further includes utilizing software components including metadata pointing to utilized software components and said processor executable software testing code is further adapted to cause the one or more second processors to modify the metadata to point to access control code designed to control access of the utilizing software components to the utilized software components.
20 . A system for providing testing for a given software application comprising a plurality of software components, at least some of which are coupled, said system comprising:
a first processor functionally associated with a digital memory, which digital memory stores processor executable software testing code adapted to cause one or more second processors to: at least partially isolate from within the given software application, during runtime, at least one coupled software component which performs a given function by introducing, prior to execution of the software application, code elements for runtime access of application points associated with the at least one coupled component of the given software application, such that at least one of the introduced code elements provides the software testing code access between first utilizing software components to first utilized software components during runtime; and test, by use of the second processors running the testing code, the given software application, by imposing a fake behavior on the at least one coupled software component, wherein imposing behavior includes removing or replacing an expected behavior of the at least one coupled software component, during runtime, by use of the access provided by the at least one of the introduced code elements; wherein the given software application further includes second utilizing software components including metadata pointing to second utilized software components and said processor executable software testing code is further adapted to cause the one or more second processors to modify the metadata to point to access control code designed to control access of the second utilizing software components to the second utilized software components.
21 . The system according to claim 20 , wherein the at least one coupled software component is a generic software component and imposing a fake behavior on the at least one coupled software component includes retrieving generic parameters relating to the at least one coupled software component.
22 . The system according to claim 20 , wherein the at least one coupled software component is type generic.
23 . The system according to claim 20 , wherein the given software application does not include interfaces for injection of alternate functions.
24 . The system according to claim 20 , wherein the software testing code is further adapted to cause the second processors to track objects returned from mocked calls and to mock methods of the tracked objects, so as to facilitate a chained mock response.Cited by (0)
No later patents cite this yet.
References (0)
No backward citations on record.