Wiki source code of Testing in eMagiz

Version 20.1 by Bouke Reitsma on 2023/07/05 11:17

Hide last authors
Bouke Reitsma 3.1 1 {{container}}{{container layoutStyle="columns"}}(((
Bouke Reitsma 4.1 2 In this fundamental we discuss different testing methods available in software development and discuss how these methods can be used and/or implanted within the platform. Testing in eMagiz can already be done within the Create phase and within deployed integrations via the Deploy and Manage phases. After reading this fundamental you should be able to understand the concepts of different testing methods and how these are incorporated within the eMagiz platform.
Bouke Reitsma 1.1 3
Bouke Reitsma 5.1 4 Should you have any questions, please get in touch with [[academy@emagiz.com>>mailto:academy@emagiz.com]].
Bouke Reitsma 1.1 5
Bouke Reitsma 3.1 6 == 1. Prerequisites ==
Bouke Reitsma 1.1 7
Bouke Reitsma 6.1 8 * Basic Knowledge of the eMagiz Platform
Bouke Reitsma 1.1 9
Bouke Reitsma 3.1 10 == 2. Key concepts ==
Bouke Reitsma 1.1 11
Bouke Reitsma 6.1 12 * Unit Testing
13 * Regression testing
14 * Performance Testing
15 * End-To-End Testing
Bouke Reitsma 1.1 16
Bouke Reitsma 6.1 17 == 3. Testing in eMagiz ==
Bouke Reitsma 7.1 18
Bouke Reitsma 6.1 19 This fundamental will zoom in on the testing functionality incorperated within the eMagiz portal. We will focus on different aspects of testing which can be executed at different moments within the development in your integrations. We cover four different types of testing which are part of software testing in general and explain them on a conceptual level. For each test we also discuss how those are integrated within the portal and where to find further explanation on applying those test within eMagiz.
Bouke Reitsma 1.1 20
Bouke Reitsma 7.1 21 === 3.1 Unit Testing ===
Bouke Reitsma 1.1 22
Bouke Reitsma 7.1 23 Unit testing is a common practice within software platforms. Usually, unit tests are performed by developers during development. It entails testing individual integrations or the components within an integration, such as transformations or mappings. The unit test aims to test early within the development process to identify and fix issues early before they become more difficult and costly to find and solve.
Bouke Reitsma 1.1 24
Bouke Reitsma 7.1 25 Within eMagiz, we have a dedicated unit testing functionality called "flow testing." One of the key benefits of flow testing is that your integration does not have to be deployed. Therefore, findings can be easily implemented during development. eMagiz supports certain components' live testing to test communication with external systems. More information on flow tests can be found in the following microlearnings:
Bouke Reitsma 1.1 26
Bouke Reitsma 10.1 27 * [[Crash Course Platfrom>>doc:Main.eMagiz Academy.Microlearnings.Crash Course.Crash Course Platform.WebHome||target="blank"]]
28 * [[Testing API Gateway>>doc:Main.eMagiz Academy.Microlearnings.Intermediate Level.Testing API Gateway.intermediate-testing-emagiz-api-gateway-testing-api-gateway||target="blank"]]
Bouke Reitsma 1.1 29
Bouke Reitsma 11.1 30 === 3.2 Regression Testing ===
Bouke Reitsma 1.1 31
Bouke Reitsma 11.1 32 Another testing method used within software development is regression testing. Regression tests ensure that existing functionality is not impacted by newly developed functionality. Running these tests is crucial to preventing unexpected negative changes for customers. Regression tests can be applied on different levels, from individual functionality to the whole platform.
Bouke Reitsma 1.1 33
Bouke Reitsma 11.1 34 The main functionality within the eMagiz platform to perform regression testing on your integrations is called "Automated flow testing." For every flow test, there is the option to automate them. When a flow test is automated, it will run all automated flow tests once a new version is committed. If the test fails, you will be notified on the flow-level and get a result overview on release activation. More information can be found in the microlearning:
Bouke Reitsma 1.1 35
Bouke Reitsma 13.1 36 * [[Regression Testing>>doc:Main.eMagiz Academy.Microlearnings.Intermediate Level.Testing in eMagiz.intermediate-testing-in-emagiz-regression-testing.WebHome||target="blank"]]
Bouke Reitsma 1.1 37
Bouke Reitsma 18.1 38 === 3.3 Performance Testing ===
Bouke Reitsma 1.1 39
Bouke Reitsma 11.1 40 A third method for testing is the performance test. Within a performance test, not the content is important but the amount of load you test on your test subject. In the case of integrations, it means, in general, the number of messages sent over a certain integration. Normally your production environment handles more load than a test or acceptance environment. With a performance test, you can estimate how much impact a new integration has on resources, such as CPU or memory usage of the runtimes within your environment. More information on how to configure the solution architecture of your model can be found in this microlearning:
Bouke Reitsma 1.1 41
Bouke Reitsma 14.1 42 * [[Intermediate Solution Architecture>>doc:Main.eMagiz Academy.Microlearnings.Intermediate Level.Solution Architecture.WebHome||target="blank"]]
Bouke Reitsma 15.1 43 * [[Advanced Solution Architecture>>doc:Main.eMagiz Academy.Microlearnings.Advanced Level.Solution Architecture.WebHome||target="blank"]]
Bouke Reitsma 1.1 44
Bouke Reitsma 19.1 45 {{warning}} Performance testing on the eMagiz portal or documentation portal is NOT allowed. {{/warning}}
Bouke Reitsma 16.1 46
Bouke Reitsma 18.1 47 === 3.4 End-To-End Testing ===
48
49 The last testing option discussed in this fundamental is a user acceptance test or End-to-End test. In this test, not only developers or testers are involved, but also end-users or other people from the business side. Therefore this testing method is more functionally focused than the previously discussed tests. A User Acceptance test aims to let the business (users) accept the solution created. Normally, this is the last step before pushing the solution to production.
50
51 All the previously mentioned eMagiz functionality helps you complete an End-to-End test or to solve issues found within the test effectively. More information on this testing method can be found in the microlearning:
52
Bouke Reitsma 20.1 53 * [[User Acceptance Testing>>doc:Main.eMagiz Academy.Microlearnings.Intermediate Level.Testing in eMagiz.intermediate-testing-in-emagiz-user-acceptance-testing||target="blank"]]
Bouke Reitsma 18.1 54
Bouke Reitsma 3.1 55 == 4. Key takeaways ==
Bouke Reitsma 1.1 56
Bouke Reitsma 3.1 57 * Each eMagiz model has a standard Manage phase in which statistics are kept on your environment
58 * With these statistics, you can determine whether messages have been received by and sent by eMagiz
59 * This functionality does not allow you to see the content of the messages itself
60 * On top of that, eMagiz offers Data Sink and long term Archiving as additional licensed features
61 * Data sink is helpful for an Ops scenario to check whether a specific message is processed by eMagiz (Traceability)
62 * Long term archiving is helpful for legal purposes as it gives you the option to prove for seven years that a specific message is sent at a specific time (Compliancy)
Bouke Reitsma 1.1 63
Bouke Reitsma 3.1 64 == 5. Suggested Additional Readings ==
Bouke Reitsma 1.1 65
66 If you are interested in this topic and want to learn how you can control your Cloud with the help of the eMagiz platform, please check out our microlearnings offering on eMagiz Cloud Management:
67
Bouke Reitsma 3.1 68 * [[Crashcourse Messaging>>doc:Main.eMagiz Academy.Microlearnings.Crash Course.Crash Course Messaging.crashcourse-messaging-interpreting-queue-statistics||target="blank"]]
69 * [[Data sink>>doc:Main.eMagiz Academy.Microlearnings.Advanced Level.Data Management.advanced-data-management-data-sink||target="blank"]]
70 * [[Long term archiving>>doc:Main.eMagiz Academy.Microlearnings.Advanced Level.Data Management.advanced-data-management-long-term-archiving||target="blank"]]
Bouke Reitsma 1.1 71
Bouke Reitsma 3.1 72 )))((({{toc/}}))){{/container}}{{/container}}