WO2020245504A1 - Method and system for integration testing - Google Patents

Method and system for integration testing Download PDF

Info

Publication number
WO2020245504A1
WO2020245504A1 PCT/FI2020/050382 FI2020050382W WO2020245504A1 WO 2020245504 A1 WO2020245504 A1 WO 2020245504A1 FI 2020050382 W FI2020050382 W FI 2020050382W WO 2020245504 A1 WO2020245504 A1 WO 2020245504A1
Authority
WO
WIPO (PCT)
Prior art keywords
programming interface
server system
request test
virtualization server
testing
Prior art date
Application number
PCT/FI2020/050382
Other languages
French (fr)
Inventor
Michael Solomon
Original Assignee
Meeshkan Oy
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Meeshkan Oy filed Critical Meeshkan Oy
Publication of WO2020245504A1 publication Critical patent/WO2020245504A1/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3696Methods or tools to render software testable
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/815Virtual

Definitions

  • the present invention relates to a method for integration testing and more particularly to method according to preamble of claim 1.
  • the present invention further relates to a system for integration testing and more particularly to a system according to preamble of claim 18.
  • Mock data is data that is fake.
  • the fake quality of data is not simply the absence of realness, but rather data that is reliably fake, meaning reliably not containing any real client data, such as credit card numbers, names or photographs, while at the same time resembling what data would be expected to look like.
  • Real data cannot be used as mock data as it may cause violation of regulation and compliance as well as privacy of persons.
  • Mock data is also useful as a proxy for data that does not yet exist or is only difficulty attainable - for example, data resembling a service after 100 days of usage by definition does not exist if the service has not yet existed for 100 days. Furthermore, simulating 100s of users in a service that has just launched would require manually recruiting these users or creating fake profiles, whereas mocking can simulate their existence instantly. Semantically correct data means data that any human would feel is real data or a reliable fake version of real data. Functionally correct data means that the implied function of the data is correct.
  • libraries for manual mocking libraries for automatic mocking
  • libraries and services for intercepting third-party API (application program interface) requests libraries for intercepting third-party API (application program interface) requests
  • sandbox API environments production monitoring.
  • Manual mocking refers to the process of creating mock data on an API- by-API call.
  • Automatic mocking refers to the process of generating mock data from a specification describing an API.
  • Intercepting third party requests refers to the process of monitoring web traffic and modifying it on the fly with mocked data.
  • Another alternative is the provision of sandbox environments that act as reliable mocks of production environments.
  • Yet another alternative, used in situations where APIs grow organically, is to monitor production environments for breakage and make rapid fixes in near real-time.
  • dashboards are inefficient because they take the developer out of their workflow, placing them in a different environment that then needs to by synced with their workflow. Dashboards are also inefficient because, being exogenous to from the workflow, they usually require manual configuration because they cannot infer anything about the developer from the developer’s environment.
  • An object of the present invention is to provide a method and system for integration testing so as to solve or at least alleviate the prior art disadvantages.
  • the objects of the invention are achieved by a method for integration testing which is characterized by what is stated in the independent claim 1.
  • the objects of the invention are also achieved by a system for integration testing which is characterized by what is stated in the independent claim 17.
  • the invention is based on the idea of providing a method for automatic integration testing by a testing system generating a request test output.
  • the method comprises:
  • the programming interface may be any application programming interface (PI) of a production application or device.
  • PI application programming interface
  • the method provides automatic generating a virtualized application programming interface of the production PI.
  • the virtualized PI may then be used for integration testing and thus, there is no need to use the real production PI and third-party service for integration testing.
  • programing interface may be application programming interface (API) or programming interface (PI) of a hardware device or software application.
  • API application programming interface
  • PI programming interface
  • specification means PI specification and PI definition or only PI definition.
  • the PI specification provides a broad understanding of how an PI behaves and how the PI links with other Pis. It explains how the PI functions and the results to expect when using the PI.
  • a PI specification is also an indication of how the API is designed and the data types the PI supports.
  • the API definition is similar to a PI specification in that it provides an understanding of how a PI is organized and how the PI functions.
  • the API definition is aimed at machine consumption instead of human consumption of Pis.
  • An PI definition provides information about how the PI functions, how it links with other APIs, and the expected results in a machine-readable format. It focuses on defining the API and outlining the structure of the PI.
  • An PI definition is often used as a baseline for automated tools. PI definitions can be used to generate PI documentation and code samples automatically.
  • the PI specification defines structure and functioning of the PI.
  • the specification documentation means the documentation of the PI with the PI specification and PI definition or only the PI definition.
  • the concept of the specification is known for skilled person in te art.
  • the virtualized PI provided by the present invention has also the virtualized PI specification for imitating the structure and functioning of the real PI.
  • the steps a), b) and c) may be carried out by a virtualization module provided in the virtualization server system.
  • the virtualization module may comprise a virtualization algorithm, software or application configured to carry out the steps a), b) and c).
  • the step a) of observing the programming interface comprises scraping, by the virtualization server system, specification documentation of the programming interface from the programming interface.
  • scraping means data extraction and is used for extracting data from websites or applications, thus the specification documentation.
  • Web scraping software may access the World Wide Web directly using a Hypertext Transfer Protocol, or through a web browser. While web scraping can be done manually by a software user, the term typically refers to automated processes implemented using a bot or web crawler. It is a form of copying, in which specific data, the specification documentation of the PI, is gathered and copied. Scraping a web page may involve fetching it and extracting from it. Thus, the scraping may mean automatic scraping.
  • the scraping may be carried out with scraping module or scraping application or crawler or software in the virtualization server system.
  • the specification documentation of the real programming interface is extracted from the production application or production API or website for generation of the virtualized programming interface.
  • the step b) comprises receiving, in the virtualization server system, the specification documentation of the programming interface from the programming interface.
  • the scraped specification documentation is received in the virtualization server system.
  • the step a) of observing the programming interface comprises searching, by the virtualization server system, specification documentation of the programming interface from the programming interface.
  • the searching may mean automatic searching using searching algorithm or application or software or searching module in the virtualization server system.
  • the step b) comprises reading, by the virtualization server system, the searched specification documentation of the programming interface from the programming interface, and receiving, in the virtualization server system, the specification documentation of the programming interface from the programming interface.
  • the specification documentation of the real programming interface is searched and read from the production application or production PI or website. Then the searched and read specification documentation is received in the virtualization server system for generation of the virtualized programming interface.
  • the step c) comprises generating, by the virtualization server system, the virtual programming interface based on the specification documentation of the programming interface received in the virtualization server system.
  • the step c) may further comprise automatic generation, by the virtualization server system, the virtual programming interface.
  • one embodiment of the method of the present invention provides generating, or automatically generating, a virtual programming interface based on or by utilizing the specification documentation of the real production programming interface.
  • the step a) comprises monitoring, by the virtualization server system, functioning of the programming interface.
  • the step a) comprises monitoring, by the virtualization server system, functioning of the programming interface by monitoring inputs to the programming interface and outputs from the programming interface.
  • the inputs to the PI may be request calls to PI and the output from the PI may be responses to the PI calls from the PI.
  • the method may comprise monitoring the functioning of the PI, or the inputs and outputs of the PI, and utilizing the monitoring information for generating the virtual programming interface.
  • the monitoring may be carried out with a monitoring module, monitoring algorithm, monitoring application or monitoring software in the virtualization server system. Further, the monitoring may be carried out as automatic monitoring.
  • step b) comprises receiving, in the virtualization server system, monitored functioning data of monitoring the functioning of the programming interface in step a).
  • step b) comprises recording, by the virtualization server system, the monitored functioning of the programming interface as recorded functioning data.
  • the step b) comprises recording, by the virtualization server system, the monitored functioning of the programming interface as recorded functioning data, and receiving, in the virtualization server system, the recorded functioning of the programming interface.
  • the monitoring may be recorded or stored such that it may be used for generating the virtual programming interface.
  • the monitored functioning or functioning data of the programming interface may be automatically recorded or stored.
  • the monitored functioning or functioning data may be stored in the virtualization server system.
  • the recording or storing may be carried out with the monitoring module, monitoring algorithm, monitoring application or monitoring software in the virtualization server system.
  • step b) comprises recording, by the virtualization server system, the monitored inputs to the programming interface and outputs from the programming interface.
  • the step b) comprises recording, by the virtualization server system, the monitored inputs to the programming interface and outputs from the programming interface as recorded functioning data, and receiving, in the virtualization server system, the recorded functioning data of the programming interface.
  • the monitoring of the inputs and outputs may be recorded or stored such that they may be used for generating the virtual programming interface.
  • the monitored inputs and outputs or functioning data of the programming interface may be automatically recorded or stored.
  • the monitored inputs and outputs or functioning data may be stored in the virtualization server system.
  • the recording or storing of the inputs and outputs may be carried out with the monitoring module, monitoring algorithm, monitoring application or monitoring software in the virtualization server system.
  • the step c) comprises generating, by the virtualization server system, the virtual programming interface based on the monitored functioning data of the programming interface.
  • the step c) comprises generating, by the virtualization server system, the virtual programming interface based on the recorded inputs and outputs of the programming interface.
  • step c) the virtual programming interface may also be generated, by the virtualization server system, based on the received specification documentation of the programming interface and based on the monitored functioning data or input and outputs of the programming interface.
  • the step a) comprises monitoring, by the virtualization server system, reading of specification documentation of the programming interface by a third-party server system or third-party application or software.
  • the monitoring of the reading may be carried out with a monitoring module, monitoring algorithm, monitoring application or monitoring software in the virtualization server system. Further, the monitoring may be carried out as automatic monitoring.
  • the virtualization server system or the monitoring module, monitoring algorithm, monitoring application or monitoring software in the virtualization server system may monitor another third-party server system an algorithm, application or software in the third-party server system reading the specification documentation of the programming interface.
  • the virtualization server system or the monitoring module, monitoring algorithm, monitoring application or monitoring software in the virtualization server system may monitor another third-party server system an algorithm, application or software in the third-party server system reading the specification documentation of the programming interface.
  • the step b) comprises receiving, in the virtualization server system, monitored specification documentation of the programming interface as monitored specification documentation data. Accordingly, the specification documentation read by the third-party is received in the virtualization server system.
  • the step b) comprises recording, by the virtualization server system, the reading of the specification documentation of the programing interface as recorded specification documentation data, and receiving, in the virtualization server system, the recorded specification documentation data of the programming interface.
  • the monitoring of the reading or the recorded specification documentation data may be recorded or stored such that they may be used for generating the virtual programming interface.
  • the reading may be automatically recorded or stored.
  • the monitored reading or recorded specification documentation data may be stored in the virtualization server system.
  • the recording or storing may be carried out with the monitoring module, monitoring algorithm, monitoring application or monitoring software in the virtualization server system.
  • the reading of the specification documentation by the third-party is recorded and the recorded specification documentation data is received in the virtualization server system to be used for generating the virtual programming interface.
  • the step c) comprises generating, by the virtualization server system, the virtual programming interface based on the monitored specification documentation data of the programming interface.
  • the step c) comprises generating, by the virtualization server system, the virtual programming interface based on the recorded specification documentation data of the programming interface.
  • the specification documentation monitored or recorded during monitoring reading by a third-party may be utilized for generating the virtual programming interface in step c).
  • the virtual programming interface may also be generated, by the virtualization server system, based on two or more of the flowing: based on the received specification documentation of the programming interface due to the searching or scraping the programming interface, based on the monitored functioning data or input and outputs of the programming interface, and based on the monitoring of reading the specification documentation of the programming interface by the third-party.
  • a source code of a production service may be available.
  • the step b) comprises receiving, in the virtualization server system, source code of a production service, the production service having the programming interface.
  • the step c) comprises generating, by the virtualization server system, a virtual programming interface based on the source code of the production service, the virtual programming interface having a virtualized specification, generating the virtual programming interface comprises generating a virtualized specification defining structure and functioning of the virtual programming interface.
  • the source code of the production service may be available for testing purposes.
  • the virtualization server system may utilize the source code and generate the virtual programming interface and the virtualized specification thereof based on the source code. This is highly efficient, as the source code enables quick generation of the virtualized programming interface which substantially corresponds the actual programing interface of the production service.
  • the virtual programming interface may be generated based on the one or several method steps of observing and acquiring information of the structure and functioning of the programming interface.
  • the method comprises step d) of storing the virtual programming interface.
  • the step d) comprises storing, in the virtualization server system, the virtual programming interface.
  • the step d) comprises receiving, in a testing server system, the virtual programming interface, and storing, in the testing server system, the virtual programming interface.
  • a separate testing server system may be provided for integration testing.
  • the virtual programming interface may be provided to the testing server system and the developers may provide request test calls to the testing server.
  • the virtualization server system may carry out the virtualization of the programming interface and thus steps a), b) and c).
  • the method comprises step e) performed before step c).
  • the step e) comprises receiving, in the virtualization server system (30), input data.
  • the step c) comprises generating, by the virtualization server system, the virtual programming interface based on the observed information of the programming interface and the input data, the virtual programming interface having the virtualized specification.
  • the input data may be received together or in the request test call to the virtual programming interface. Alternatively, the input data may be received separately from the request test call.
  • the input data may comprise pre-determined or background specification data which may be utilized for generating the virtual programming interface.
  • the method comprises a step f).
  • the step f) comprises receiving, in the virtualization server system, a request test call to the virtualized programming interface, the request test call comprising request test data.
  • the step f) comprises receiving, in the testing server system, a request test call to the virtualized programming interface, the request test call comprising request test data.
  • the request test call to the virtual programming interface is received.
  • the virtual programming interface represents or imitates the production programming interface for integration testing purposes.
  • the virtual programming interface may be provided in the virtualization server system or in the testing server system, and the request test call may be received in the virtualization server system or in the testing server system, respectively.
  • the request test call is received from a client device.
  • the request test call is a HTTP request test call or a HTTPS request call to the virtual programming interface.
  • method comprises a step g).
  • the step g) comprises generating, in the virtualization server system, a request test output based on the received request test call by utilizing the virtualized programming interface.
  • the step g) comprises generating, in the testing server system, a request test output based on the received request test call by utilizing the virtualized programming interface.
  • the request test output provides the integration testing output comprising the integration information.
  • the integration information comprises information whether the integration to the virtual programming interface is working or not.
  • the integration information thus also may represent information whether the integration to the real production programming interface is working or not as the virtual programming interface is generated based on the real production programming interface.
  • the step g) comprises providing a request test database accessible to the virtualized programming interface.
  • the request test database comprises one or more stored request test calls to the virtualized programming interface and one or more stored request test outputs of the virtualized programming interface. Each of the one or more stored request test outputs is associated with a corresponding stored request test call of the one or more stored request test calls.
  • the step g) further comprises comparing, by the virtualization server system, the received request test call to the one or more stored request test calls in the request test database and
  • the step c) of generating, by the virtualization server system, the request test output comprises selecting the request test output of the one or more stored request test outputs associated with the matched stored request test call, or
  • the step c) of generating, by the virtualization server system, the request test output comprises generating, by the virtualization server system, a new request test output based on the received request test call by utilizing the virtualized programming interface.
  • the step g) comprises providing a request test database accessible to the virtualized programming interface.
  • the request test database comprises one or more stored request test calls to the virtualized programming interface and one or more stored request test outputs of the virtualized programming interface. Each of the one or more stored request test outputs is associated with a corresponding stored request test call of the one or more stored request test calls.
  • the step g) further comprises comparing, by the testing server system, the received request test call to the one or more stored request test calls in the request test database, and
  • the step c) of generating, by the testing server system, the request test output comprises selecting the request test output of the one or more stored request test outputs associated with the matched stored request test call, or
  • the step c) of generating, by the testing server system, the request test output comprises generating, by the testing server system, a new request test output based on the received request test call by utilizing the virtualized programming interface.
  • the previous or pre-determined request test calls may be stored to the request test database together with corresponding request test outputs. Therefore, the there is no need for generating new request test output every time, but the method may comprise first checking if a similar request test call has already been made to the virtual programming interface. This makes the method more efficient.
  • the testing server system may comprise testing module.
  • the testing module may comprise stored virtual programming interface or the virtual programming interface may be stored in the testing server system separately.
  • the testing module may also be configured to receive the request test call and generate the request test output. Therefore, the testing module may be configured to carry out the steps f] and g) or d), f) and g).
  • the method comprises a step h).
  • the step h) comprises intercepting, by the virtualization server system, a request test call from a client device to the programming interface and redirecting the request test call to the virtualized programming interface in the virtualization server system.
  • the step h) comprises intercepting, by the testing server system, a request test call from a client device to the programming interface and redirecting the request test call to the virtualized programming interface in the testing server system.
  • the intercepting may be carried out with an interceptor application, software, module or algorithm in the virtualization server system or in the testing server system.
  • the interceptor may also be part of the virtualization module in the virtualization server system or the testing module in the testing server system. Intercepting the request test call to the real production programing interface and redirecting the request test call to the virtual program interface enables utilizing the virtual programming interface efficiently and instead of the real production programming interface.
  • the present invention is further based on an idea of providing an integration testing system for providing integration testing output by processing a request test call.
  • the diagnosis system comprises a virtualization server system, a testing server system, a communications network, a virtual programming interface in the testing server system and a request test database accessible to the testing server system.
  • the system is configured to perform the above disclosed method.
  • the present invention also based on an idea of providing a non- transitory computer readable media having stored thereon instructions that, when executed by a computing device, cause the computing device to perform the above disclosed method.
  • the present invention enable automatic integration testing in software development.
  • the method and system of the present invention provide increased application stability and resiliency, less bugs in production environments.
  • the virtual programing interface generated based on the real programming interface provides reliable and repeatable testing environment. Further, the virtual programming interface enables utilizing pre-determined or previous stored request test calls which makes the method and system even more efficient. Further, there is no need to load the production environment and real production programming interface with request test calls during the development.
  • Figure 1 shows schematically one embodiment of the system according to the present invention
  • Figure 2 shows schematically another embodiment of the system according to the present invention
  • Figure 3 shows a schematic flow chart of the method according to the present invention
  • Figure 4 shows a schematic flow chart of the method according to the present invention
  • Figure 5 shows schematically the system of figure 4.
  • Figure 6 shows a schematic flow chart of one embodiment of the method according to the present invention.
  • Figure 7 shows a schematic flow chart of another embodiment of the method according to the present invention.
  • Figure 8 shows a schematic flow chart of further aspects of the method according to the present invention.
  • Figure 9 shows a schematic flow chart of yet another embodiment of the method according to the present invention.
  • Figure 10 shows schematically the system of figure 9.
  • the invention and its embodiments are not specific to the particular information technology systems, communications systems and access networks, but it will be appreciated that the present invention and its embodiments have application in many system types and may, for example, be applied in a circuit switched domain, e.g., in GSM (Global System for Mobile Communications) digital cellular communication system, in a packet switched domain, e.g. in the UMTS (Universal Mobile Telecommunications System) system, the LTE (Long Term Evolution), or 5G NR (New Radio) standards standardized by the 3GPP (3G Partnership Project) , and e.g.
  • GSM Global System for Mobile Communications
  • UMTS Universal Mobile Telecommunications System
  • LTE Long Term Evolution
  • 5G NR New Radio
  • WLAN Wireless Local Area networks
  • HomeRF Radio Frequency
  • BRAN Broadband Radio Access Networks
  • IrDA Infrared Data Association
  • Bluetooth Bluetooth
  • the basic principles of the invention can be employed in combination with, between and/or within any mobile communications systems of 2nd, 2,5th, 3rd, 4th and 5th (and beyond) generation, such as GSM, GPRS (General Packet Radio Service), TETRA (Terrestrial Trunked Radio), UMTS systems, HSPA (High Speed Packet Access) systems e.g. in WCDMA (Wideband Code Division Multiple Access) technology, and PLMN (Public Land Mobile Network) systems.
  • GSM Global System for Mobile Communications
  • GPRS General Packet Radio Service
  • TETRA Transmission Restrial Trunked Radio
  • UMTS Universal Terrestriality
  • HSPA High Speed Packet Access
  • WCDMA Wideband Code Division Multiple Access
  • PLMN Public Land Mobile Network
  • IP Internet Protocol
  • GAN General Access Network
  • UMA Unlicensed Mobile Access
  • VoIP Voice over Internet Protocol
  • peer-to- peer networks technology e.g., peer-to- peer networks technology, ad hoc networks technology and other IP protocol technology.
  • IP protocol versions or combinations thereof can be used.
  • FIG. 1 and 2 An architecture of a communications system to which embodiments of the invention may be applied is illustrated in figures 1 and 2.
  • Figures 1 and 2 illustrates a simplified system architecture only showing some elements and functional entities, all being logical units whose implementation may differ from what is shown.
  • the connections shown in the figures are logical connections; the actual physical connections may be different. It is apparent to a person skilled in the art that the systems also comprise other functions and structures.
  • the present invention is not limited any known or future systems or device or service, but may be utilized in any systems by following method according to the present invention.
  • Figure 1 illustrates an integration testing system in which a user or developer may connect to a virtualization server system 30 by using user device 10 via a communications network 100. It should be noted that figure 1 presents a simplified version of the integration testing system and that in other embodiments, an unlimited number of users may be able to connect to the virtualization testing server system 30 via the communications network 100.
  • the communications network 100 may comprise one or more wireless networks, wherein a wireless network may be based on any mobile system, such as GSM, GPRS, LTE, 4G, 5G and beyond, and a wireless local area network, such as Wi-Fi. Furthermore, the communications network 100 may comprise one or more fixed networks or the Internet.
  • the virtualization server system 30 may comprise at least one virtualization server.
  • the virtualization server system 30 may also comprise one or more other network devices (not shown), such as a terminal device, a server and/or a database devices.
  • the virtualization server system 30 is configured to communicate with the one or more user devices 10 via the communications network 100. Further, the virtualization server system 30 is configured to communicate with the one or more production server systems 20 in which a production application or service is operated in production environment.
  • the virtualization server system 30 may form a single server, or it may also be implemented as distributed server system comprising two or more separate servers or as a computing cloud comprising one or more cloud servers. In some embodiments, the virtualization server system 30 may be a fully cloud-based server system. Further, it should be appreciated that the location of the virtualization server system 30 is irrelevant to the invention.
  • the virtualization server system 30 may be operated and maintained using one or more other network devices in the system or using a terminal device (not shown) via the communications network 100.
  • the virtualization server system 30 may also comprise a processing module 32.
  • the processing module 32 is coupled to or otherwise has access to a memory module 34.
  • the processing module 32 and the memory module 34 may form the virtualization server, or at least part of it.
  • the processing module 32 may be configured to carry out instructions of a virtualization applications or units by utilizing instructions of the virtualization application.
  • the virtualization server system 30 may comprise a virtualization unit 36 which may be virtualization application.
  • the virtualization application 36 may be stored in the memory module 34 of the virtualization server system 30.
  • the virtualization application may comprise the instructions of operating the virtualization application.
  • the processing module 32 may be configure to carry out the instructions of the virtualization application.
  • the processing module 32 may comprise one or more processing units or central processing units (CPU) or the like computing units.
  • the present invention is not restricted to any kind of processing unit or any number of processing units.
  • the memory module 34 may comprise non-transitory computer- readable storage medium or a computer-readable storage device.
  • the memory module 34 may comprise a temporary memory, meaning that a primary purpose of memory module 34 may not be long-term storage.
  • Memory module 34 may also refer to a volatile memory, meaning that memory module 34 does not maintain stored contents when memory module 34 is not receiving power. Examples of volatile memories include random access memories (RAM), dynamic random access memories (DRAM), static random access memories (SRAM), and other forms of volatile memories known in the art.
  • memory module 34 is used to store program instructions for execution by the processing module 32, for example the virtualization application.
  • the memory module 34 may be used by software (e.g., an operating system) or applications, such as a software, firmware, or middleware.
  • the memory module 34 may comprise for example operating system or software application, the virtualization application, comprising at least part of the instructions for executing the method of the present invention.
  • the virtualization unit 36 of the virtualization server system 30 comprises the virtualization application and it may be separate application unit, as shown in figure 1.
  • the production server system 20 may comprise at least one production server.
  • the production server system 20 may also comprise one or more other network devices (not shown), such as a terminal device, a server and/or a database devices.
  • the production server system 20 is configured to communicate with the one or more user devices 10 via the communications network 100. Further, the production server system 20 is configured to communicate with the virtualization server system 30 in which a virtualization application or service is operated in virtualization environment.
  • the production server system 20 may form a single server, or it may also be implemented as distributed server system comprising two or more separate servers or as a computing cloud comprising one or more cloud servers. In some embodiments, the production server system 20 may be a fully cloud-based server system. Further, it should be appreciated that the location of the production server system 20 is irrelevant to the invention.
  • the production server system 20 may be operated and maintained using one or more other network devices in the system or using a terminal device (not shown) via the communications network 100.
  • the production server system 20 may also comprise a processing module 22.
  • the processing module 22 is coupled to or otherwise has access to a memory module 24.
  • the processing module 22 and the memory module 24 may form the production server, or at least part of it.
  • the processing module 22 may be configured to carry out instructions of a production applications or units or services by utilizing instructions of the production application.
  • the production server system 20 may comprise a production unit 26 which may be production application or production service for one or more users or user devices 10.
  • the production application 26 may be stored in the memory module 24 of the production server system 20.
  • the production application may comprise the instructions of operating the production application.
  • the processing module 22 may be configure to carry out the instructions of the production application.
  • the processing module 22 may comprise one or more processing units or central processing units (CPU) or the like computing units.
  • the present invention is not restricted to any kind of processing unit or any number of processing units.
  • the memory module 24 may comprise non-transitory computer- readable storage medium or a computer-readable storage device.
  • the memory module 24 may comprise a temporary memory, meaning that a primary purpose of memory module 24 may not be long-term storage.
  • Memory module 24 may also refer to a volatile memory, meaning that memory module 24 does not maintain stored contents when memory module 24 is not receiving power. Examples of volatile memories include random access memories (RAM), dynamic random access memories (DRAM), static random access memories (SRAM), and other forms of volatile memories known in the art.
  • memory module 24 is used to store program instructions for execution by the processing module 22, for example the production application.
  • the memory module 24, in one embodiment, may be used by software (e.g., an operating system) or applications, such as a software, firmware, or middleware.
  • the memory module 24 may comprise for example operating system or software application, the production application, comprising at least part of the instructions for executing a service, such as network service or device service.
  • the production unit 26 of the production server system 20 comprises the production application and it may be separate application unit, as shown in figure 1.
  • the production server system 20 may comprise one or more network servers, cloud servers, distributed servers or the like.
  • the production server system 20 may be hardware device, such as internet of things (IoT device) or some other hardware device having the processing module 22, memory module 24 and the production unit or application 26. Accordingly, the present invention is not limited to any particular production server system 20.
  • IoT device internet of things
  • the present invention is not limited to any particular production server system 20.
  • the production unit or the production application 26 comprises a production programming interface (PI), or application programming interface (API) 28.
  • the production programming interface 28 is a set of routines, protocols, and tools for building software applications.
  • the programming interface 28 maybe for example for a web-based system, operating system, database system, computer hardware, or software library, depending on the production server system 20, or corresponding the production server system 20.
  • the programming interface specifies how software components should interact.
  • the production application 26 in the production server system 20 comprises the production programming interface 28.
  • Figure 2 shows an alternative embodiment, in which the system further comprises a testing server system 40.
  • the testing server system 40 is a separate server system 40 in addition to the virtualization server system 30.
  • testing server system 40 operations and services of the testing server system 40 may be implemented in and by the virtualization server system 30 and the virtualization unit 36.
  • the testing server system 40 is omitted.
  • the separate testing server system 40 is preferable, as the operations of the virtualization server system 30 may be separated from the operations of the testing server system 40, and thus increased data processing efficiency and speed may be achieved.
  • the testing server system 40 may comprise at least one testing server.
  • the testing server system 40 may also comprise one or more other network devices (not shown), such as a terminal device, a server and/or a database devices.
  • the testing server system 40 is configured to communicate with the one or more user devices 10 via the communications network 100. Further, the testing server system 40 is configured to communicate with the virtualization server system 30 and possible also with one or more production server systems 20.
  • the testing server system 40 may form a single server, or it may also be implemented as distributed server system comprising two or more separate servers or as a computing cloud comprising one or more cloud servers. In some embodiments, the testing server system 40 may be a fully cloud-based server system. Further, it should be appreciated that the location of the testing server system 40 is irrelevant to the invention.
  • the testing server system 40 may be operated and maintained using one or more other network devices in the system or using a terminal device (not shown) via the communications network 100.
  • the testing server system 40 may also comprise a processing module 42.
  • the processing module 42 is coupled to or otherwise has access to a memory module 44.
  • the processing module 42 and the memory module 44 may form the testing server, or at least part of it.
  • the processing module 42 may be configured to carry out instructions of a testing applications or units by utilizing instructions of the testing application.
  • the testing server system 40 may comprise a testing unit 46 or testing module which may be a testing application.
  • the testing application 46 may be stored in the memory module 44 of the testing server system 40.
  • the testing application may comprise the instructions of operating the testing application.
  • the processing module 42 may be configure to carry out the instructions of the testing application.
  • the processing module 42 may comprise one or more processing units or central processing units (CPU) or the like computing units.
  • the present invention is not restricted to any kind of processing unit or any number of processing units.
  • the memory module 44 may comprise non-transitory computer- readable storage medium or a computer-readable storage device.
  • the memory module 44 may comprise a temporary memory, meaning that a primary purpose of memory module 34 may not be long-term storage.
  • Memory module 44 may also refer to a volatile memory, meaning that memory module 44 does not maintain stored contents when memory module 44 is not receiving power. Examples of volatile memories include random access memories (RAM), dynamic random access memories (DRAM), static random access memories (SRAM), and other forms of volatile memories known in the art.
  • RAM random access memories
  • DRAM dynamic random access memories
  • SRAM static random access memories
  • memory module 44 is used to store program instructions for execution by the processing module 42, for example the testing application.
  • the memory module 44 may be used by software (e.g., an operating system) or applications, such as a software, firmware, or middleware.
  • the memory module 44 may comprise for example operating system or software application, the testing application, comprising at least part of the instructions for executing the method or at least part of the method of the present invention.
  • the testing unit 46 of the testing server system 40 comprises the testing application and it may be separate application unit, as shown in figure 2.
  • the system of the present invention may comprise one or more request test databases 70, as shown in figure 2.
  • the request test database 70 may be provided or incorporated to the virtualization server system 30 such that it is integral to the virtualization server system 30 and accessible to the virtualization server system 30.
  • the database 70 and the virtualization server system 30 may form a single database server system.
  • the request test database 70 is provided as separate database accessible to the testing server system 40, or the testing server system 40 and the virtualization server system 30 over the communications network 100.
  • the request test database 70 may also be provided or incorporated to the testing server system 40 such that it is integral to the testing server system 40 and accessible to the testing server system 40.
  • the database 70 and the testing server system 40 may form a single database server system.
  • the request test database 70 may maintain information of request test calls and corresponding request test outputs according to the method of the present invention.
  • the request test database 70 may comprise one or more storage devices.
  • the storage devices may also include one or more transitory or non- transitory computer-readable storage media and/or computer-readable storage devices.
  • storage devices may be configured to store greater amounts of information than memory modules 34, 44 of the virtualization server system 30 and/or the testing server system 40. Storage devices may further be configured for long-term storage of information.
  • the storage devices comprise non-volatile storage elements.
  • non-volatile storage elements include magnetic hard discs, optical discs, solid-state discs, flash memories, forms of electrically programmable memories (EPROMs) or electrically erasable and programmable memories (EEPROMs), and other forms of non volatile memories known in the art.
  • the storage device may comprise databases and the memory module 34 or 44 comprises instructions operating the testing application 46, or virtualization application 36, for executing the method according to the present invention utilizing the processing unit 42, or the processing unit 32.
  • the storage devices may also be omitted and the testing server system 40, or the virtualization server system 30, may comprise only the memory module 44, or the memory module 34, which also is configured as maintain the request test database 70.
  • the memory module 44, or the memory module 34 could be omitted and the testing server system 40, or the virtualization server system 30, could comprise only one or more storage devices. Therefore, the terms memory module 44, 34 and request test database 70 could be interchangeable in embodiments which they both are not present.
  • the request test database 70 is operable with other components and data of the testing server system 40, or the virtualization server system 30, by utilizing instructions stored in the memory module 34, or the memory module 34 and executed by the processing unit 42, or the processing unit 32 over the communications network 100.
  • the request test database 70 may be provided in connection with the testing server system 40or the testing server system 40 may comprise the request test database 70. Alternatively, the request test database 70 may be provided as external database 70, external to the testing server system 40, and the request test database 70 may be accessible to and connected to the testing server system 40 directly or via the communications network 100, as shown in figure 2.
  • the request test database 70 may be provided in connection with the virtualization server system 30 or the virtualization server system 30 may comprise the request test database 70, as shown in figure 1. Further alternatively, the request test database 70 may be provided as external database 70, external to the virtualization server system 30, and the request test database 70 may be accessible to and connected to the virtualization server system 30 directly or via the communications network 100
  • the storage device(s) may store one or more request test databases 70 for maintaining request test information or request test call and request test output information. These different information items may be stored to different database blocks in the request test database 70, or alternatively they may be grouped differently, for example based on each different request test call or request test output or a different or individual virtual programing interface.
  • User may utilize the production application 26 or service in the production server system 20 with user devices 10.
  • the user is a software developer developing a software, or application or service or program towards the programing interface 28 of the production application 26 in the production server system 20.
  • the user utilizes a user device 10.
  • the user device 10 may be configured to connect with or access the virtualization server system 30 and/or the testing server system 40 via the communications network 100.
  • User device 10 may be personal computers, desktop computers, laptops or user terminals, as well as mobile communication devices, such as mobile phones or a tablet computers suitable for performing web browsing or capable of accessing and interacting with the testing server system 40 and/or virtualization server system 30.
  • the user device 10 may also be personal digital assistant, thin client, electronic notebook or any other such device having a display and interface and being suitable for performing web browsing or capable of accessing and interacting with the testing server system 40 and/or virtualization server system 30.
  • the user device 10 may also developer server system.
  • the developer server system 10 may be similar to one or more of the production server system 20, virtualization server system 30 and the testing server system 40.
  • the user device 10 may refer to any portable or non-portable computing device.
  • Computing devices which may be employed include wireless mobile communication devices operating with or without a subscriber identification module (SIM) in hardware or in software.
  • SIM subscriber identification module
  • the user device 10 may comprise a user interface 11.
  • the user interface 11 may be any suitable user interface for a human user for utilizing and interacting the testing server system 40, virtualization server system 30 and the virtualization module 36 and/or the testing module 46 for carrying out the method of the present invention.
  • the user interface 11 may be a graphical user interface (GUI) provided by a web browser or a dedicated application on a display (e.g., a monitor screen, LCD display, etc.) of the user device 10.
  • GUI graphical user interface
  • the user interface 11 may, for example, enable the users input messages, upload and/or download data files and information, provide request test calls and receive request test outputs.
  • the user interface 11 may be accessible by the users with an input device (not shown) such as touchscreen, keyboard, mouse, touchpad, keypad, trackball or any other suitable hand operated input device or some other kind of input device such as voice operable user device or human gesture, such as hand or eye, gesture detecting input device.
  • the input device may be configured to receive input from the user.
  • the user interfaces (generally API, Application Programmable Interface) may be provided in conjunction with the system and method of the present invention in order to enable the users to interact with the testing server system 40 or with the virtualization server system 30.
  • the user device 10 may in some embodiments comprise a user application 12, such as a software application, developing application stored in the user device memory, and executed with a user device processor.
  • a user application 12 such as a software application, developing application stored in the user device memory, and executed with a user device processor.
  • system of the present invention may be implemented in several ways and the method of the present invention is not limited to any particular structure or architecture of the system.
  • FIGS. 1 and 2 are preferable systems enabling carrying out the method of the present invention.
  • the figures 1 and 2 are schematic representations of the systems according to the present invention.
  • the integration testing system for providing integration testing output by processing a request test call comprises the virtualization server system 30, the testing server system 40, the communications network 100, a virtual programming interface 48 in the testing server system, and the request test database 70 accessible to the testing server system 40.
  • testing server system 40 may be omitted and the virtualization server system 30 or the virtualization module may be configured to execute the functions of the testing server system 40 and/or the testing module 46.
  • request test database 70 may be omitted or it may be integral to the testing server system 40 or.
  • the virtualization server system 30 may be omitted or it may be integral to the testing server system 40 or.
  • the method of the present invention is carried out with the system.
  • Figure 3 shows schematically a flow chart of the method according to the present invention.
  • the basic principle of the present invention is to create a virtualized programing interface based on the real production programming interface 28 in the production server system 20 or the production application 26.
  • the virtual programming interface operates or serves as testing platform for developers for developing and testing integration to the production application 26.
  • the method for integration testing comprises a step a) of observing, by a virtualization server system 30, the programming interface 28, as shown in 200 of figure 3. Accordingly, in the step a), the real production programming interface 28 is observed for providing information on the structure and functioning of the programming interface 28.
  • the virtualization server system 30 or the virtualization module or application 36 observes or is configured to observe the programming interface 28 of the production application 26.
  • the method comprises step b) of acquiring, by the virtualization server system 30, observed information of the programming interface 28 based on the observing of the programming interface 28, as shown in 300 of figure 3. Accordingly, in the step b), information based on observing the programming interface 28 is acquired.
  • the virtualization server system 30 or the virtualization module or application 36 acquires or is configured to acquire the observed information of the programming interface 28 of the production application 26.
  • the method further comprises step c) of generating, by the virtualization server system 30, a virtual programming interface based on the observed and acquired information of the programming interface 28 of the production application, as shown in 400 of figure 3.
  • the virtual programming interface is provided a virtualized specification.
  • the virtual programming interface is generated based on the production programming interface 28 or the specification or functioning thereof. Thus, the virtual programming interface corresponds, or imitates the production programming interface 28.
  • the step c) of generating the virtual programing interface comprises generating specification of the virtual programing interface.
  • the specification of the virtual programming interface comprises the definition or the specification or definition and specification of the virtual programming interface.
  • the specification of the virtual programming interface denoted as virtual specification, comprises or defines structure and functioning of the virtual programming interface.
  • the specification of the virtual programming interface is provided in machine readable format.
  • the virtual specification may be utilized by the user device 10.
  • the virtual programming interface 38 is provided to the virtualization server system 30.
  • the method further comprises step d) of storing the generated virtual programming interface 38 in the virtualization server system 30.
  • the request test calls are received in the virtualization server system 30 and processed by the virtualization module 36 and the virtual programming interface 38 to generate request test outputs.
  • the virtual programming interface 38 may be associated with the virtualization module 36 or the virtualization module 36 may comprise the virtual programming interface 38.
  • the virtual programming interface 38 is stored separately from the virtualization module 36 in the virtualization server system 30.
  • the virtual programming interface 38 is accessible to the user device 10.
  • Figure 4 shows an alternative embodiment corresponding the system of figure 2.
  • the method the steps a), b) and c) correspond the similar steps in figure 3.
  • the system comprises the testing server system 40 separate from the virtualization server system 30.
  • the embodiment of figure 4 further comprises the step d) of receiving, in the testing server system 40 the virtual programming interface 48, and storing, in the testing server system 40, the virtual programming interface 48, as shown in 500 of figure 4.
  • the request test calls are received in the testing server system 40 and processed by the testing module 46 and the virtual programming interface 48 to generate request test outputs.
  • the virtual programming interface 48 may be associated with the testing module 46 or the testing module 46 may comprise the virtual programming interface 48. Alternatively, the virtual programming interface 48 is stored separately from the testing module 46 in the testing server system 40. The virtual programming interface 48 is accessible to the user device 10.
  • the steps a) and b) are carried out by the virtualization server system 30 or the virtualization module 36 thereof.
  • the acquired observed in information of the programming interface 28 is received in the testing server system 40.
  • the step c) is carried out by the testing server system 40 or the testing module 46 thereof.
  • the method comprises step c) of generating, by the testing server system 40, the virtual programming interface 48 based on the observed and acquired information of the programming interface 28 of the production application, as shown in 400 of figure 4.
  • the virtual programming interface is provided a virtualized specification. Accordingly, the step d) shown in figure 4 as 500 is carried out before the step c).
  • step d) of receiving, in the testing server system 40 the virtual programming interface 48, and storing, in the testing server system 40, the virtual programming interface 48, as shown in 500 of figure 4, is carried out before step c) and the step c) is carried out by the testing server system 40 or the testing module 46 thereof.
  • the request test calls are received in the testing server system 40 and processed by the testing module 46 and the virtual programming interface 48 to generate request test outputs.
  • Figure 5 shows, schematically one embodiment according to the method of figure 4.
  • the virtualization server system 30 or the virtualization module or application 36 thereof observes the programming interface 28 of the production application 26 and carries out the step a).
  • the virtualization server system 30 or the virtualization module or application 36 thereof further acquires, and receives, the observed information of the programming interface 28 of the production application 26 based on observing of the programming interface 28 and thus caries out the step b).
  • the virtualization server system 30 or the virtualization module or application 36 thereof further generates the virtual programming interface 38, 48 based on observed information of the programming interface 28 and thus caries out the step c).
  • the testing server system 40 receives and stores the virtual programming interface 48 in the testing server system 40 in step d).
  • the virtual programming interface 48 is stored to the testing module 46 or it is associated or linked with the testing module 46.
  • the virtual programming interface 48 is accessible to the user device 10 in the testing server system 40.
  • the steps a), b) and c) are similar to figure 3 and carried out by the virtualization server system 30 or the virtualization module 36 thereof.
  • the system comprises the request call database 70 or another virtual programming database, as shown in figure 2.
  • the virtual programming interface 38 is received in the database 70 from the virtualization server system 30 and stored in the database 70.
  • the database 70 may be external separate database accessible to the virtualization server system 30 and to the user device 10.
  • the database 70 may also be accessible to the testing server system 40 and the testing module 46 thereof.
  • the database 70 in which the virtual programming interface 70 is stored may also configured to comprise software application, the testing application or testing module 46, comprising at least part of the instructions for executing the method of the present invention. Therefore, in this embodiment the testing server system 40 may also be omitted.
  • the database 70 storing the virtual programming interface maybe accessible to the testing server system 40 and the testing module 46 and the testing module 46 or the testing server system 40 is configured to execute at least part of the instructions for executing the method of the present invention.
  • Figure 6 shows schematically in flow chart one embodiment of the method according to the present invention.
  • the step a) comprises scraping and/or searching, by the virtualization server system 30 or the virtualization module 36, specification documentation of the programming interface 28 from the programming interface 28, as shown in 200 figure 6.
  • the virtualization server system 30 or the virtualization module 36 thereof may comprise a searching tool or searching application or searching algorithm for searching the specification documentation of the programming interface 28.
  • the virtualization server system 30 or the virtualization module 36 thereof may comprise a scraping tool or scraping application or scraping algorithm, such as web scraping application.
  • the searching and/or scraping may be carried automatically by the virtualization server system 30 or the virtualization module 36 thereof.
  • the step b) comprises receiving, in the virtualization server system 30 or in the virtualization module 36, the searched and/or scraped specification documentation of the programming interface 28 from the programming interface 28 and receiving, in the virtualization server system 30 or in the virtualization module 36, the read or scraped specification documentation of the programming interface 28 from the programming interface 28, as shown in 300 of the figure 6.
  • the step b) may be carried out automatically.
  • the specification documentation of the programing interface 28 is first found from the programing interface 28 or the production application 26 or the production server system 20. Then, the found specification documentation is acquired to the virtualization server system 30 or the virtualization module 36 by reading and receiving it.
  • the virtual programming interface 38 is generated by the virtualization server system 30 or the virtualization module 36 based on the received specification documentation of the programming interface 28, as shown in 30 of figure 6. Accordingly, the virtual programming interface is generated based on the real specification documentation of the production programming interface 28.
  • the step c) and generating the virtual programming interface may be carried out automatically by the virtualization server system 30 or the virtualization module 36.
  • FIG 7 shows another embodiment of the method of the present invention. It should be noted however, that the embodiment of figures 6 and 7 may be combined and they may be carried out simultaneously or successively.
  • the step a) comprises monitoring, by the virtualization server system 30 or the virtualization module 36, functioning of the programming interface, as shown in 200 of figure 7. This may comprise monitoring inputs to the programming interface 28 and outputs from the programming interface 28.
  • request calls to the programming interface 28 by a third-party user device or client device or server system is monitored. Further, request responses from the programming interface 28 to the third-party user device or client device or server system is also monitored. Thus, it is possible to reverse engineer or imitate the functioning of the programming interface 28 when the inputs and corresponding outputs are known.
  • step b) of the embodiment of figure 7 monitored functioning data, or the inputs and outputs, of monitoring the functioning of the programming interface 2 may be received in the virtualization server system or n the virtualization module 36, as shown in 300 of figure 7. Further, the step b) may comprise recording, by the virtualization server system 30 or the virtualization module 36, the monitored functioning data, or the monitored inputs to the programing interface 28 and monitored outputs from the programming interface 28, of the programming interface 28 as recorded functioning data and receiving, in the virtualization server system 30, the recorded functioning of the programming interface 28.
  • the step b) comprises recording or storing the functioning data, or the inputs and outputs, of the programming interface 28.
  • the recording or storing of step b) may be carried out automatically by the virtualization server system 30 or the virtualization module 36.
  • step c) of the embodiment of figure 7 the virtual programming interface 38 is generated by the virtualization server system 30 or the virtualization module 36 based on the monitored, recorded or stored functioning data of the programming interface 28 or based on the monitored, recorded or stored input to the programming interface 28 and outputs from the programming interface 28.
  • the virtualization server system 30 or the virtualization module 36 may comprise a monitoring tool, application or software for monitoring the functioning or the inputs and outputs of the programing interface 28.
  • the virtualization server system 30 or the virtualization module 36 may comprise an analysing tool, application or software configured to analysing the functioning or the inputs and outputs of the programing interface 28 for generating the virtual programming interface 28.
  • the inputs and outputs are utilized to determine the functioning of the programming interface 28.
  • the virtual programming interface may be generated to function similarly as the programming interface 28 based on the monitored functioning data or the inputs and outputs.
  • the virtual programing interface 38, 48 may be generated even when the specification documentation of the programming interface 28 is not available or may not be scraped or read form the programming interface 28.
  • the embodiments of figures 6 and 7 are combined.
  • the steps a) and b) are carried out as described in both the embodiments of figures 6 and 7.
  • the step c) comprises generating the virtual programming interface 38, by the virtualization server system 30 or the virtualization module 36 based on the received specification documentation of the programming interface 28 and based on the monitored, recorded or stored functioning data, or the inputs and outputs, of the programming interface 28.
  • the virtual programing interface 38 may be generated by utilizing both the available specification document of the programing interface 28 and the functioning information or functioning data of the programing interface 28. Therefore, the virtual programming interface 38 may be generated efficiently and a reliable virtual programming interface may be generated even when there is restricted amount of specification information available.
  • step c) in all the embodiments may also be carried out by the testing server system 40 or the testing module 46 thereof, or by the database 70.
  • the read specification documentation and functioning data of the programing interface 28 may be received or received and stored in the testing server system 40 or the testing module 46 thereof or the database 70.
  • the present invention is not limited to where or by which hardware device the virtual programming interface 38, 48 is generated and where or to which hardware device it is stored.
  • the method may comprise step e) performed before step c).
  • the step e) comprises receiving, in the virtualization server system 30 or in the virtualization module 36, input data.
  • the step e) comprises receiving, in the testing server system 40 or in the testing module 46, the input data.
  • the input data may be any predetermined specification data which may be used for generating the virtual programming interface 38.
  • the developer may provide input data or predetermined specification data which comprises predetermined information of functioning of the virtual programming interface.
  • the developer may make desired modification to the virtual programming interface 38, 48.
  • the step c) comprises generating, by the virtualization server system 30 or by the virtualization module 36, or by the testing server system 40 or the testing module 46, the virtual programming interface 38, 48 based on the observed specification information of the programming interface 28 and the input data, the virtual programming interface 38, 48.
  • the virtual programming interface 38, 48 may be generated based on the input data and the functioning data, or the inputs and outputs, of the programming interface 28.
  • the virtual programming interface 38, 48 may be generated based on the input data and the functioning data, or the inputs and outputs, of the programming interface 28 and observed specification information of the programming interface 28.
  • the method comprises in step b) receiving, in the virtualization server system 30, source code of a production service 26.
  • the production service having the programming interface 28.
  • the source code of the production service may be available in the production service or production service server and thus it may be utilized in the method.
  • the method further comprises in step c) generating, by the virtualization server system 30, a virtual programming interface 38, 48 based on the source code of the production service 26.
  • the virtual programming interface 38, 48 comprises a virtualized specification. Generating the virtual programming interface 38, 48 further comprises generating a virtualized specification defining structure and functioning of the virtual programming interface 38, 48.
  • Figure 8 shows schematically a flow chart integration testing.
  • the method of the present invention may further comprise a step f) of receiving to the virtual programming interface 38, 48, as shown in 600 of figure 8.
  • the request test call comprises request test data.
  • the step f] comprises receiving, in the virtualization server system 30 or the virtualization module 36, a request test call to the virtualized programming interface 38, the request test call comprising request test data.
  • the step f) comprises receiving, in the testing server system 40 of the testing module 46, a request test call to the virtualized programming interface 48, the request test call comprising request test data.
  • the request test call may be a HTTP request test call, or a HTTPS request call or the like request call.
  • the method comprises a step g) of generating a request test output based on the received request test call by utilizing the virtualized programming interface 38, as shown in 650 of figure 8.
  • the request test output may be request test response or request test response message.
  • the request test output of the HTTP request test call may be request test response message an Extensible Markup Language (XML) or JavaScript Object Notation (JSON) format
  • the request test output may be utilized to define if the developed application or software operates correctly with the virtual programing interface.
  • the request test call comprises request call information or data and this request call information or data is processed by the virtual programming interface 38, 48 and the request test output is generated by the virtual programming interface 38, 48 based on the request test call and the request test information or data.
  • the step g) comprises generating, in the virtualization server system 30 or in the virtualization module 36, the request test output based on the received request test call by utilizing the virtualized programming interface 38.
  • the step g) comprises generating, in the testing server system 40 or in the testing module 46, a request test output based on the received request test call by utilizing the virtualized programming interface 48.
  • step g) the virtual programming interface 38, 48 generates the request test output to the request test call by utilizing the information or data of the request test call, the request test call information or data.
  • Figure 9 shows the steps f] and g) schematically in relation to one embodiment of the system of the present invention.
  • step f) the developer performs the request test call A from the user device 10 to the virtual programming interface 48 in the testing server system 40 and the request test call is received in the testing server system 40.
  • the virtual programing interface 48 processes the request test call and generates the request test output B.
  • the request test output B is sent to the client device 10 and the client device 10 receives the request test output B.
  • Figure 10 shows one aspect of the method of the present invention which may be utilized for providing efficient integration testing, and especially for providing efficient generation of request test output.
  • the step g) comprises providing a request test database 70 accessible to the virtualized programming interface 38 or the testing server system 40, as shown in 700 figure 10. Further, the request test database 70 may be accessible to the testing server system 40 or the testing module 46 thereof, or to the virtualizing server system 30 or the virtualizing module 36.
  • the request test database 70 comprises one or more stored request test calls to the virtualized programming interface 38, 48 and one or more stored request test outputs of the virtualized programming interface 38, 48. Each of the one or more stored request test outputs being associated with a corresponding stored request test call of the one or more stored request test calls.
  • the step g) of the method further comprises comparing, by the virtualization server system 30 or the virtualization module 36, the received request test call to the one or more stored request test calls in the request test database 70, as shown in 750 of figure 10.
  • the step c) of generating, by the virtualization server system 30 or the virtualization module 36, the request test output comprises selecting the request test output of the one or more stored request test outputs associated with the matched stored request test call.
  • the step c) of generating, by the virtualization server system 30 or the virtualization module 36, the request test output comprises generating, by the virtualization server system 30 or the virtualization module 36, a new request test output based on the received request test call by utilizing the virtualized programming interface 38.
  • the step g) of the method further comprises comparing, by the testing server system 40 or the testing module 46, the received request test call to the one or more stored request test calls in the request test database 70, as shown in 750 of figure 10.
  • the step c) of generating, by the testing server system 40 or the testing module 46, the request test output comprises selecting the request test output of the one or more stored request test outputs associated with the matched stored request test call.
  • the step c) of generating, by the testing server system 40 or the testing module 46, the request test output comprises generating, by the testing server system 40 or the testing module 46, a new request test output based on the received request test call by utilizing the virtualized programming interface 48.
  • the received new request test call is first compared to previous the request test calls stored on the request test database 70. If the new request test call matches with one previous request test calls the request test output corresponding the matched previous request test call is selected as the request test output for the new request test call. If the new request test call does not match with any of the previous request test calls, a new request test output is generated as disclosed above in relation to step c) in figures 6 and 7. In the latter case, the new request test call and the new request test output may be further stored to the request test database 70 to be used as mentioned 700 and 750 of figure 10.
  • the request test database 70 may be provided as an external database accessible to the virtualization server system 30, the testing server system 40 and/or the client device 10.
  • the request database 70 may be provided as an internal database to the virtualization server system 30 and accessible to accessible to the testing server system 40 and/or the client device 10.
  • the request database 70 may be provided as an internal database to the testing server system 40 and accessible to accessible to the virtualization server system 30 and/or the client device 10.

Abstract

The invention relates to method for integration testing by a testing system generating mock data. The method comprises observing, by a virtualization server system (30), a programming interface (28); acquiring, by the virtualization server system (30), observed information of the programming interface (28) based on the observing of the programming interface (28); and generating, by the virtualization server system (30), a virtual programming interface (38, 48) based on the observed information of the programming interface (28), the virtual programming interface (38, 48) having a virtualized specification.

Description

METHOD AND SYSTEM FOR INTEGRATION TESTING
FIELD OF THE INVENTION
The present invention relates to a method for integration testing and more particularly to method according to preamble of claim 1. The present invention further relates to a system for integration testing and more particularly to a system according to preamble of claim 18.
BACKGROUND OF THE INVENTION
Software developers (hereafter "developers”) need to test integrations between their code and other services, be they third-party APIs, microservices, databases, etc. However, developers do not have a good way, in the process of writing code, to automatically interact with semantically and functionally correct mock data that resembles the real data that their code will consume when deployed to a production environment. Mock data is data that is fake. The fake quality of data is not simply the absence of realness, but rather data that is reliably fake, meaning reliably not containing any real client data, such as credit card numbers, names or photographs, while at the same time resembling what data would be expected to look like. Real data cannot be used as mock data as it may cause violation of regulation and compliance as well as privacy of persons. Mock data is also useful as a proxy for data that does not yet exist or is only difficulty attainable - for example, data resembling a service after 100 days of usage by definition does not exist if the service has not yet existed for 100 days. Furthermore, simulating 100s of users in a service that has just launched would require manually recruiting these users or creating fake profiles, whereas mocking can simulate their existence instantly. Semantically correct data means data that any human would feel is real data or a reliable fake version of real data. Functionally correct data means that the implied function of the data is correct.
There are several alternative ways to do third-party integration testing, but they fall into five general categories: libraries for manual mocking, libraries for automatic mocking, libraries and services for intercepting third-party API (application program interface) requests, sandbox API environments, and production monitoring.
Manual mocking refers to the process of creating mock data on an API- by-API call. Automatic mocking refers to the process of generating mock data from a specification describing an API. Intercepting third party requests refers to the process of monitoring web traffic and modifying it on the fly with mocked data. Another alternative is the provision of sandbox environments that act as reliable mocks of production environments. Yet another alternative, used in situations where APIs grow organically, is to monitor production environments for breakage and make rapid fixes in near real-time.
These known integration test alternatives often require developers to provision services on dashboards and link them to their development operation, which is inefficient compared to putting a solution directly in the body of their code as they are writing it. Dashboards are inefficient because they take the developer out of their workflow, placing them in a different environment that then needs to by synced with their workflow. Dashboards are also inefficient because, being exogenous to from the workflow, they usually require manual configuration because they cannot infer anything about the developer from the developer’s environment.
Another disadvantage of prior-art solutions is that automatic mocking is limited to recording or the generation of mocks from a specification. While this can provide some utility, it requires manual work on the part of the developer to maintain the specification and generate the mocks. There is, to date, no solution that is able to create mock data by inferring the functionality of a server using machine learning.
BRIEF DESCRIPTION OF THE INVENTION
An object of the present invention is to provide a method and system for integration testing so as to solve or at least alleviate the prior art disadvantages.
The objects of the invention are achieved by a method for integration testing which is characterized by what is stated in the independent claim 1. The objects of the invention are also achieved by a system for integration testing which is characterized by what is stated in the independent claim 17.
The preferred embodiments of the invention are disclosed in the dependent claims.
The invention is based on the idea of providing a method for automatic integration testing by a testing system generating a request test output. The method comprises:
a) observing, by a virtualization server system, a programming interface;
b) acquiring, by the virtualization server system, observed information of the programming interface based on the observing of the programming interface; and
c) generating, by the virtualization server system, a virtual programming interface based on the observed information of the programming interface, the virtual programming interface having a virtualized specification.
The programming interface may be any application programming interface (PI) of a production application or device. Thus, the method provides automatic generating a virtualized application programming interface of the production PI. The virtualized PI may then be used for integration testing and thus, there is no need to use the real production PI and third-party service for integration testing.
In the context of the present patent application, the programing interface (PI) may be application programming interface (API) or programming interface (PI) of a hardware device or software application.
In the context of the present patent application the term specification means PI specification and PI definition or only PI definition.
The PI specification provides a broad understanding of how an PI behaves and how the PI links with other Pis. It explains how the PI functions and the results to expect when using the PI. A PI specification is also an indication of how the API is designed and the data types the PI supports.
The API definition is similar to a PI specification in that it provides an understanding of how a PI is organized and how the PI functions. The API definition is aimed at machine consumption instead of human consumption of Pis. An PI definition provides information about how the PI functions, how it links with other APIs, and the expected results in a machine-readable format. It focuses on defining the API and outlining the structure of the PI. An PI definition is often used as a baseline for automated tools. PI definitions can be used to generate PI documentation and code samples automatically.
Accordingly, in the present application the PI specification defines structure and functioning of the PI. Similarly, the specification documentation means the documentation of the PI with the PI specification and PI definition or only the PI definition. The concept of the specification is known for skilled person in te art.
Therefore, the virtualized PI provided by the present invention has also the virtualized PI specification for imitating the structure and functioning of the real PI.
In one embodiment, the steps a), b) and c) may be carried out by a virtualization module provided in the virtualization server system. The virtualization module may comprise a virtualization algorithm, software or application configured to carry out the steps a), b) and c).
In one embodiment, the step a) of observing the programming interface comprises scraping, by the virtualization server system, specification documentation of the programming interface from the programming interface.
In the context of this patent application the scraping means data extraction and is used for extracting data from websites or applications, thus the specification documentation. Web scraping software may access the World Wide Web directly using a Hypertext Transfer Protocol, or through a web browser. While web scraping can be done manually by a software user, the term typically refers to automated processes implemented using a bot or web crawler. It is a form of copying, in which specific data, the specification documentation of the PI, is gathered and copied. Scraping a web page may involve fetching it and extracting from it. Thus, the scraping may mean automatic scraping.
The scraping may be carried out with scraping module or scraping application or crawler or software in the virtualization server system.
Accordingly, in this embodiment the specification documentation of the real programming interface is extracted from the production application or production API or website for generation of the virtualized programming interface.
Then, the step b) comprises receiving, in the virtualization server system, the specification documentation of the programming interface from the programming interface. Thus, the scraped specification documentation is received in the virtualization server system.
In another embodiment, the step a) of observing the programming interface comprises searching, by the virtualization server system, specification documentation of the programming interface from the programming interface.
The searching may mean automatic searching using searching algorithm or application or software or searching module in the virtualization server system.
Then, the step b) comprises reading, by the virtualization server system, the searched specification documentation of the programming interface from the programming interface, and receiving, in the virtualization server system, the specification documentation of the programming interface from the programming interface.
Accordingly, in this embodiment the specification documentation of the real programming interface is searched and read from the production application or production PI or website. Then the searched and read specification documentation is received in the virtualization server system for generation of the virtualized programming interface.
Therefore, in one embodiment the step c) comprises generating, by the virtualization server system, the virtual programming interface based on the specification documentation of the programming interface received in the virtualization server system. The step c) may further comprise automatic generation, by the virtualization server system, the virtual programming interface.
Accordingly, one embodiment of the method of the present invention provides generating, or automatically generating, a virtual programming interface based on or by utilizing the specification documentation of the real production programming interface.
In one embodiment, the step a) comprises monitoring, by the virtualization server system, functioning of the programming interface.
In another embodiment, the step a) comprises monitoring, by the virtualization server system, functioning of the programming interface by monitoring inputs to the programming interface and outputs from the programming interface. The inputs to the PI may be request calls to PI and the output from the PI may be responses to the PI calls from the PI.
Accordingly, the method may comprise monitoring the functioning of the PI, or the inputs and outputs of the PI, and utilizing the monitoring information for generating the virtual programming interface.
The monitoring may be carried out with a monitoring module, monitoring algorithm, monitoring application or monitoring software in the virtualization server system. Further, the monitoring may be carried out as automatic monitoring.
Further, in one embodiment the step b) comprises receiving, in the virtualization server system, monitored functioning data of monitoring the functioning of the programming interface in step a).
In another embodiment, the step b) comprises recording, by the virtualization server system, the monitored functioning of the programming interface as recorded functioning data.
In a further embodiment, the step b) comprises recording, by the virtualization server system, the monitored functioning of the programming interface as recorded functioning data, and receiving, in the virtualization server system, the recorded functioning of the programming interface.
Therefore, the monitoring may be recorded or stored such that it may be used for generating the virtual programming interface. The monitored functioning or functioning data of the programming interface may be automatically recorded or stored. The monitored functioning or functioning data may be stored in the virtualization server system. The recording or storing may be carried out with the monitoring module, monitoring algorithm, monitoring application or monitoring software in the virtualization server system.
In another embodiment, the step b) comprises recording, by the virtualization server system, the monitored inputs to the programming interface and outputs from the programming interface.
In a further embodiment, the step b) comprises recording, by the virtualization server system, the monitored inputs to the programming interface and outputs from the programming interface as recorded functioning data, and receiving, in the virtualization server system, the recorded functioning data of the programming interface.
Therefore, the monitoring of the inputs and outputs may be recorded or stored such that they may be used for generating the virtual programming interface. The monitored inputs and outputs or functioning data of the programming interface may be automatically recorded or stored. The monitored inputs and outputs or functioning data may be stored in the virtualization server system. The recording or storing of the inputs and outputs may be carried out with the monitoring module, monitoring algorithm, monitoring application or monitoring software in the virtualization server system.
Therefore, in one embodiment, the step c) comprises generating, by the virtualization server system, the virtual programming interface based on the monitored functioning data of the programming interface.
In another embodiment, the step c) comprises generating, by the virtualization server system, the virtual programming interface based on the recorded inputs and outputs of the programming interface.
Further, it should be noted that in step c) the virtual programming interface may also be generated, by the virtualization server system, based on the received specification documentation of the programming interface and based on the monitored functioning data or input and outputs of the programming interface.
In one embodiment, the step a) comprises monitoring, by the virtualization server system, reading of specification documentation of the programming interface by a third-party server system or third-party application or software.
The monitoring of the reading may be carried out with a monitoring module, monitoring algorithm, monitoring application or monitoring software in the virtualization server system. Further, the monitoring may be carried out as automatic monitoring.
Accordingly, in this embodiment, the virtualization server system or the monitoring module, monitoring algorithm, monitoring application or monitoring software in the virtualization server system may monitor another third-party server system an algorithm, application or software in the third-party server system reading the specification documentation of the programming interface. Thus, there is no need to observe, monitor, search or scrape the programming interface directly.
In one embodiment, the step b) comprises receiving, in the virtualization server system, monitored specification documentation of the programming interface as monitored specification documentation data. Accordingly, the specification documentation read by the third-party is received in the virtualization server system.
In another embodiment, the step b) comprises recording, by the virtualization server system, the reading of the specification documentation of the programing interface as recorded specification documentation data, and receiving, in the virtualization server system, the recorded specification documentation data of the programming interface.
Therefore, the monitoring of the reading or the recorded specification documentation data may be recorded or stored such that they may be used for generating the virtual programming interface. The reading may be automatically recorded or stored. The monitored reading or recorded specification documentation data may be stored in the virtualization server system. The recording or storing may be carried out with the monitoring module, monitoring algorithm, monitoring application or monitoring software in the virtualization server system.
Accordingly, the reading of the specification documentation by the third-party is recorded and the recorded specification documentation data is received in the virtualization server system to be used for generating the virtual programming interface.
In one embodiment, the step c) comprises generating, by the virtualization server system, the virtual programming interface based on the monitored specification documentation data of the programming interface.
In another embodiment, the step c) comprises generating, by the virtualization server system, the virtual programming interface based on the recorded specification documentation data of the programming interface.
Accordingly, the specification documentation monitored or recorded during monitoring reading by a third-party may be utilized for generating the virtual programming interface in step c).
Further, it should be noted that in step c) the virtual programming interface may also be generated, by the virtualization server system, based on two or more of the flowing: based on the received specification documentation of the programming interface due to the searching or scraping the programming interface, based on the monitored functioning data or input and outputs of the programming interface, and based on the monitoring of reading the specification documentation of the programming interface by the third-party.
In an alternative embodiment, a source code of a production service may be available. In this embodiment, the step b) comprises receiving, in the virtualization server system, source code of a production service, the production service having the programming interface. Further, the step c) comprises generating, by the virtualization server system, a virtual programming interface based on the source code of the production service, the virtual programming interface having a virtualized specification, generating the virtual programming interface comprises generating a virtualized specification defining structure and functioning of the virtual programming interface.
In some cases, the source code of the production service may be available for testing purposes. In these cases, the virtualization server system may utilize the source code and generate the virtual programming interface and the virtualized specification thereof based on the source code. This is highly efficient, as the source code enables quick generation of the virtualized programming interface which substantially corresponds the actual programing interface of the production service.
Accordingly, the in step c) the virtual programming interface may be generated based on the one or several method steps of observing and acquiring information of the structure and functioning of the programming interface.
In one embodiment, the method comprises step d) of storing the virtual programming interface. In one embodiment, the step d) comprises storing, in the virtualization server system, the virtual programming interface.
In another embodiment, the step d) comprises receiving, in a testing server system, the virtual programming interface, and storing, in the testing server system, the virtual programming interface.
Accordingly, a separate testing server system may be provided for integration testing. Thus, the virtual programming interface may be provided to the testing server system and the developers may provide request test calls to the testing server. The virtualization server system may carry out the virtualization of the programming interface and thus steps a), b) and c).
In one embodiment, the method comprises step e) performed before step c). The step e) comprises receiving, in the virtualization server system (30), input data. Thus, the step c) comprises generating, by the virtualization server system, the virtual programming interface based on the observed information of the programming interface and the input data, the virtual programming interface having the virtualized specification.
The input data may be received together or in the request test call to the virtual programming interface. Alternatively, the input data may be received separately from the request test call. The input data may comprise pre-determined or background specification data which may be utilized for generating the virtual programming interface.
In one embodiment, the method comprises a step f). The step f) comprises receiving, in the virtualization server system, a request test call to the virtualized programming interface, the request test call comprising request test data.
In another embodiment, the step f) comprises receiving, in the testing server system, a request test call to the virtualized programming interface, the request test call comprising request test data.
Accordingly, the for carrying out integration testing, the request test call to the virtual programming interface is received. The virtual programming interface represents or imitates the production programming interface for integration testing purposes. The virtual programming interface may be provided in the virtualization server system or in the testing server system, and the request test call may be received in the virtualization server system or in the testing server system, respectively. The request test call is received from a client device.
In one embodiment, the request test call is a HTTP request test call or a HTTPS request call to the virtual programming interface.
Further in one embodiment, method comprises a step g). The step g) comprises generating, in the virtualization server system, a request test output based on the received request test call by utilizing the virtualized programming interface.
In another embodiment, the step g) comprises generating, in the testing server system, a request test output based on the received request test call by utilizing the virtualized programming interface.
The request test output provides the integration testing output comprising the integration information. The integration information comprises information whether the integration to the virtual programming interface is working or not. The integration information thus also may represent information whether the integration to the real production programming interface is working or not as the virtual programming interface is generated based on the real production programming interface.
In one embodiment, the step g) comprises providing a request test database accessible to the virtualized programming interface. The request test database comprises one or more stored request test calls to the virtualized programming interface and one or more stored request test outputs of the virtualized programming interface. Each of the one or more stored request test outputs is associated with a corresponding stored request test call of the one or more stored request test calls. The step g) further comprises comparing, by the virtualization server system, the received request test call to the one or more stored request test calls in the request test database and
if the received test call matches with one of the one or more stored request test calls in the request test database, the step c) of generating, by the virtualization server system, the request test output comprises selecting the request test output of the one or more stored request test outputs associated with the matched stored request test call, or
if the received test call does not match with any of the one or more stored request test calls in the request test database, the step c) of generating, by the virtualization server system, the request test output comprises generating, by the virtualization server system, a new request test output based on the received request test call by utilizing the virtualized programming interface.
In another embodiment, the step g) comprises providing a request test database accessible to the virtualized programming interface. The request test database comprises one or more stored request test calls to the virtualized programming interface and one or more stored request test outputs of the virtualized programming interface. Each of the one or more stored request test outputs is associated with a corresponding stored request test call of the one or more stored request test calls. The step g) further comprises comparing, by the testing server system, the received request test call to the one or more stored request test calls in the request test database, and
if the received test call matches with one of the one or more stored request test calls in the request test database, the step c) of generating, by the testing server system, the request test output comprises selecting the request test output of the one or more stored request test outputs associated with the matched stored request test call, or
if the received test call does not match with any of the one or more stored request test calls in the request test database, the step c) of generating, by the testing server system, the request test output comprises generating, by the testing server system, a new request test output based on the received request test call by utilizing the virtualized programming interface.
Accordingly, the previous or pre-determined request test calls may be stored to the request test database together with corresponding request test outputs. Therefore, the there is no need for generating new request test output every time, but the method may comprise first checking if a similar request test call has already been made to the virtual programming interface. This makes the method more efficient.
The testing server system may comprise testing module. The testing module may comprise stored virtual programming interface or the virtual programming interface may be stored in the testing server system separately. The testing module may also be configured to receive the request test call and generate the request test output. Therefore, the testing module may be configured to carry out the steps f] and g) or d), f) and g).
In one embodiment, the method comprises a step h). The step h) comprises intercepting, by the virtualization server system, a request test call from a client device to the programming interface and redirecting the request test call to the virtualized programming interface in the virtualization server system.
In another embodiment, the step h) comprises intercepting, by the testing server system, a request test call from a client device to the programming interface and redirecting the request test call to the virtualized programming interface in the testing server system.
The intercepting may be carried out with an interceptor application, software, module or algorithm in the virtualization server system or in the testing server system. The interceptor may also be part of the virtualization module in the virtualization server system or the testing module in the testing server system. Intercepting the request test call to the real production programing interface and redirecting the request test call to the virtual program interface enables utilizing the virtual programming interface efficiently and instead of the real production programming interface.
The present invention is further based on an idea of providing an integration testing system for providing integration testing output by processing a request test call. The diagnosis system comprises a virtualization server system, a testing server system, a communications network, a virtual programming interface in the testing server system and a request test database accessible to the testing server system. The system is configured to perform the above disclosed method.
The present invention also based on an idea of providing a non- transitory computer readable media having stored thereon instructions that, when executed by a computing device, cause the computing device to perform the above disclosed method.
The present invention enable automatic integration testing in software development. The method and system of the present invention provide increased application stability and resiliency, less bugs in production environments. The virtual programing interface generated based on the real programming interface provides reliable and repeatable testing environment. Further, the virtual programming interface enables utilizing pre-determined or previous stored request test calls which makes the method and system even more efficient. Further, there is no need to load the production environment and real production programming interface with request test calls during the development.
BRIEF DESCRIPTION OF THE DRAWINGS
The invention is described in detail by means of specific embodiments with reference to the enclosed drawings, in which
Figure 1 shows schematically one embodiment of the system according to the present invention;
Figure 2 shows schematically another embodiment of the system according to the present invention; Figure 3 shows a schematic flow chart of the method according to the present invention;
Figure 4 shows a schematic flow chart of the method according to the present invention;
Figure 5 shows schematically the system of figure 4;
Figure 6 shows a schematic flow chart of one embodiment of the method according to the present invention;
Figure 7 shows a schematic flow chart of another embodiment of the method according to the present invention;
Figure 8 shows a schematic flow chart of further aspects of the method according to the present invention;
Figure 9 shows a schematic flow chart of yet another embodiment of the method according to the present invention; and
Figure 10 shows schematically the system of figure 9.
DETAILED DESCRIPTION OF THE INVENTION
The invention and its embodiments are not specific to the particular information technology systems, communications systems and access networks, but it will be appreciated that the present invention and its embodiments have application in many system types and may, for example, be applied in a circuit switched domain, e.g., in GSM (Global System for Mobile Communications) digital cellular communication system, in a packet switched domain, e.g. in the UMTS (Universal Mobile Telecommunications System) system, the LTE (Long Term Evolution), or 5G NR (New Radio) standards standardized by the 3GPP (3G Partnership Project) , and e.g. in networks ac-cordingto the IEEE 802.11 standards: WLAN (Wireless Local Area networks), HomeRF (Radio Frequency) or BRAN (Broadband Radio Access Networks) specifications (HIPERLAN1 and 2, HIPERACCESS). The invention and its embodiments can also be applied in ad hoc communications systems, such as an IrDA (Infrared Data Association) network or a Bluetooth network. In other words, the basic principles of the invention can be employed in combination with, between and/or within any mobile communications systems of 2nd, 2,5th, 3rd, 4th and 5th (and beyond) generation, such as GSM, GPRS (General Packet Radio Service), TETRA (Terrestrial Trunked Radio), UMTS systems, HSPA (High Speed Packet Access) systems e.g. in WCDMA (Wideband Code Division Multiple Access) technology, and PLMN (Public Land Mobile Network) systems.
Communications technology using IP (Internet Protocol) protocol can be, e.g., the GAN technology (General Access Network), UMA (Unlicensed Mobile Access) technology, the VoIP (Voice over Internet Protocol) technology, peer-to- peer networks technology, ad hoc networks technology and other IP protocol technology. Different IP protocol versions or combinations thereof can be used.
An architecture of a communications system to which embodiments of the invention may be applied is illustrated in figures 1 and 2. Figures 1 and 2 illustrates a simplified system architecture only showing some elements and functional entities, all being logical units whose implementation may differ from what is shown. The connections shown in the figures are logical connections; the actual physical connections may be different. It is apparent to a person skilled in the art that the systems also comprise other functions and structures.
According to the above mentioned, the present invention is not limited any known or future systems or device or service, but may be utilized in any systems by following method according to the present invention.
Figure 1 illustrates an integration testing system in which a user or developer may connect to a virtualization server system 30 by using user device 10 via a communications network 100. It should be noted that figure 1 presents a simplified version of the integration testing system and that in other embodiments, an unlimited number of users may be able to connect to the virtualization testing server system 30 via the communications network 100.
The communications network 100 may comprise one or more wireless networks, wherein a wireless network may be based on any mobile system, such as GSM, GPRS, LTE, 4G, 5G and beyond, and a wireless local area network, such as Wi-Fi. Furthermore, the communications network 100 may comprise one or more fixed networks or the Internet.
The virtualization server system 30 may comprise at least one virtualization server. The virtualization server system 30 may also comprise one or more other network devices (not shown), such as a terminal device, a server and/or a database devices. The virtualization server system 30 is configured to communicate with the one or more user devices 10 via the communications network 100. Further, the virtualization server system 30 is configured to communicate with the one or more production server systems 20 in which a production application or service is operated in production environment. The virtualization server system 30 may form a single server, or it may also be implemented as distributed server system comprising two or more separate servers or as a computing cloud comprising one or more cloud servers. In some embodiments, the virtualization server system 30 may be a fully cloud-based server system. Further, it should be appreciated that the location of the virtualization server system 30 is irrelevant to the invention. The virtualization server system 30 may be operated and maintained using one or more other network devices in the system or using a terminal device (not shown) via the communications network 100.
The virtualization server system 30 may also comprise a processing module 32. The processing module 32 is coupled to or otherwise has access to a memory module 34. The processing module 32 and the memory module 34 may form the virtualization server, or at least part of it. The processing module 32 may be configured to carry out instructions of a virtualization applications or units by utilizing instructions of the virtualization application. The virtualization server system 30 may comprise a virtualization unit 36 which may be virtualization application. The virtualization application 36 may be stored in the memory module 34 of the virtualization server system 30. The virtualization application may comprise the instructions of operating the virtualization application. Thus, the processing module 32 may be configure to carry out the instructions of the virtualization application.
The processing module 32 may comprise one or more processing units or central processing units (CPU) or the like computing units. The present invention is not restricted to any kind of processing unit or any number of processing units. The memory module 34 may comprise non-transitory computer- readable storage medium or a computer-readable storage device. In some embodiments, the memory module 34 may comprise a temporary memory, meaning that a primary purpose of memory module 34 may not be long-term storage. Memory module 34 may also refer to a volatile memory, meaning that memory module 34 does not maintain stored contents when memory module 34 is not receiving power. Examples of volatile memories include random access memories (RAM), dynamic random access memories (DRAM), static random access memories (SRAM), and other forms of volatile memories known in the art. In some examples, memory module 34 is used to store program instructions for execution by the processing module 32, for example the virtualization application. The memory module 34, in one embodiment, may be used by software (e.g., an operating system) or applications, such as a software, firmware, or middleware. The memory module 34 may comprise for example operating system or software application, the virtualization application, comprising at least part of the instructions for executing the method of the present invention. Accordingly, the virtualization unit 36 of the virtualization server system 30 comprises the virtualization application and it may be separate application unit, as shown in figure 1.
Similarly to the virtualization server system 30, the production server system 20 may comprise at least one production server. The production server system 20 may also comprise one or more other network devices (not shown), such as a terminal device, a server and/or a database devices. The production server system 20 is configured to communicate with the one or more user devices 10 via the communications network 100. Further, the production server system 20 is configured to communicate with the virtualization server system 30 in which a virtualization application or service is operated in virtualization environment. The production server system 20 may form a single server, or it may also be implemented as distributed server system comprising two or more separate servers or as a computing cloud comprising one or more cloud servers. In some embodiments, the production server system 20 may be a fully cloud-based server system. Further, it should be appreciated that the location of the production server system 20 is irrelevant to the invention. The production server system 20 may be operated and maintained using one or more other network devices in the system or using a terminal device (not shown) via the communications network 100.
The production server system 20 may also comprise a processing module 22. The processing module 22 is coupled to or otherwise has access to a memory module 24. The processing module 22 and the memory module 24 may form the production server, or at least part of it. The processing module 22 may be configured to carry out instructions of a production applications or units or services by utilizing instructions of the production application. The production server system 20 may comprise a production unit 26 which may be production application or production service for one or more users or user devices 10. The production application 26 may be stored in the memory module 24 of the production server system 20. The production application may comprise the instructions of operating the production application. Thus, the processing module 22 may be configure to carry out the instructions of the production application.
The processing module 22 may comprise one or more processing units or central processing units (CPU) or the like computing units. The present invention is not restricted to any kind of processing unit or any number of processing units. The memory module 24 may comprise non-transitory computer- readable storage medium or a computer-readable storage device. In some embodiments, the memory module 24 may comprise a temporary memory, meaning that a primary purpose of memory module 24 may not be long-term storage. Memory module 24 may also refer to a volatile memory, meaning that memory module 24 does not maintain stored contents when memory module 24 is not receiving power. Examples of volatile memories include random access memories (RAM), dynamic random access memories (DRAM), static random access memories (SRAM), and other forms of volatile memories known in the art. In some examples, memory module 24 is used to store program instructions for execution by the processing module 22, for example the production application. The memory module 24, in one embodiment, may be used by software (e.g., an operating system) or applications, such as a software, firmware, or middleware. The memory module 24 may comprise for example operating system or software application, the production application, comprising at least part of the instructions for executing a service, such as network service or device service. Accordingly, the production unit 26 of the production server system 20 comprises the production application and it may be separate application unit, as shown in figure 1.
Further, it should be noted that in the context of this patent application the production server system 20 may comprise one or more network servers, cloud servers, distributed servers or the like. Furthermore, the production server system 20 may be hardware device, such as internet of things (IoT device) or some other hardware device having the processing module 22, memory module 24 and the production unit or application 26. Accordingly, the present invention is not limited to any particular production server system 20.
The production unit or the production application 26 comprises a production programming interface (PI), or application programming interface (API) 28. The production programming interface 28 is a set of routines, protocols, and tools for building software applications. The programming interface 28 maybe for example for a web-based system, operating system, database system, computer hardware, or software library, depending on the production server system 20, or corresponding the production server system 20. Basically, the programming interface specifies how software components should interact. Accordingly, the production application 26 in the production server system 20 comprises the production programming interface 28. Figure 2 shows an alternative embodiment, in which the system further comprises a testing server system 40. The testing server system 40 is a separate server system 40 in addition to the virtualization server system 30. However, it should be noted that in the embodiment of figure 1 operations and services of the testing server system 40 may be implemented in and by the virtualization server system 30 and the virtualization unit 36. Thus, in the embodiment of figure 1 the testing server system 40 is omitted. However, the separate testing server system 40 is preferable, as the operations of the virtualization server system 30 may be separated from the operations of the testing server system 40, and thus increased data processing efficiency and speed may be achieved.
The testing server system 40 may comprise at least one testing server. The testing server system 40 may also comprise one or more other network devices (not shown), such as a terminal device, a server and/or a database devices. The testing server system 40 is configured to communicate with the one or more user devices 10 via the communications network 100. Further, the testing server system 40 is configured to communicate with the virtualization server system 30 and possible also with one or more production server systems 20. The testing server system 40 may form a single server, or it may also be implemented as distributed server system comprising two or more separate servers or as a computing cloud comprising one or more cloud servers. In some embodiments, the testing server system 40 may be a fully cloud-based server system. Further, it should be appreciated that the location of the testing server system 40 is irrelevant to the invention. The testing server system 40 may be operated and maintained using one or more other network devices in the system or using a terminal device (not shown) via the communications network 100.
The testing server system 40 may also comprise a processing module 42. The processing module 42 is coupled to or otherwise has access to a memory module 44. The processing module 42 and the memory module 44 may form the testing server, or at least part of it. The processing module 42 may be configured to carry out instructions of a testing applications or units by utilizing instructions of the testing application. The testing server system 40 may comprise a testing unit 46 or testing module which may be a testing application. The testing application 46 may be stored in the memory module 44 of the testing server system 40. The testing application may comprise the instructions of operating the testing application. Thus, the processing module 42 may be configure to carry out the instructions of the testing application. The processing module 42 may comprise one or more processing units or central processing units (CPU) or the like computing units. The present invention is not restricted to any kind of processing unit or any number of processing units. The memory module 44 may comprise non-transitory computer- readable storage medium or a computer-readable storage device. In some embodiments, the memory module 44 may comprise a temporary memory, meaning that a primary purpose of memory module 34 may not be long-term storage. Memory module 44 may also refer to a volatile memory, meaning that memory module 44 does not maintain stored contents when memory module 44 is not receiving power. Examples of volatile memories include random access memories (RAM), dynamic random access memories (DRAM), static random access memories (SRAM), and other forms of volatile memories known in the art. In some examples, memory module 44 is used to store program instructions for execution by the processing module 42, for example the testing application. The memory module 44, in one embodiment, may be used by software (e.g., an operating system) or applications, such as a software, firmware, or middleware. The memory module 44 may comprise for example operating system or software application, the testing application, comprising at least part of the instructions for executing the method or at least part of the method of the present invention. Accordingly, the testing unit 46 of the testing server system 40 comprises the testing application and it may be separate application unit, as shown in figure 2.
The system of the present invention may comprise one or more request test databases 70, as shown in figure 2. In the embodiment of figure 1, the request test database 70 may be provided or incorporated to the virtualization server system 30 such that it is integral to the virtualization server system 30 and accessible to the virtualization server system 30. Thus, the database 70 and the virtualization server system 30 may form a single database server system. In the embodiment of figure 2, the request test database 70 is provided as separate database accessible to the testing server system 40, or the testing server system 40 and the virtualization server system 30 over the communications network 100. Alternatively, the request test database 70 may also be provided or incorporated to the testing server system 40 such that it is integral to the testing server system 40 and accessible to the testing server system 40. Thus, the database 70 and the testing server system 40 may form a single database server system.
The request test database 70 may maintain information of request test calls and corresponding request test outputs according to the method of the present invention. The request test database 70 may comprise one or more storage devices. The storage devices may also include one or more transitory or non- transitory computer-readable storage media and/or computer-readable storage devices. In some embodiments, storage devices may be configured to store greater amounts of information than memory modules 34, 44 of the virtualization server system 30 and/or the testing server system 40. Storage devices may further be configured for long-term storage of information. In some examples, the storage devices comprise non-volatile storage elements. Examples of such non-volatile storage elements include magnetic hard discs, optical discs, solid-state discs, flash memories, forms of electrically programmable memories (EPROMs) or electrically erasable and programmable memories (EEPROMs), and other forms of non volatile memories known in the art. In one embodiment, the storage device may comprise databases and the memory module 34 or 44 comprises instructions operating the testing application 46, or virtualization application 36, for executing the method according to the present invention utilizing the processing unit 42, or the processing unit 32. However, it should be noted that the storage devices may also be omitted and the testing server system 40, or the virtualization server system 30, may comprise only the memory module 44, or the memory module 34, which also is configured as maintain the request test database 70. Alternatively, the memory module 44, or the memory module 34, could be omitted and the testing server system 40, or the virtualization server system 30, could comprise only one or more storage devices. Therefore, the terms memory module 44, 34 and request test database 70 could be interchangeable in embodiments which they both are not present. The request test database 70 is operable with other components and data of the testing server system 40, or the virtualization server system 30, by utilizing instructions stored in the memory module 34, or the memory module 34 and executed by the processing unit 42, or the processing unit 32 over the communications network 100.
The request test database 70 may be provided in connection with the testing server system 40or the testing server system 40 may comprise the request test database 70. Alternatively, the request test database 70 may be provided as external database 70, external to the testing server system 40, and the request test database 70 may be accessible to and connected to the testing server system 40 directly or via the communications network 100, as shown in figure 2.
Alternatively or additionally, the request test database 70 may be provided in connection with the virtualization server system 30 or the virtualization server system 30 may comprise the request test database 70, as shown in figure 1. Further alternatively, the request test database 70 may be provided as external database 70, external to the virtualization server system 30, and the request test database 70 may be accessible to and connected to the virtualization server system 30 directly or via the communications network 100
The storage device(s) may store one or more request test databases 70 for maintaining request test information or request test call and request test output information. These different information items may be stored to different database blocks in the request test database 70, or alternatively they may be grouped differently, for example based on each different request test call or request test output or a different or individual virtual programing interface.
User may utilize the production application 26 or service in the production server system 20 with user devices 10. However, in the present application the user is a software developer developing a software, or application or service or program towards the programing interface 28 of the production application 26 in the production server system 20. The user utilizes a user device 10.
The user device 10 may be configured to connect with or access the virtualization server system 30 and/or the testing server system 40 via the communications network 100. User device 10 may be personal computers, desktop computers, laptops or user terminals, as well as mobile communication devices, such as mobile phones or a tablet computers suitable for performing web browsing or capable of accessing and interacting with the testing server system 40 and/or virtualization server system 30. However, the user device 10 may also be personal digital assistant, thin client, electronic notebook or any other such device having a display and interface and being suitable for performing web browsing or capable of accessing and interacting with the testing server system 40 and/or virtualization server system 30. In some embodiment, the user device 10 may also developer server system. The developer server system 10 may be similar to one or more of the production server system 20, virtualization server system 30 and the testing server system 40.
Further, the user device 10 may refer to any portable or non-portable computing device. Computing devices which may be employed include wireless mobile communication devices operating with or without a subscriber identification module (SIM) in hardware or in software.
The user device 10 may comprise a user interface 11. The user interface 11 may be any suitable user interface for a human user for utilizing and interacting the testing server system 40, virtualization server system 30 and the virtualization module 36 and/or the testing module 46 for carrying out the method of the present invention. The user interface 11 may be a graphical user interface (GUI) provided by a web browser or a dedicated application on a display (e.g., a monitor screen, LCD display, etc.) of the user device 10. The user interface 11 may, for example, enable the users input messages, upload and/or download data files and information, provide request test calls and receive request test outputs.
The user interface 11 may be accessible by the users with an input device (not shown) such as touchscreen, keyboard, mouse, touchpad, keypad, trackball or any other suitable hand operated input device or some other kind of input device such as voice operable user device or human gesture, such as hand or eye, gesture detecting input device. The input device may be configured to receive input from the user. The user interfaces (generally API, Application Programmable Interface) may be provided in conjunction with the system and method of the present invention in order to enable the users to interact with the testing server system 40 or with the virtualization server system 30.
The user device 10 may in some embodiments comprise a user application 12, such as a software application, developing application stored in the user device memory, and executed with a user device processor.
It should be noted that the system of the present invention may be implemented in several ways and the method of the present invention is not limited to any particular structure or architecture of the system.
However, the systems shown in figures 1 and 2 are preferable systems enabling carrying out the method of the present invention. The figures 1 and 2 are schematic representations of the systems according to the present invention.
In one embodiment, the integration testing system for providing integration testing output by processing a request test call comprises the virtualization server system 30, the testing server system 40, the communications network 100, a virtual programming interface 48 in the testing server system, and the request test database 70 accessible to the testing server system 40.
In another embodiment, the testing server system 40 may be omitted and the virtualization server system 30 or the virtualization module may be configured to execute the functions of the testing server system 40 and/or the testing module 46.
Further, in yet another embodiment, request test database 70 may be omitted or it may be integral to the testing server system 40 or. The virtualization server system 30.
The method of the present invention is carried out with the system.
Figure 3 shows schematically a flow chart of the method according to the present invention. The basic principle of the present invention is to create a virtualized programing interface based on the real production programming interface 28 in the production server system 20 or the production application 26. The virtual programming interface operates or serves as testing platform for developers for developing and testing integration to the production application 26.
The method for integration testing comprises a step a) of observing, by a virtualization server system 30, the programming interface 28, as shown in 200 of figure 3. Accordingly, in the step a), the real production programming interface 28 is observed for providing information on the structure and functioning of the programming interface 28. Thus, the virtualization server system 30 or the virtualization module or application 36 observes or is configured to observe the programming interface 28 of the production application 26.
Then, the method comprises step b) of acquiring, by the virtualization server system 30, observed information of the programming interface 28 based on the observing of the programming interface 28, as shown in 300 of figure 3. Accordingly, in the step b), information based on observing the programming interface 28 is acquired. Thus, the virtualization server system 30 or the virtualization module or application 36 acquires or is configured to acquire the observed information of the programming interface 28 of the production application 26.
The method further comprises step c) of generating, by the virtualization server system 30, a virtual programming interface based on the observed and acquired information of the programming interface 28 of the production application, as shown in 400 of figure 3. The virtual programming interface is provided a virtualized specification.
The virtual programming interface is generated based on the production programming interface 28 or the specification or functioning thereof. Thus, the virtual programming interface corresponds, or imitates the production programming interface 28.
In general and in all embodiment of the present invention, the step c) of generating the virtual programing interface comprises generating specification of the virtual programing interface. The specification of the virtual programming interface comprises the definition or the specification or definition and specification of the virtual programming interface. The specification of the virtual programming interface, denoted as virtual specification, comprises or defines structure and functioning of the virtual programming interface.
The specification of the virtual programming interface is provided in machine readable format. Thus, the virtual specification may be utilized by the user device 10.
In the system and embodiment of figure 1, the virtual programming interface 38 is provided to the virtualization server system 30. In this embodiment, the method further comprises step d) of storing the generated virtual programming interface 38 in the virtualization server system 30. In this embodiment, the request test calls are received in the virtualization server system 30 and processed by the virtualization module 36 and the virtual programming interface 38 to generate request test outputs.
Thus, the virtual programming interface 38 may be associated with the virtualization module 36 or the virtualization module 36 may comprise the virtual programming interface 38. Alternatively, the virtual programming interface 38 is stored separately from the virtualization module 36 in the virtualization server system 30. The virtual programming interface 38 is accessible to the user device 10.
Figure 4 shows an alternative embodiment corresponding the system of figure 2. In this embodiment, the method the steps a), b) and c) correspond the similar steps in figure 3. In this embodiment, the system comprises the testing server system 40 separate from the virtualization server system 30.
The embodiment of figure 4 further comprises the step d) of receiving, in the testing server system 40 the virtual programming interface 48, and storing, in the testing server system 40, the virtual programming interface 48, as shown in 500 of figure 4. In this embodiment, the request test calls are received in the testing server system 40 and processed by the testing module 46 and the virtual programming interface 48 to generate request test outputs.
Thus, the virtual programming interface 48 may be associated with the testing module 46 or the testing module 46 may comprise the virtual programming interface 48. Alternatively, the virtual programming interface 48 is stored separately from the testing module 46 in the testing server system 40. The virtual programming interface 48 is accessible to the user device 10.
Further, in one embodiment, the steps a) and b) are carried out by the virtualization server system 30 or the virtualization module 36 thereof. Then, the acquired observed in information of the programming interface 28 is received in the testing server system 40. The step c) is carried out by the testing server system 40 or the testing module 46 thereof. Thus, the method comprises step c) of generating, by the testing server system 40, the virtual programming interface 48 based on the observed and acquired information of the programming interface 28 of the production application, as shown in 400 of figure 4. The virtual programming interface is provided a virtualized specification. Accordingly, the step d) shown in figure 4 as 500 is carried out before the step c). Therefore, in this embodiment the step d) of receiving, in the testing server system 40 the virtual programming interface 48, and storing, in the testing server system 40, the virtual programming interface 48, as shown in 500 of figure 4, is carried out before step c) and the step c) is carried out by the testing server system 40 or the testing module 46 thereof. Also in this embodiment, the request test calls are received in the testing server system 40 and processed by the testing module 46 and the virtual programming interface 48 to generate request test outputs.
Figure 5 shows, schematically one embodiment according to the method of figure 4. In this embodiment, the virtualization server system 30 or the virtualization module or application 36 thereof, observes the programming interface 28 of the production application 26 and carries out the step a). The virtualization server system 30 or the virtualization module or application 36 thereof further acquires, and receives, the observed information of the programming interface 28 of the production application 26 based on observing of the programming interface 28 and thus caries out the step b). Further, the virtualization server system 30 or the virtualization module or application 36 thereof further generates the virtual programming interface 38, 48 based on observed information of the programming interface 28 and thus caries out the step c). The testing server system 40 receives and stores the virtual programming interface 48 in the testing server system 40 in step d). The virtual programming interface 48 is stored to the testing module 46 or it is associated or linked with the testing module 46. The virtual programming interface 48 is accessible to the user device 10 in the testing server system 40.
In a yet alternative embodiment, the steps a), b) and c) are similar to figure 3 and carried out by the virtualization server system 30 or the virtualization module 36 thereof. In this embodiment, the system comprises the request call database 70 or another virtual programming database, as shown in figure 2. In step d) the virtual programming interface 38 is received in the database 70 from the virtualization server system 30 and stored in the database 70. The database 70 may be external separate database accessible to the virtualization server system 30 and to the user device 10. The database 70 may also be accessible to the testing server system 40 and the testing module 46 thereof.
It should be noted, that the database 70 in which the virtual programming interface 70 is stored may also configured to comprise software application, the testing application or testing module 46, comprising at least part of the instructions for executing the method of the present invention. Therefore, in this embodiment the testing server system 40 may also be omitted. Alternatively, the database 70 storing the virtual programming interface maybe accessible to the testing server system 40 and the testing module 46 and the testing module 46 or the testing server system 40 is configured to execute at least part of the instructions for executing the method of the present invention.
In the flowing the more detailed embodiment of the present invention are disclosed in connection with figures 6 to 10. It should be noted that different embodiments of the method of the present invention may be carried out with any of the above described system structures and the method of the present invention is not restricted to any particular system structure or architecture.
Figure 6 shows schematically in flow chart one embodiment of the method according to the present invention. In the embodiment of figure 6, the step a) comprises scraping and/or searching, by the virtualization server system 30 or the virtualization module 36, specification documentation of the programming interface 28 from the programming interface 28, as shown in 200 figure 6.
The virtualization server system 30 or the virtualization module 36 thereof may comprise a searching tool or searching application or searching algorithm for searching the specification documentation of the programming interface 28. Similarly, the virtualization server system 30 or the virtualization module 36 thereof may comprise a scraping tool or scraping application or scraping algorithm, such as web scraping application. The searching and/or scraping may be carried automatically by the virtualization server system 30 or the virtualization module 36 thereof.
In the embodiment of figure 6, the step b) comprises receiving, in the virtualization server system 30 or in the virtualization module 36, the searched and/or scraped specification documentation of the programming interface 28 from the programming interface 28 and receiving, in the virtualization server system 30 or in the virtualization module 36, the read or scraped specification documentation of the programming interface 28 from the programming interface 28, as shown in 300 of the figure 6. The step b) may be carried out automatically.
Accordingly, in the embodiment of figure 6 the specification documentation of the programing interface 28 is first found from the programing interface 28 or the production application 26 or the production server system 20. Then, the found specification documentation is acquired to the virtualization server system 30 or the virtualization module 36 by reading and receiving it.
After that, in the step c) the virtual programming interface 38 is generated by the virtualization server system 30 or the virtualization module 36 based on the received specification documentation of the programming interface 28, as shown in 30 of figure 6. Accordingly, the virtual programming interface is generated based on the real specification documentation of the production programming interface 28. The step c) and generating the virtual programming interface may be carried out automatically by the virtualization server system 30 or the virtualization module 36.
Figure 7 shows another embodiment of the method of the present invention. It should be noted however, that the embodiment of figures 6 and 7 may be combined and they may be carried out simultaneously or successively.
In the embodiment, of figure 7, the step a) comprises monitoring, by the virtualization server system 30 or the virtualization module 36, functioning of the programming interface, as shown in 200 of figure 7. This may comprise monitoring inputs to the programming interface 28 and outputs from the programming interface 28.
Accordingly, in one embodiment request calls to the programming interface 28 by a third-party user device or client device or server system is monitored. Further, request responses from the programming interface 28 to the third-party user device or client device or server system is also monitored. Thus, it is possible to reverse engineer or imitate the functioning of the programming interface 28 when the inputs and corresponding outputs are known.
Then, in step b) of the embodiment of figure 7, monitored functioning data, or the inputs and outputs, of monitoring the functioning of the programming interface 2 may be received in the virtualization server system or n the virtualization module 36, as shown in 300 of figure 7. Further, the step b) may comprise recording, by the virtualization server system 30 or the virtualization module 36, the monitored functioning data, or the monitored inputs to the programing interface 28 and monitored outputs from the programming interface 28, of the programming interface 28 as recorded functioning data and receiving, in the virtualization server system 30, the recorded functioning of the programming interface 28.
Accordingly, in the embodiment of figure 7, the step b) comprises recording or storing the functioning data, or the inputs and outputs, of the programming interface 28. The recording or storing of step b) may be carried out automatically by the virtualization server system 30 or the virtualization module 36.
The, in step c) of the embodiment of figure 7, the virtual programming interface 38 is generated by the virtualization server system 30 or the virtualization module 36 based on the monitored, recorded or stored functioning data of the programming interface 28 or based on the monitored, recorded or stored input to the programming interface 28 and outputs from the programming interface 28.
The virtualization server system 30 or the virtualization module 36 may comprise a monitoring tool, application or software for monitoring the functioning or the inputs and outputs of the programing interface 28. Similarly, the virtualization server system 30 or the virtualization module 36 may comprise an analysing tool, application or software configured to analysing the functioning or the inputs and outputs of the programing interface 28 for generating the virtual programming interface 28.
The inputs and outputs are utilized to determine the functioning of the programming interface 28. Thus, the virtual programming interface may be generated to function similarly as the programming interface 28 based on the monitored functioning data or the inputs and outputs.
Accordingly, the virtual programing interface 38, 48 may be generated even when the specification documentation of the programming interface 28 is not available or may not be scraped or read form the programming interface 28.
In one embodiment, the embodiments of figures 6 and 7 are combined. Thus, the steps a) and b) are carried out as described in both the embodiments of figures 6 and 7. Further, the step c) comprises generating the virtual programming interface 38, by the virtualization server system 30 or the virtualization module 36 based on the received specification documentation of the programming interface 28 and based on the monitored, recorded or stored functioning data, or the inputs and outputs, of the programming interface 28. Accordingly, the virtual programing interface 38 may be generated by utilizing both the available specification document of the programing interface 28 and the functioning information or functioning data of the programing interface 28. Therefore, the virtual programming interface 38 may be generated efficiently and a reliable virtual programming interface may be generated even when there is restricted amount of specification information available.
It should be noted, that the step c) in all the embodiments may also be carried out by the testing server system 40 or the testing module 46 thereof, or by the database 70. Thus, the read specification documentation and functioning data of the programing interface 28 may be received or received and stored in the testing server system 40 or the testing module 46 thereof or the database 70. Thus, the present invention is not limited to where or by which hardware device the virtual programming interface 38, 48 is generated and where or to which hardware device it is stored.
Furthermore, the method may comprise step e) performed before step c). The step e) comprises receiving, in the virtualization server system 30 or in the virtualization module 36, input data.
Alternatively, the step e) comprises receiving, in the testing server system 40 or in the testing module 46, the input data.
The input data may be any predetermined specification data which may be used for generating the virtual programming interface 38. For example, the developer may provide input data or predetermined specification data which comprises predetermined information of functioning of the virtual programming interface. Thus, the developer may make desired modification to the virtual programming interface 38, 48.
When the step e) is utilized in the present invention and carried out prior to step c), the step c) comprises generating, by the virtualization server system 30 or by the virtualization module 36, or by the testing server system 40 or the testing module 46, the virtual programming interface 38, 48 based on the observed specification information of the programming interface 28 and the input data, the virtual programming interface 38, 48. Alternatively, the virtual programming interface 38, 48 may be generated based on the input data and the functioning data, or the inputs and outputs, of the programming interface 28. Further alternatively, the virtual programming interface 38, 48 may be generated based on the input data and the functioning data, or the inputs and outputs, of the programming interface 28 and observed specification information of the programming interface 28.
In a further embodiment of the invention, the method comprises in step b) receiving, in the virtualization server system 30, source code of a production service 26. The production service having the programming interface 28. The source code of the production service may be available in the production service or production service server and thus it may be utilized in the method. In this case, the method further comprises in step c) generating, by the virtualization server system 30, a virtual programming interface 38, 48 based on the source code of the production service 26. The virtual programming interface 38, 48 comprises a virtualized specification. Generating the virtual programming interface 38, 48 further comprises generating a virtualized specification defining structure and functioning of the virtual programming interface 38, 48.
Figure 8 shows schematically a flow chart integration testing.
The method of the present invention may further comprise a step f) of receiving to the virtual programming interface 38, 48, as shown in 600 of figure 8. The request test call comprises request test data.
In one embodiment, the step f] comprises receiving, in the virtualization server system 30 or the virtualization module 36, a request test call to the virtualized programming interface 38, the request test call comprising request test data.
In another embodiment, the step f) comprises receiving, in the testing server system 40 of the testing module 46, a request test call to the virtualized programming interface 48, the request test call comprising request test data.
The request test call may be a HTTP request test call, or a HTTPS request call or the like request call.
Then, the method comprises a step g) of generating a request test output based on the received request test call by utilizing the virtualized programming interface 38, as shown in 650 of figure 8.
The request test output may be request test response or request test response message.
For example, the request test output of the HTTP request test call may be request test response message an Extensible Markup Language (XML) or JavaScript Object Notation (JSON) format
Accordingly, the in the method of the present invention, the request test output may be utilized to define if the developed application or software operates correctly with the virtual programing interface. The request test call comprises request call information or data and this request call information or data is processed by the virtual programming interface 38, 48 and the request test output is generated by the virtual programming interface 38, 48 based on the request test call and the request test information or data.
In one embodiment, the step g) comprises generating, in the virtualization server system 30 or in the virtualization module 36, the request test output based on the received request test call by utilizing the virtualized programming interface 38.
In another embodiment, the step g) comprises generating, in the testing server system 40 or in the testing module 46, a request test output based on the received request test call by utilizing the virtualized programming interface 48.
Accordingly, in step g) the virtual programming interface 38, 48 generates the request test output to the request test call by utilizing the information or data of the request test call, the request test call information or data.
Figure 9 shows the steps f] and g) schematically in relation to one embodiment of the system of the present invention.
In step f) the developer performs the request test call A from the user device 10 to the virtual programming interface 48 in the testing server system 40 and the request test call is received in the testing server system 40. The virtual programing interface 48 processes the request test call and generates the request test output B. The request test output B is sent to the client device 10 and the client device 10 receives the request test output B.
Figure 10 shows one aspect of the method of the present invention which may be utilized for providing efficient integration testing, and especially for providing efficient generation of request test output.
In the embodiment figure 10, the step g) comprises providing a request test database 70 accessible to the virtualized programming interface 38 or the testing server system 40, as shown in 700 figure 10. Further, the request test database 70 may be accessible to the testing server system 40 or the testing module 46 thereof, or to the virtualizing server system 30 or the virtualizing module 36. The request test database 70 comprises one or more stored request test calls to the virtualized programming interface 38, 48 and one or more stored request test outputs of the virtualized programming interface 38, 48. Each of the one or more stored request test outputs being associated with a corresponding stored request test call of the one or more stored request test calls.
The step g) of the method further comprises comparing, by the virtualization server system 30 or the virtualization module 36, the received request test call to the one or more stored request test calls in the request test database 70, as shown in 750 of figure 10.
Based on the comparing in 750, if the received test call matches with one of the one or more stored request test calls in the request test database 70, the step c) of generating, by the virtualization server system 30 or the virtualization module 36, the request test output comprises selecting the request test output of the one or more stored request test outputs associated with the matched stored request test call.
Further, based on the comparing in 750, if the received test call does not match with any of the one or more stored request test calls in the request test database 70, the step c) of generating, by the virtualization server system 30 or the virtualization module 36, the request test output comprises generating, by the virtualization server system 30 or the virtualization module 36, a new request test output based on the received request test call by utilizing the virtualized programming interface 38.
Alternatively, the step g) of the method further comprises comparing, by the testing server system 40 or the testing module 46, the received request test call to the one or more stored request test calls in the request test database 70, as shown in 750 of figure 10.
Based on the comparing in 750, if the received test call matches with one of the one or more stored request test calls in the request test database 70, the step c) of generating, by the testing server system 40 or the testing module 46, the request test output comprises selecting the request test output of the one or more stored request test outputs associated with the matched stored request test call.
Further, based on the comparing in 750, if the received test call does not match with any of the one or more stored request test calls in the request test database 70, the step c) of generating, by the testing server system 40 or the testing module 46, the request test output comprises generating, by the testing server system 40 or the testing module 46, a new request test output based on the received request test call by utilizing the virtualized programming interface 48.
Accordingly, the received new request test call is first compared to previous the request test calls stored on the request test database 70. If the new request test call matches with one previous request test calls the request test output corresponding the matched previous request test call is selected as the request test output for the new request test call. If the new request test call does not match with any of the previous request test calls, a new request test output is generated as disclosed above in relation to step c) in figures 6 and 7. In the latter case, the new request test call and the new request test output may be further stored to the request test database 70 to be used as mentioned 700 and 750 of figure 10.
As mentioned, the request test database 70 may be provided as an external database accessible to the virtualization server system 30, the testing server system 40 and/or the client device 10. Alternatively, the request database 70 may be provided as an internal database to the virtualization server system 30 and accessible to accessible to the testing server system 40 and/or the client device 10. Further alternatively, the request database 70 may be provided as an internal database to the testing server system 40 and accessible to accessible to the virtualization server system 30 and/or the client device 10.
The invention has been described above with reference to the examples shown in the figures. However, the invention is in no way restricted to the above examples but may vary within the scope of the claims.

Claims

1. A method for integration testing by a testing system generating a request test output, c h a r a c t e r i z e d in that the method comprises:
a) observing, by a virtualization server system (30), a programming interface (28);
b) acquiring, by the virtualization server system (30), observed information of the programming interface (28) based on the observing of the programming interface (28); and
c) generating, by the virtualization server system (30), a virtual programming interface (38, 48) based on the observed information of the programming interface (28), generating the virtual programming interface (38, 48) comprises generating a virtualized specification defining structure and functioning of the virtual programming interface (38, 48).
2. A method according to claim 1, c h a r a c t e r i z e d in that the step a) comprises:
- scraping, by the virtualization server system (30), specification documentation of the programming interface (28) from the programming interface (28); or
- searching, by the virtualization server system (30), specification documentation of the programming interface (28) from the programming interface (28); o r
- scraping and searching, by the virtualization server system (30), specification documentation of the programming interface (28) from the programming interface (28).
3. A method according to claim 2, c h a r a c t e r i z e d in that the step b) comprises:
- receiving, in the virtualization server system (30), the specification documentation of the programming interface (28) from the programming interface (28); or
- reading, by the virtualization server system (30), the scraped or searched specification documentation of the programming interface (28) from the programming interface (28); and
- receiving, in the virtualization server system (30), the specification documentation of the programming interface (28) from the programming interface (28).
4. A method according to claim 2 or 3, c h a r a c t e r i z e d in that the step c) comprises:
- generating, by the virtualization server system (30), the virtual programming interface (38, 48) based on the specification documentation of the programming interface (28).
5. A method according to any one of claims 1 to 4, c h a r a c t e r i z e d in that the step a) comprises:
- monitoring, by the virtualization server system (30), functioning of the programming interface (28); or
- monitoring, by the virtualization server system (30), functioning of the programming interface (28) by monitoring inputs to the programming interface (28) and outputs from the programming interface (28).
6. A method according to claim 5, c h a r a c t e r i z e d in that the step b) comprises:
- receiving, in the virtualization server system (30), monitored functioning data of monitoring the functioning of the programming interface (28); or
- recording, by the virtualization server system (30), the monitored functioning of the programming interface (28) as recorded functioning data; or
- recording, by the virtualization server system (30), the monitored functioning of the programming interface (28) as recorded functioning data; and
- receiving, in the virtualization server system (30), the recorded functioning of the programming interface (28); or
- recording, by the virtualization server system (30), the monitored inputs to the programming interface (28) and outputs from the programming interface (28); or
- recording, by the virtualization server system (30), the monitored inputs to the programming interface (28) and outputs from the programming interface (28) as recorded functioning data; and
- receiving, in the virtualization server system (30), the recorded functioning data of the programming interface (28). 7. A method according to claim 5 or 6, characterized in that the step c) comprises:
- generating, by the virtualization server system (30), the virtual programming interface (38, 48) based on the monitored functioning data of the programming interface (28); or
- generating, by the virtualization server system (30), the virtual programming interface (38, 48) based on the recorded inputs and outputs of the programming interface (28); or
- generating, by the virtualization server system (30), the virtual programming interface (38, 48) based on the monitored functioning data of the programming interface (28) and based on the specification documentation of the programming interface (28); or
- generating, by the virtualization server system (30), the virtual programming interface (38, 48) based on the recorded inputs and outputs of the programming interface (28) and based on the specification documentation of the programming interface (28).
8. A method according to any one of claims 1 to 7, characterized in that the step a) comprises monitoring, by the virtualization server system (30), reading of specification documentation of the programming interface (28) by a third-party server system.
9. A method according to claim 8, characterized in that the step b) comprises:
- receiving, in the virtualization server system (30), monitored specification documentation of the programming interface (28) as monitored specification documentation data; or
- recording, by the virtualization server system (30), the reading of the specification documentation of the programing interface (28) as recorded specification documentation data; and
- receiving, in the virtualization server system (30), the recorded specification documentation data of the programming interface (28).
10. A method according to claim 8 or 9, characterized in that the step c) comprises:
- generating, by the virtualization server system (30), the virtual programming interface (38, 48) based on the monitored specification documentation data of the programming interface (28); or
- generating, by the virtualization server system (30), the virtual programming interface (38, 48) based on the recorded specification documentation data of the programming interface (28); or
- generating, by the virtualization server system (30), the virtual programming interface (38, 48) based on the monitored specification documentation data of the programming interface (28) and based on the specification documentation of the programming interface (28); or
- generating, by the virtualization server system (30), the virtual programming interface (38, 48) based on the recorded specification documentation data of the programming interface (28) and based on the specification documentation of the programming interface (28).
11. A method according to claim 1, c h a r a c t e r i z e d in that:
- the step b) comprises receiving, in the virtualization server system (30), source code of a production service (26), the production service having the programming interface (28); and
- the step c) comprises generating, by the virtualization server system (30), a virtual programming interface (38, 48) based on the source code of the production service (26), the virtual programming interface (38, 48) having a virtualized specification, generating the virtual programming interface (38, 48) comprises generating a virtualized specification defining structure and functioning of the virtual programming interface (38, 48).
12. A method according to any one of claims 1 to 11, c h a r a c t e r i z e d in that the method comprises step d) of storing the virtual programming interface (38, 48), the step d) comprising:
- storing, in the virtualization server system (30), the virtual programming interface (38); or
- receiving, in a testing server system (40), the virtual programming interface (48); and
- storing, in the testing server system (40), the virtual programming interface (48).
13. A method according to any one of claims 1 to 12, characterized in that:
- the method comprises step e) performed before step c), the step e) comprising receiving, in the virtualization server system (30), input data; and
- the step c) comprises generating, by the virtualization server system (30), the virtual programming interface (38, 48) based on the observed information of the programming interface (28) and the input data, the virtual programming interface (38, 48) having the virtualized specification.
14. A method according to any one of claims 1 to 13, characterized in that the method comprises a step f), the step f) comprising:
- receiving, in the virtualization server system (30), a request test call to the virtualized programming interface (38), the request test call comprising request test data; or
- receiving, in the testing server system (40), a request test call to the virtualized programming interface (48), the request test call comprising request test data.
15. A method according to claim 14, characterized in that the request test call is a HTTP request test call or HTTPS request call.
16 A method according to claim 14 or 15, c h a r a c t e r i z e d in that the method comprises a step g), the step g) comprising:
- generating, in the virtualization server system (30), a request test output based on the received request test call by utilizing the virtualized programming interface (38); or
- generating, in the testing server system (40), a request test output based on the received request test call by utilizing the virtualized programming interface (48).
17. A method according to claim 16, characterized in that the step g) comprises:
- providing a request test database (70) accessible to the virtualized programming interface (38), the request test database (70) comprising one or more stored request test calls to the virtualized programming interface (38) and one or more stored request test outputs of the virtualized programming interface (38), each of the one or more stored request test outputs being associated with a corresponding stored request test call of the one or more stored request test calls;
- comparing, by the virtualization server system (30), the received request test call to the one or more stored request test calls in the request test database (70); and
if the received test call matches with one of the one or more stored request test calls in the request test database (70), the step c) of generating, by the virtualization server system (30), the request test output comprises selecting the request test output of the one or more stored request test outputs associated with the matched stored request test call, or
if the received test call does not match with any of the one or more stored request test calls in the request test database (70), the step c) of generating, by the virtualization server system (30), the request test output comprises generating, by the virtualization server system (30), a new request test output based on the received request test call by utilizing the virtualized programming interface (38); or
- providing a request test database accessible to the virtualized programming interface (48), the request test database (70) comprising one or more stored request test calls to the virtualized programming interface (48) and one or more stored request test outputs of the virtualized programming interface (48), each of the one or more stored request test outputs being associated with a corresponding stored request test call of the one or more stored request test calls;
- comparing, by the testing server system (40), the received request test call to the one or more stored request test calls in the request test database (70); and
if the received test call matches with one of the one or more stored request test calls in the request test database, the step c) of generating, by the testing server system (40), the request test output comprises selecting the request test output of the one or more stored request test outputs associated with the matched stored request test call, or
if the received test call does not match with any of the one or more stored request test calls in the request test database (70), the step c) of generating, by the testing server system (40), the request test output comprises generating, by the testing server system (40), a new request test output based on the received request test call by utilizing the virtualized programming interface (48). 18. A method according to any one of claims 1 to 17, c h a r a c t e r i z e d in that the method comprises a step h), the step h) comprising:
- intercepting, by the virtualization server system (30), a request test call from a client device (10) to the programming interface (28) and redirecting the request test call to the virtualized programming interface (38) in the virtualization server system (30); or
- intercepting, by the testing server system (40), a request test call from a client device (10) to the programming interface (28) and redirecting the request test call to the virtualized programming interface (48) in the testing server system (40).
19. An integration testing system for providing integration testing output by processing a request test call, c h a r a c t e r i z e d in that the diagnosis system comprising:
- a virtualization server system (30);
- a testing server system (40);
- a communications network (100);
- a virtual programming interface (48) in the testing server system, the virtual programming interface (48) comprising a virtualized specification defining structure and functioning of the virtual programming interface; and
- a request test database (70) accessible to the testing server system
(40),
wherein the system is configured to perform a method according to any one of claims 1 to 18.
20. A non-transitory computer readable media having stored thereon instructions that, when executed by a computing device, cause the computing device to perform a method according to the any one of claims 1 to 18.
PCT/FI2020/050382 2019-06-04 2020-06-02 Method and system for integration testing WO2020245504A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FI20195472 2019-06-04
FI20195472A FI20195472A1 (en) 2019-06-04 2019-06-04 Method and system for integration testing

Publications (1)

Publication Number Publication Date
WO2020245504A1 true WO2020245504A1 (en) 2020-12-10

Family

ID=73652114

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/FI2020/050382 WO2020245504A1 (en) 2019-06-04 2020-06-02 Method and system for integration testing

Country Status (2)

Country Link
FI (1) FI20195472A1 (en)
WO (1) WO2020245504A1 (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112783551A (en) * 2021-01-21 2021-05-11 中信银行股份有限公司 Interface document generation method of micro-service framework, electronic equipment and storage medium
CN114640614A (en) * 2022-04-24 2022-06-17 中国工商银行股份有限公司 RPC interface automatic test method, system, electronic equipment, medium and product
CN115292200A (en) * 2022-09-28 2022-11-04 北京六方云信息技术有限公司 Interface test method, device, equipment and medium

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9959198B1 (en) * 2016-05-26 2018-05-01 Google Llc Simulated testing of API

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9959198B1 (en) * 2016-05-26 2018-05-01 Google Llc Simulated testing of API

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
SOHAN S M; ANSLOW CRAIG; MAURER FRANK: "SpyREST: Automated RESTful API Documentation Using an HTTP Proxy Server (N)", PROCEEDINGS OF THE IEEE INTERNATIONAL CONFERENCE ON AUTOMATED SOFTWARE ENGINEERING (ASE), 9 November 2015 (2015-11-09), pages 271 - 276, XP032846371, DOI: 10.1109/ASE.2015.52 *

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112783551A (en) * 2021-01-21 2021-05-11 中信银行股份有限公司 Interface document generation method of micro-service framework, electronic equipment and storage medium
CN114640614A (en) * 2022-04-24 2022-06-17 中国工商银行股份有限公司 RPC interface automatic test method, system, electronic equipment, medium and product
CN114640614B (en) * 2022-04-24 2024-02-02 中国工商银行股份有限公司 RPC interface automatic test method, system, electronic equipment, medium and product
CN115292200A (en) * 2022-09-28 2022-11-04 北京六方云信息技术有限公司 Interface test method, device, equipment and medium

Also Published As

Publication number Publication date
FI20195472A1 (en) 2020-12-05

Similar Documents

Publication Publication Date Title
WO2020245504A1 (en) Method and system for integration testing
US10158549B2 (en) Real-time monitoring of computer system processor and transaction performance during an ongoing performance test
CN113190464B (en) mock testing method and device, electronic equipment and medium
CN110209569B (en) Interface test method, interface test device and storage medium
CN105302706B (en) Applied program testing method and device
US10705946B2 (en) Techniques for real time server testing in a production environment
EP1692614A2 (en) A method of rapid software application development for a wireless mobile device
US10498811B2 (en) Automatic validation of mobile applications on synchronized mobile devices
CN113268243B (en) Memory prediction method and device, storage medium and electronic equipment
US20200374290A1 (en) Creation device, creation system, creation method, and creation program
US11196728B1 (en) Caching login sessions to access a software testing environment
CN109213498A (en) A kind of configuration method and server of internet web front-end
CN108111369A (en) The test method and device of a kind of webpage performance of mobile terminal
CN113127361B (en) Application development method and device, electronic equipment and storage medium
Akour et al. Mobile software testing: Thoughts, strategies, challenges, and experimental study
US20180275957A1 (en) Assistive technology for code generation using voice and virtual reality
JP7409197B2 (en) Elaboration of repair patterns for static analysis violations in software programs
CN107644075A (en) The method and apparatus for collecting page info
CN110188043A (en) A kind of method and control equipment of the test of control multiple devices
CN107368407B (en) Information processing method and device
US10025697B2 (en) Generation of automated unit tests for a controller layer system and method
CN111352836A (en) Pressure testing method and related device
CN107220258A (en) For method, device and the terminal of the data for capturing five application page
Malini et al. Mobile application testing on smart devices using MTAAS framework in cloud
CN107305528B (en) Application testing method and device

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 20818372

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 20818372

Country of ref document: EP

Kind code of ref document: A1