Detailed Description
The present application will be described in further detail with reference to the following drawings and examples. It is to be understood that the specific embodiments described herein are merely illustrative of the relevant invention and not restrictive of the invention. It should be noted that, for convenience of description, only the portions related to the related invention are shown in the drawings.
It should be noted that the embodiments and features of the embodiments in the present application may be combined with each other without conflict. The present application will be described in detail below with reference to the embodiments with reference to the attached drawings.
Fig. 1 illustrates anexemplary system architecture 100 to which embodiments of the method, apparatus, electronic device, and computer-readable storage medium for determining an influence surface of the present application may be applied.
As shown in fig. 1, thesystem architecture 100 may include anapplication distribution terminal 101, anetwork 102, and an impactplane test server 103. Thenetwork 102 is used to provide a medium of communication link between theapplication distribution terminal 101 and the impactsurface test server 103. Network 102 may include various connection types, such as wired, wireless communication links, or fiber optic cables, to name a few.
The method and the device for performing data interaction with the impactplane test server 103 through theapplication release terminal 101 via thenetwork 102, for example, the application to be released is sent to the impactplane test server 103 through thenetwork 102 through theapplication release terminal 101 for impact plane test, and then whether the application to be released is in accordance with expectations is determined. Various applications for achieving the purpose through data interaction between theapplication issuing terminal 101 and the impactplane testing server 103 may be installed on theapplication issuing terminal 101 and the impactplane testing server 103, for example, an application issuing review application, an application to be issued impact plane testing application, an instant messaging application, and the like.
Theapplication distribution terminal 101 and the impactsurface test server 103 may be hardware or software. When theapplication distribution terminal 101 is hardware, it may be various electronic devices with a display screen, including but not limited to a smart phone, a tablet computer, a laptop portable computer, a desktop computer, and the like; when theapplication distribution terminal 101 is software, it may be installed in the electronic device listed above, and it may be implemented as multiple pieces of software or software modules, or may be implemented as a single piece of software or software modules, and is not limited in this respect. When the impactsurface test server 103 is hardware, it may be implemented as a distributed server cluster composed of multiple servers, or may be implemented as a single server; when the server is software, the server may be implemented as a plurality of software or software modules, or may be implemented as a single software or software module, which is not limited herein.
The influenceplane test server 103 may provide various services through various built-in applications, and taking, as an example, an influence plane test application of an application to be issued that may provide an influence plane test service, the influenceplane test server 103 may implement the following effects when running the influence plane test application of the application to be issued: firstly, receiving a version application to be released from anapplication release terminal 101 through aterminal 102; then, respectively determining the corresponding relation between each URI and the method in the application of the version to be released and the calling relation between different URIs in the application of the version to be released; then, determining an influence surface according to the difference between the corresponding relation and the calling relation between the application of the version to be released and the application of the current version; and finally, carrying out a targeted test according to the determined influence surface. That is, the influenceplane test server 103 outputs, as a result, the test result of the influence plane, which is caused by the code change of the input version application to be released compared with the current version application, through the above processing steps.
It should be noted that the version-to-be-released application may be pre-stored locally in the influenceplane test server 103 in various ways, in addition to being received from theapplication release terminal 101. When the impactsurface test server 103 detects that a version-to-be-published application is already stored locally (e.g., an impact surface test task remaining before starting processing), it may choose to obtain such data directly from the local, in which case theexemplary system architecture 100 may also not include theapplication publishing terminal 101 and thenetwork 102.
Since the test and evaluation of the influence plane usually require more computing resources and stronger computing power, the method for determining the influence plane provided in the following embodiments of the present application is generally executed by the influenceplane test server 103 having stronger computing power and more computing resources, and accordingly, the apparatus for determining the influence plane is generally disposed in the influenceplane test server 103. However, it should be noted that when theapplication distribution terminal 101 also has the computation capability and computation resources meeting the requirements, theapplication distribution terminal 101 may also complete the above operations that are originally delivered to the influenceplane test server 103 through the application influence plane test class application to be distributed installed on theapplication distribution terminal 101, and then output the same result as the influenceplane test server 103. Especially, in the case that a plurality of terminal devices with different operation capabilities exist at the same time, but when the application to be released determines that the terminal device in which the application impact surface test class application is located has a strong operation capability and a large amount of remaining operation resources, the terminal device may execute the above operation, so as to appropriately reduce the operation pressure of the impactsurface test server 103, and accordingly, the device for determining the impact surface may also be disposed in theapplication release terminal 101. In this case, theexemplary system architecture 100 may also not include the impactsurface test server 103 and thenetwork 102.
It should be understood that the number of application distribution terminals, networks, and impact plane test servers in fig. 1 are merely illustrative. There may be any number of application distribution terminals, networks, and impact plane test servers, as desired for implementation.
With continuing reference to fig. 2, fig. 2 is a flowchart of a method for determining an influence surface according to an embodiment of the present application, where aflow 200 in the flowchart includes the following steps:
step 201: and acquiring the application of the version to be released.
This step is intended to acquire the version application to be released by an execution subject of the method for determining the impact surface (e.g., the impactsurface test server 103 shown in fig. 1). The version application to be released is a new version application to be released after being updated, adjusted and modified on the basis of the current version application.
The version-to-be-released application may be directly acquired from a local storage device by the execution main body, or may be acquired from a non-local storage device (for example, theapplication distribution terminal 101 shown in fig. 1). The local storage device may be a data storage module arranged in the execution main body, for example, a server hard disk, and in this case, the version application to be released may be read locally and quickly; the non-local storage device may also be any other electronic device configured to store data, for example, some user terminals, and in this case, the execution subject may obtain the version application to be released by receiving an influence plane test request actively sent by the electronic device.
Step 202: and determining the corresponding relation between each URI and the method in the application of the version to be released.
On the basis ofstep 201, this step is intended to determine, by the execution subject, a corresponding relationship between each URI and a method in the version application to be published, which may also be referred to as a mapping relationship between the two URIs and methods.
A URI (Uniform Resource Identifier) is a string used to identify the name of an internet Resource, which allows a user to interact with any (including local and internet) Resource (e.g., HTML documents, images, video clips, applications, code) via a specific protocol. In this application, the URI mainly represents an interface provided by each function module in the application of the version to be released, that is, the URI is used to represent the function module where the URI is located, and the function carried by the URI can be generally seen from the name of the URI. In the present application, a method refers to a component specifically used for implementing a function corresponding to the functional module, and is generally represented by a function capable of implementing a specific function.
The code adjustment performed by the application during version update is not embodied in at least one of the following forms: the method corresponding to the URI is added, the method corresponding to the URI is deleted, the method corresponding to the URI is replaced, the internal code of the method corresponding to the URI is modified, and the corresponding functional level, namely the code change, causes a functional module to add or delete a certain function, replaces an original certain function and modifies the implementation details of the original certain function.
Therefore, the influence surface corresponding to the code change can be determined more directly, deeply and accurately through the determined corresponding relation between the URI and the method.
Specifically, the corresponding relationship between the URI and the method in the application of the version to be released may be determined in various ways, for example, static analysis may be performed on the code of the application of the version to be released in ways of code annotation, code analysis tool, call relationship tool, call chain analysis, automated test case, and the like, that is, the URI and the method included in each function module of the application of the version to be released may be determined, and then the URI and the method may be associated with each other. In practice, because the environments are often not uniform, in order to obtain a comprehensive corresponding relationship between the URI and the method, various ways of obtaining the URI and the method can be adopted at the same time, and then the processes of repetition, error correction and the like are carried out for summarizing and synthesizing.
Step 203: and determining the calling relationship among different URIs in the application of the version to be released.
This step is intended to determine the call relationship between different URIs in the version application to be issued by the execution agent. Step 202 illustrates that, in the present application, the URI is used as a specific character string representing a corresponding function module, and when the application of the version to be released, which is composed of a plurality of function modules, meets the user requirements, the application is often implemented by the cooperation of a plurality of function modules, that is, the invocation among the plurality of function modules is also indispensable, for example, there may be a case that the last operation of the first function module is to invoke the second function module and take its output as the input of the second function module in the sequential invocation, that is, a code corresponding to any function module in the invocation chain is changed when the version is updated, and the entire invocation chain belongs to an affected surface, and also needs to be subsequently tested.
The difference is that the corresponding relationship between the URI and the method in a single functional module can be determined through static analysis, and the calling relationship between different functional modules is often obtained by analyzing the on-line traffic generated when the application of the version to be issued runs, so as to perform backward pushing according to the response of the application of the version to be issued to the user instruction. To accomplish this, the online traffic can be captured by a pre-implanted probe to extract the URIs on the call chain in a variety of ways.
In brief,step 202 is to obtain the change of function implementation details between the single function modules caused by the code change, and step 203 is to obtain the influence of a certain function module on other function modules in the whole call chain after the change of the code, both of which belong to the influence surfaces.
Step 204: and determining the influence surface according to the difference between the corresponding relation and the calling relation between the application of the version to be released and the application of the current version.
On the basis ofstep 202 and step 203, in this step, the execution subject determines the difference between the application of the version to be released and the application of the current version in the corresponding relationship and the calling relationship by means of comparison, and further determines the influence surface according to the difference.
It should be understood that the influence surface represented by the difference is used for providing a targeted test range for subsequent testers, so as to ensure that all functions influenced by version updating are comprehensively tested, and thus ensure that a user has due use experience when using the application of the real release version. That is, the present application provides an improved method for determining the impact surface accurately and comprehensively.
Different from the scheme of establishing the corresponding relationship between the code and the function through the automatic test case in the prior art, the method for determining the influence plane establishes a more bottom-layer and deeper corresponding relationship between the code and the function through the URI and the method, converts the change of the code into the change of the method, that is, the change of the corresponding relationship between the URI and the method, and further determines whether the URI corresponding to the function and other URIs calling the URI are influenced or not, what kind of influence is influenced, so that the influence plane of the new version application compared with the old version application can be determined more comprehensively and accurately.
With continued reference to fig. 3, fig. 3 is a flowchart of another method for determining an influence surface according to an embodiment of the present application, where aflowchart 300 includes the following steps:
step 301: and acquiring the application of the version to be released.
This step is the same asstep 201 shown in fig. 2, and please refer to the corresponding parts in the previous embodiment for the same contents, which will not be described herein again.
Step 302: and determining a first corresponding relation between each URI and the method in the version application to be released through static call chain analysis.
On the basis ofstep 301, this step is intended to determine, by the execution agent, a first correspondence between each URI and a method in the version application to be published in a manner of static call chain analysis.
An implementation, including but not limited to, may include the steps of:
1) obtaining a URI contained in the application of the version to be released;
in order to obtain a comprehensive URI, the URI can be extracted from an automatic test case corresponding to the application of the version to be released and/or the code of the application of the version to be released is subjected to static analysis by utilizing an open source Java tool (such as Java-callgraph) to obtain the URI. Specifically, when the URI is obtained by analyzing the automatic test case, the description of the automatic test case may be used as the functional description of the functional module corresponding to the URI. Further, in addition to the above two acquisition manners, the acquisition may be performed by some analysis tools or databases with similar functions.
2) Determining a root method of the URI through annotation to the URI;
the root method here refers to the outermost method of the function carried by the URI or the method that needs to be called first, and the child method refers to the method called by the root method. The corresponding relation between the URI and the root method can be stored in an warehouse in advance in an off-line mode and executed at follow-up timing mode, and the server side can also open a corresponding query interface for query.
3) Determining sub-methods subordinate to the root method by using a calling relation recognition tool with polymorphic processing capacity;
the existing calling relation recognition tools such as java-callgraph, Zipkin, Pinpoint, skywalk and the like cannot usually recognize calling relations between only part of methods, and especially the effect is not good for a scene with multi-layer method calling, because the existing calling relation recognition tools generally do not have polymorphic processing capability (polymorphic is the capability that the same behavior has a plurality of different expression forms or forms, for example, calling and membership between methods can be expressed by various hierarchical relations), the existing calling relation recognition tools cannot discover other method membership relations except two directly shown recognizable methods, and mainly show the inheritance relation between (method) classes in a defined manner, so that the application increases the recognition capability of the inheritance relation between different method classes to enable the modified calling relation recognition tools to have polymorphic processing capability.
Specifically, a method can be uniquely determined by a package name + class name + method name + parameter.
4) And associating the URI with methods including the root method and all sub-methods under the root method to obtain the corresponding relation between each URI and each method in the application of the version to be released.
The steps are sequentially carried out by obtaining the URI, determining the root method corresponding to the URI and determining the execution sequence of the sub-methods under the root method, and finally all the methods corresponding to the URI can be obtained, namely a complete method call chain on the single-function module is obtained. Furthermore, the call chain can be stored in a warehouse.
An exemplary diagram can be seen in fig. 4, where fig. 4 illustrates, by way of example, a functional module M, how it enables association between a URI and a method via an annotation and a java-callgraph tool.
Step 303: and determining a second corresponding relation between each URI and the method in the application of the version to be released through the automatic test case.
Unlike the static call chain analysis method provided in step 302, this step aims to determine, by the execution subject, a second correspondence between each URI and a method in the version application to be released through the automated test case.
One specific implementation, including but not limited to, may include the steps of:
1) obtaining the code coverage condition of the automatic test case in operation by using a code coverage test tool;
2) extracting the requested URI from the automatic test case, and determining a covering method according to the code covering condition;
3) and associating the URI and the method of each automatic test case to obtain the corresponding relation between each URI and the method in the application of the version to be released.
Therefore, in the process of executing the automation use case, as long as a certain method is covered, the method can be considered to be associated with the use case.
Specifically, the code coverage test tool can be selected from Jacoco, and the tool can collect the code coverage in the running process of the automatic test case and generate a report of the coverage, wherein the report includes the coverage of the method. Therefore, in the process of executing the automatic test case, as long as a certain method is covered, the method can be considered to be associated with the case. Specifically, the requested URI is extracted from the automated test case, the method name is extracted from the Jacoco coverage report, and the URI and the method name are associated with each other.
It can be seen that, unlike the way in which the root method needs to be determined first and then the sub-methods under the root method need to be determined in step 302, all the coverage is directly determined by the code coverage testing tool in a matching manner, that is, the membership between the methods cannot be provided by the code coverage testing tool.
Step 304: and summarizing the first corresponding relation and the second corresponding relation to obtain a complete corresponding relation.
On the basis of step 302 and step 303, this step aims to summarize the correspondence between the two parts obtained by the two methods, respectively, to obtain a correspondence as complete as possible. Because the basic fields used by the static call chain analysis and the automatic test case analysis are unified, the coverage of the corresponding relation respectively obtained by the two analysis modes is consistent and can be directly summarized. Of course, preprocessing methods such as error correction and duplicate removal can be combined in the summarizing process to improve accuracy.
Step 305: and acquiring online flow obtained by running the version to be released in a preset network environment.
Step 306: and analyzing call chain data contained in the online flow through a topology analysis algorithm, and obtaining a call topological graph among the microservice interfaces according to the call chain data.
Step 307: and determining the calling relation between the URI corresponding to each micro service according to the calling topological graph.
The execution subject instep 305 to step 307: firstly, obtaining online flow (for example, through a preset probe) obtained by applying a version to be released to a preset network environment, then, automatically summarizing, aggregating and analyzing online calling chain data through a topology analysis algorithm, thereby dynamically drawing a calling topological graph among micro-service interfaces, describing calling relations among interfaces of each function module at the bottom layer generated by the online flow in real time, namely starting from a URI of a single function module, searching the position of the single function module in the topology, searching a calling party of the single function module, and further connecting URIs representing different function modules in series to obtain the calling relations.
An exemplary schematic diagram please refer to fig. 5, in which fig. 5 takes a call chain method M _1 → method M _2 → method N _1 as an example, and the call relation existing in the function module M → function module N can be derived according to the function number, so that the call relation of URI _ M → URI _ N can be obtained, where URI _ M and URI _ N correspond to the function module M and function module N, respectively.
Step 308: and determining the influence surface according to the difference between the corresponding relation and the calling relation between the application of the version to be released and the application of the current version.
On the basis of having all the beneficial effects of the previous embodiment, the embodiment provides a corresponding relationship obtaining method by integrating the corresponding relationships extracted through two different methods through steps 302 to 304, and improves the comprehensiveness and accuracy of the obtained corresponding relationships as much as possible; through steps 305-307, a method for finally determining the calling relationship of the online traffic through a topology analysis algorithm is provided, so that the calling relationship among the URIs is clearer.
It should be understood that, in the steps 302 to 304 provided in this embodiment, two corresponding relationship extraction methods, namely, static call chain analysis and automated test case analysis, are simultaneously adopted, and in some application scenarios, any one of the methods may also be independently adopted to complete the extraction of the corresponding relationship; however, there are no cause-effect and dependency relationship between the corresponding relation extraction schemes provided in steps 302 to 304 and the calling relation extraction schemes provided insteps 305 to 307, and they may also be completely and separately present in different embodiments, and this embodiment only exists as a preferred embodiment having two parts of preferred schemes at the same time.
In order to deepen understanding, the application also provides a specific implementation scheme by combining a specific application scene:
assuming that a mobile-side application with version number a currently exists, in response to the user's usage feedback and application update plan, a mobile-side application with version number B to be issued should be modified as follows: modification 1: a subfunction X _ New is newly added in the original X function module; modification 2: and replacing the subfunction Y-1 in the original Y functional module with the subfunction Y-11.
1. The developer sends the developed version application B _1 to be released to a test server of a company through an intranet by a development computer;
2. the test server respectively extracts X, Y, Z three modules according to the received B _1 application through a preset static call chain analysis method and an automatic test case analysis method for the B _1 application and a prestored A application, and obtains a first corresponding relation corresponding to the B _1 application and a second corresponding relation corresponding to the A application;
3. the test server respectively operates the B _1 application and the pre-stored A application under a preset network environment according to the received B _1 application, sends a simulated user instruction to the B _1 application, acquires the first on-line flow and the second on-line flow through a preset probe, and respectively obtains a first calling relation and a second calling relation through analysis of a topology analysis algorithm;
4. comparing the first corresponding relation with the second corresponding relation and comparing the first calling relation with the second corresponding relation with the test server, finding that the difference of the corresponding relations is only shown as that one item X _ New is added to the method corresponding to the URI of the X function module, and combining the requirement change finding, replacing the subfunction Y-1 in the original Y function module with the 'change 2' of the subfunction Y-11 is not really realized. Meanwhile, the result of the X function module in a certain calling chain can be used by the Y function module according to the calling relation, so that the calling of the X function module with the X _ New added to the Y function module and the calling of the method in the X function module are finally influenced.
5. And the test server tests according to the obtained influence surface, and simultaneously returns the result which cannot be realized by the change 2 to the developer through the intranet so as to check and adjust the developer.
With further reference to fig. 6, as an implementation of the methods shown in the above-mentioned figures, the present application provides an embodiment of an apparatus for determining an influence surface, which corresponds to the method embodiment shown in fig. 2, and which is particularly applicable in various electronic devices.
As shown in fig. 6, theapparatus 400 for determining an influence surface of the present embodiment may include: a to-be-released versionapplication obtaining unit 401, a correspondingrelation determining unit 402, a callrelation determining unit 403, and an influenceplane determining unit 404. The to-be-released versionapplication obtaining unit 401 is configured to obtain a to-be-released version application; acorrespondence determining unit 402 configured to determine a correspondence between each URI and a method in the version application to be released; a callrelation determining unit 403 configured to determine a call relation between different URIs in the version-to-be-released application; the influenceplane determining unit 404 is configured to determine the influence plane according to a difference between the application of the version to be released and the application of the current version in the corresponding relationship and the calling relationship.
In the present embodiment, in theapparatus 400 for determining an influencing surface: the specific processing and the technical effects of the to-be-released versionapplication obtaining unit 401, the correspondingrelationship determining unit 402, the callrelationship determining unit 403, and the influenceplane determining unit 404 may refer to the related descriptions ofstep 201 and step 204 in the corresponding embodiment of fig. 2, which are not described herein again.
In some optional implementation manners of this embodiment, thecorrespondence determining unit 402 may include: the static call chain determining subunit is configured to determine a corresponding relation between each URI and the method in the version application to be issued through static call chain analysis; and/or the automatic test case determining subunit is configured to determine the corresponding relation between each URI and the method in the application of the version to be released through the automatic test case.
In some optional implementations of this embodiment, the static call chain determination subunit may include: the URI acquisition module is configured to acquire a URI contained in the application of the version to be released; a root method determination module configured to determine a root method of the URI through annotation to the URI; a child method determination module configured to determine child methods subordinate to the root method using a call relation recognition tool having polymorphic processing capabilities; the calling relation recognition tool has polymorphic processing capability by increasing the recognition capability of inheritance relations among different method classes; and the corresponding relation determining module is configured to associate the URI with methods including the root method and all sub-methods under the root method to obtain the corresponding relation between each URI and each method in the version application to be released.
In some optional implementations of this embodiment, the URI acquisition module may be further configured to: the automatic test case extraction submodule is configured to extract a URI from the automatic test case corresponding to the version application to be released; and/or the static analysis obtaining submodule is configured to perform static analysis on the code of the application of the to-be-released version by utilizing an open source Java tool to obtain the URI.
In some optional implementations of the present embodiment, the automated test case determination subunit may be further configured to: obtaining the code coverage condition of the automatic test case in operation by using a code coverage test tool; extracting the requested URI from the automatic test case, and determining a covering method according to the code covering condition; and associating the URI and the method of each automatic test case to obtain the corresponding relation between each URI and the method in the application of the version to be released.
In some optional implementations of this embodiment, the callrelation determining unit 403 may be further configured to: acquiring online flow obtained by running the version to be released in a preset network environment; analyzing call chain data contained in the online flow through a topology analysis algorithm; obtaining a calling topological graph among the micro service interfaces according to the calling chain data; and determining the calling relation between the URI corresponding to each micro service according to the calling topological graph.
In some optional implementation manners of this embodiment, the difference between the application of the version to be released and the application of the current version in the corresponding relationship and the calling relationship includes at least one of the following: the method corresponding to the URI is added, the method corresponding to the URI originally is deleted, the method corresponding to the URI originally is replaced, and the internal code of the method corresponding to the URI originally is modified.
In some optional implementations of this embodiment, theapparatus 400 for determining an influence surface may further include: and the pertinence test unit is configured to perform a pertinence test on the content corresponding to the influence surface after the influence surface is determined.
The embodiment exists as an embodiment of an apparatus corresponding to the above method embodiment, and is different from a scheme in the prior art that a corresponding relationship between a code and a function is established through an automated test case, where the apparatus for determining an influence plane establishes a lower-level and deeper corresponding relationship between the code and the function through a URI and a method, changes the change of the code into a change of the method, that is, a change of the corresponding relationship between the URI and the method, and further determines whether or not the URI corresponding to the function and another URI calling the URI are influenced, and what kind of influence is influenced, so that the apparatus for determining the influence plane provided by the embodiment of the influence plane of a new version application compared with an old version application can be determined more comprehensively and accurately.
According to an embodiment of the present application, an electronic device and a computer-readable storage medium are also provided.
FIG. 7 shows a block diagram of an electronic device suitable for use in implementing the method for determining an impact surface of embodiments of the present application. Electronic devices are intended to represent various forms of digital computers, such as laptops, desktops, workstations, personal digital assistants, servers, blade servers, mainframes, and other appropriate computers. The electronic device may also represent various forms of mobile devices, such as personal digital processing, cellular phones, smart phones, wearable devices, and other similar computing devices. The components shown herein, their connections and relationships, and their functions, are meant to be examples only, and are not meant to limit implementations of the present application that are described and/or claimed herein.
As shown in fig. 7, the electronic apparatus includes: one ormore processors 501,memory 502, and interfaces for connecting the various components, including high-speed interfaces and low-speed interfaces. The various components are interconnected using different buses and may be mounted on a common motherboard or in other manners as desired. The processor may process instructions for execution within the electronic device, including instructions stored in or on the memory to display graphical information of a GUI on an external input/output apparatus (such as a display device coupled to the interface). In other embodiments, multiple processors and/or multiple buses may be used, along with multiple memories and multiple memories, as desired. Also, multiple electronic devices may be connected, with each device providing portions of the necessary operations (e.g., as a server array, a group of blade servers, or a multi-processor system). Fig. 7 illustrates an example of aprocessor 501.
Memory 502 is a non-transitory computer readable storage medium as provided herein. Wherein the memory stores instructions executable by the at least one processor to cause the at least one processor to perform the method for determining an impact surface provided herein. The non-transitory computer readable storage medium of the present application stores computer instructions for causing a computer to perform the method for determining an impact surface provided herein.
Thememory 502, which is a non-transitory computer-readable storage medium, may be used to store non-transitory software programs, non-transitory computer-executable programs, and modules, such as program instructions/modules corresponding to the method for determining an influence plane in the embodiment of the present application (for example, the to-be-released versionapplication acquiring unit 401, thecorrespondence determining unit 402, the invocationrelationship determining unit 403, and the influenceplane determining unit 404 shown in fig. 6). Theprocessor 501 executes various functional applications of the server and data processing by executing non-transitory software programs, instructions, and modules stored in thememory 502, that is, implements the method for determining the influence surface in the above method embodiment.
Thememory 502 may include a storage program area and a storage data area, wherein the storage program area may store an operating system, an application program required for at least one function; the storage data area may store various types of data created by the electronic device in performing the method for determining the impact surface, and the like. Further, thememory 502 may include high speed random access memory, and may also include non-transitory memory, such as at least one magnetic disk storage device, flash memory device, or other non-transitory solid state storage device. In some embodiments,memory 502 optionally includes memory located remotely fromprocessor 501, which may be connected via a network to an electronic device adapted to perform the method for determining an impact surface. Examples of such networks include, but are not limited to, the internet, intranets, local area networks, mobile communication networks, and combinations thereof.
The electronic device adapted to perform the method for determining an impact surface may further comprise: aninput device 503 and anoutput device 504. Theprocessor 501, thememory 502, theinput device 503 and theoutput device 504 may be connected by a bus or other means, and fig. 7 illustrates the connection by a bus as an example.
Theinput device 503 may receive input numeric or character information and generate key signal inputs related to user settings and function control of an electronic apparatus suitable for performing the method for determining an influence surface, such as a touch screen, a keypad, a mouse, a track pad, a touch pad, a pointer, one or more mouse buttons, a track ball, a joystick or the like. Theoutput devices 504 may include a display device, auxiliary lighting devices (e.g., LEDs), and haptic feedback devices (e.g., vibrating motors), among others. The display device may include, but is not limited to, a Liquid Crystal Display (LCD), a Light Emitting Diode (LED) display, and a plasma display. In some implementations, the display device can be a touch screen.
Various implementations of the systems and techniques described here can be realized in digital electronic circuitry, integrated circuitry, application specific ASICs (application specific integrated circuits), computer hardware, firmware, software, and/or combinations thereof. These various embodiments may include: implemented in one or more computer programs that are executable and/or interpretable on a programmable system including at least one programmable processor, which may be special or general purpose, receiving data and instructions from, and transmitting data and instructions to, a storage system, at least one input device, and at least one output device.
These computer programs (also known as programs, software applications, or code) include machine instructions for a programmable processor, and may be implemented using high-level procedural and/or object-oriented programming languages, and/or assembly/machine languages. As used herein, the terms "machine-readable medium" and "computer-readable medium" refer to any computer program product, apparatus, and/or device (e.g., magnetic discs, optical disks, memory, Programmable Logic Devices (PLDs)) used to provide machine instructions and/or data to a programmable processor, including a machine-readable medium that receives machine instructions as a machine-readable signal. The term "machine-readable signal" refers to any signal used to provide machine instructions and/or data to a programmable processor.
To provide for interaction with a user, the systems and techniques described here can be implemented on a computer having: a display device (e.g., a CRT (cathode ray tube) or LCD (liquid crystal display) monitor) for displaying information to a user; and a keyboard and a pointing device (e.g., a mouse or a trackball) by which a user can provide input to the computer. Other kinds of devices may also be used to provide for interaction with a user; for example, feedback provided to the user can be any form of sensory feedback (e.g., visual feedback, auditory feedback, or tactile feedback); and input from the user may be received in any form, including acoustic, speech, or tactile input.
The systems and techniques described here can be implemented in a computing system that includes a back-end component (e.g., as a data server), or that includes a middleware component (e.g., an application server), or that includes a front-end component (e.g., a user computer having a graphical user interface or a web browser through which a user can interact with an implementation of the systems and techniques described here), or any combination of such back-end, middleware, or front-end components. The components of the system can be interconnected by any form or medium of digital data communication (e.g., a communication network). Examples of communication networks include: local Area Networks (LANs), Wide Area Networks (WANs), and the Internet.
The computer system may include clients and servers. A client and server are generally remote from each other and typically interact through a communication network. The relationship of client and server arises by virtue of computer programs running on the respective computers and having a client-server relationship to each other.
Different from the scheme of establishing the corresponding relationship between the code and the function through the automatic test case in the prior art, the method for determining the influence plane establishes a more bottom-layer and deeper corresponding relationship between the code and the function through the URI and the method, converts the change of the code into the change of the method, that is, the change of the corresponding relationship between the URI and the method, and further determines whether the URI corresponding to the function and other URIs calling the URI are influenced or not, what kind of influence is influenced, so that the influence plane of the new version application compared with the old version application can be determined more comprehensively and accurately.
It should be understood that various forms of the flows shown above may be used, with steps reordered, added, or deleted. For example, the steps described in the present application may be executed in parallel, sequentially, or in different orders, and the present invention is not limited thereto as long as the desired results of the technical solutions disclosed in the present application can be achieved.
The above-described embodiments should not be construed as limiting the scope of the present application. It should be understood by those skilled in the art that various modifications, combinations, sub-combinations and substitutions may be made in accordance with design requirements and other factors. Any modification, equivalent replacement, and improvement made within the spirit and principle of the present application shall be included in the protection scope of the present application.