Methods and Tools for the System of Compatibility Checking of Individual Components of Web-servers

2024;
: pp. 112 - 120
Authors:
1
Lviv Polytechnic National University, Department of Information Systems and Networks

This article examines the current state of issues in working with APIs of various systems. The most common methodologies (Agile and DevOps), methods, and tools for building automated pipelines for project assembly and testing were analyzed, and a general pipeline structure was presented, which serves as a starting point for project development. As a result of analyzing surveys of developers and DevOps engineers, key problems in integration between different systems using APIs were identified.
The paper describes the complete process of executing tests, which includes the initialization of the testing step, pipeline construction options, exception handling, and result storage. The interaction of various stakeholders is presented. These processes are illustrated with sequence, use case, and activity diagrams. Pseudocode of an algorithm is provided, which describes the use of fuzzy logic inference for generating recommendations based on testing. An extended contract for contract testing was developed, which includes request-response pairs, field value range constraints, and predicates to ensure the logical compatibility of components. The use of this contract allows not only to verify the compatibility of API components of web servers but also to define rules for logical consistency between objects. The implementation of an ontological approach for testing creates an additional layer of tests that check the correspondence between the entities of the consumer system and the ontology of the provider system. The introduction of field value range and type checks during test execution will provide the developer with comprehensive information about potential issues when two systems interact. Since the ontology must be continuously maintained by domain experts, the use of extended contract tests will reduce the likelihood of errors due to insufficient communication caused by changes in the concepts within the provider system’s business structure. The developed method involves the use of fuzzy logic for decision- making based on fuzzy assessments of the compatibility of two components

  1. (2024, May 29). DevOps Market Statistics – Key Figures and Trends in 2024. TechReport. https://techreport.com/statistics/software-web/devops-market-statistics-...
  2. (n.d.). 2023 State of the API Report. Postman. https://www.postman.com/state-of-api/api-global- growth/#api-global-growth
  3. (n.d.). How Do Agile and DevOps Interrelate? Instatus. https://instatus.com/blog/agile-devops
  4. Sharma, S., Sarkar, D., & Gupta, D. (2012). Agile  Processes  and  Methodologies:  A  Conceptual Study. International Journal on Computer Science and Engineering 4(5).
  5. MAAYAN, G. D. (2023, December 15). The Future of Jenkins in 2024. DevOps.com. https://devops.com/the-future-of-jenkins-in-2024/
  6. (n.d.). Pipeline. Jenkins. https://www.jenkins.io/doc/book/pipeline/7.
  7. (2024,       April       19). How       to       Make        a      CI-CD       Pipeline in Jenkins? GeeksforGeeks.https://www.geeksforgeeks.org/how-to-make-a-ci-cd-pipeline-in-jenkins/
  8. Sotomayor, J., Allala, S., Santiago, D., & King, T. (2022). Comparison of open-source runtime testing tools for microservices. Software Quality Journal, 31(1), 1–33. https://doi.org/10.1007/s11219-022-09583-4
  9. Zheldak, T. A., & Koryashkina, L. S. (2020). Fuzzy sets in control and decision-making systems. NTU “Dnipro Polytechnic”.
  10. Cingolani, P., & Alcal, J. (2013). jFuzzyLogic: A Java library to design fuzzy logic controllers according to the standard for fuzzy control programming. International Journal of Computational Intelligence Systems.
  11. Gillis, A. S. (2023, March). API testing. TechTarget. https://www.techtarget.com/searchapparchitecture/ definition/API-testing
  12. Braakman,      W.        (2023,        March         30). Introduction       to       Contract          Testing.       Medium. https://www.techtarget.com/searchapparchitecture/definition/API-testing
  13. (n.d.). Writing consumer tests. GitLab. https://docs.gitlab.com/ee/development/testing_guide/contract/ consumer_tests.html
  14. (n.d.). Reasoner Preferences. Protégé 5 Documentation. https://protegeproject.github.io/protege/ preferences/reasoner/
  15. World Wide Web Consortium (2017, July 20). Shapes Constraint Language (SHACL). W3C. https://www.w3.org/TR/shacl/
  16. Tartir, S., Arpinar, I. B., Moore, M., Sheth, A. P., & Aleman-Meza, B. (2005). OntoQA: Metric-Based Ontology Quality Analysis. IEEE ICDM 2005 Workshop on Knowledge Acquisition from Distributed, Autonomous, Semantically Heterogeneous Data and Knowledge Sources. https://www.researchgate.net/publication/ 266795541_OntoQA_Metric-Based_Ontology_Quality_Analysis
  17. Tartir, S. (2020, May 7). OntoQA. GitHub. https://github.com/Samir-Tartir/OntoQA