Methods and systems of software testing, distribution, installation and deployment
Abstract
A method of compiling a software application as modular software build, comprising: creating a dependency tree defining a plurality of dependency relations between a plurality of code segments of a software code of a software application, each one of the plurality of dependency relations defines at least one of a functionality dependency, a parameter dependency and a structure dependency between a pair of the plurality of code segments; separately compiling each of the a plurality of code segments into one of a plurality of executable segment modules; and creating a core module adapted to be installed on a client device having a processor for loading the plurality of executable segment modules according to the plurality of dependency relations for an execution of the software application.
Claims
exact text as granted — not AI-modifiedWhat is claimed is:
1 . A method of compiling a software application as modular software build, comprising:
creating a dependency tree defining a plurality of dependency relations between a plurality of code segments of a software code of a software application, each one of said plurality of dependency relations defines at least one of a functionality dependency, a parameter dependency and a structure dependency between a pair of said plurality of code segments; separately compiling each of said a plurality of code segments into one of a plurality of executable segment modules; and creating a core module adapted to be installed on a client device having a processor for loading said plurality of executable segment modules according to said plurality of dependency relations for an execution of said software application.
2 . The method of claim 1 , wherein said creating of said dependency tree includes assigning a version to each of said plurality of code segments to identify different versions of each of said plurality of code segments for loading on a client device.
3 . The method of claim 1 , wherein each of said plurality of relations defines how one of said plurality of executable segment modules uses properties and functionality provided by another of said plurality of executable segment modules.
4 . The method of claim 1 , wherein said compiling includes:
building a module library for each code segment of said plurality of code segments; wherein said library includes relations of said plurality of relations, between said code segment and other code segments of said plurality of code segments; and wherein said building is done in an order which satisfies said dependency tree.
5 . The method of claim 1 , wherein said compiling includes:
copying said software code into a designated folder; modifying said software code to support functions operated by said core module; and adding elements which are needed by the build process.
6 . The method of claim 1 , wherein at least one of said plurality of executable segment modules includes one of said plurality of code segments related to a feature of said software application to allow dynamic loading of said feature.
7 . The method of claim 1 , further comprising:
packaging said core module with said plurality of segment modules in at least one executable file for loading by a processor on a client device.
8 . A method of dynamic loading of a software application based on modular software build, comprising:
accessing a plurality of executable segment modules, each is separately compiled from one of a plurality of code segments of a software code of a software application; accessing a dependency tree defining a plurality of relations between said plurality of code segments; selecting at least a subset of said plurality of executable segment modules to load on said client device based on characteristics of said software application and said client device, said at least subset is compatible with said dependency tree; and loading said at least subset of said plurality of executable segment modules by a processor on said client device.
9 . The method of claim 8 , wherein said loading includes installing said at least subset of said plurality of executable segment modules on said client device.
10 . The method of claim 8 , further comprising, before said selecting:
loading a default subset of said plurality of executable segment modules on said client device; and testing said software application on said client device based on a test script generated for said installation; wherein said characteristics include results of said testing.
11 . The method of claim 10 , further comprising:
repeating at least one of said testing and said selecting during operation of said software application to produce continuous or periodic test results and/or sending results of said testing to be stored in a dataset of a distribution system and analyzed to produce at least one of recommendation and optimization for installations of said software application.
12 . The method of claim 8 , wherein said software application is provided to said client device via a distribution system based on test results of said software application.
13 . The method of claim 8 , wherein said characteristics include test results of said software application.
14 . The method of claim 8 , further comprising:
presenting a notification to a user of said client device, said notification including information relating to said installation.
15 . A method of testing a software application using reaction lists, comprising:
activating a command in a software application to execute an action; asynchronously monitoring reactions of said software application following said activation and creating a reaction list of said reactions; comparing said reaction list to a list of expected reactions to identify reactions of said reaction list also included in said list of expected reactions; when a reaction of said reaction list is of a fatal type defined in a list of fatal reaction types, marking said reaction as fatal reaction; and when said reaction list includes all reactions which are included in said list of expected reactions and no reaction of said reaction list is marked as fatal, said action is marked as successful.
16 . The method of claim 15 , wherein when said reaction list includes all reactions which are included in said list of expected reactions, activating a next command in said software application to execute a next action.
17 . The method of claim 15 , wherein when a predefined time is passed from said activation, activating a next command in said software application to execute a next action.
18 . The method of claim 15 , wherein when an adaptive time is passed from said activation, activating a next command in said software application to execute a next action; said adaptive time is determined based on previous executions of said action.
19 . The method of claim 15 , wherein said list of expected reactions is created by monitoring reactions of said software application following a known successful operation of said action.Join the waitlist — get patent alerts
Track US2024028320A1 — get alerts on status changes and closely related new filings.
We store only your email — no account needed. See our privacy policy.