Skip to main content
Log in

Testing adaptation policies for software components

  • Published:
Software Quality Journal Aims and scope Submit manuscript

Abstract

Self-adaptive systems have to implement adaptation policies described by sets of rules that express how the components are reconfigured within the system, the priority of a given reconfiguration to happen, when a given (sequence of) event(s) occurs, and when specific conditions on the system state are satisfied. However, when this priority is given by a fuzzy value (e.g., high, medium, low) depending on external and internal events, it has to be implemented inside the software with particular implementation choices made. This paper is dedicated to the validation of adaptation policies, using a model-based testing approach and a verdict establishment that is based on both the runtime verification of temporal properties, and the detection of inconsistencies between the adaptation policy and the reconfigurations implemented in the self-adaptive system. We propose means to establish a test verdict based on the respect of the adaptation policy by the implementation, along with coverage measures of the rules. This provides interesting feedback on the adaptation policy rules, allowing to detect reconfigurations that should not have occurred, high-priority reconfigurations that are never triggered, or low-priority reconfigurations that are too frequently executed, potential inconsistencies in the rules, or wrong interpretation of priorities. The test verdict is made based on the analysis of the execution traces of the system, which is stimulated using a usage model that describes the probabilities of external events to occur. An experiment, performed on a vehicular ad-hoc network of autonomous vehicles, illustrates the interest of the approach.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Fig. 1
Fig. 2
Fig. 3
Fig. 4
Fig. 5
Fig. 6
Fig. 7
Fig. 8
Fig. 9
Fig. 10
Fig. 11

Similar content being viewed by others

Notes

  1. Notably \(\mathbb {B}_{4} = \{ \top , \top ^{p}, \bot ^{p}, \bot \}\) and \(\mathbb {B}_{2} = \{ \top , \bot \}\) where ⊤ (resp. ⊥) stands for true (resp. false) and ⊤p (resp. ⊥p) stands for potentially true (resp. potentially false).

  2. FTPL stands for TPL (temporal pattern language) prefixed by “F” to denote its relation to fractal-like components and to first-order consistency constraints over them.

  3. As in Chauvel et al. (2008); Dormoy and Kouchnarenko (2010), fuzzy values (e.g., in {, ,}) are used to express this need.

  4. We assume that if an event does not label an outgoing transition of the current state, its probability is 0.

References

  • Baille, G., Garnier, P., Mathieu, H., Pissard-Gibollet, R. (1999). Le cycab de l’INRIA Rhône-Alpes. Rapport technique RT-0229, INRIA.

  • Basu, A., Bozga, M., Sifakis, J. (2006). Modeling heterogeneous real-time components in BIP. In Proc. of the fourth IEEE int. conf. on software engineering and formal methods, SEFM ’06, pages 3–12, Washington, DC, USA: IEEE Computer Society.

  • Beizer, B. (1995). Black-box testing: techniques for functional testing of software and systems. New York: Wiley.

    Google Scholar 

  • Binder, R.V., Legeard, B., Kramer, A. (2014). Model-based testing: where does it stand? ACM Queue, 13(1), 40–48.

    Article  Google Scholar 

  • Bruneton, E., Coupaye, T., Leclercq, M., Quéma, V., Stefani, J.-B. (2006). The Fractal component model and its support in java: experiences with auto-adaptive and reconfigurable systems. Software: Practice and Experience, 36(11-12), 1257–1284.

    Google Scholar 

  • Chauvel, F., Barais, O., Plouzeau, N., Borne, I., Jézéquel, J.-M. (2008). Expression qualitative de politiques d’adaptation pour Fractal. In Aït Ameur, Y. (Ed.) 2ème Conf. sur les Architectures Logicielles (CAL 2008), 3-7 Mars 2008, Montréal, Québec, Canada, volume RNTI-l-2 of Revue des Nouvelles Technologies de l’Information, page 119. Cepaduès Editions.

  • Chockler, H., Kupferman, O., Vardi, M.Y. (2006). Coverage metrics for temporal logic model checking. Formal Methods in System Design, 28(3), 189–212.

    Article  MATH  Google Scholar 

  • Dadeau, F., Cabrera Castillos, K., Julliand, J. (2014). Coverage criteria for model-based testing using property patterns. In Petrenko, A.K., & Schlingloff, H. (Eds.) MBT 2014, 9th workshop on model-based testing, join to ETAPS 2014, volume 141 of EPTCS, pages 29–43, Grenoble, France.

  • De Lemos, R., Giese, H., Müller, H.A., Shaw, M., Andersson, J., Litoiu, M., Schmerl, B., Tamura, G., Villegas, N.M., Vogel, T., et al. (2013). Software engineering for self-adaptive systems: a second research roadmap. In Software engineering for self-adaptive systems II (pp. 1–32): Springer.

  • Dormoy, J., & Kouchnarenko, O. (2010). Event-based adaptation policies for Fractal components. In AICCSA ACS/IEEE int. conf. on computer systems and applications. Hammamet, Tunisia, May 2010 (pp. 1–8).

  • Dormoy, J., Kouchnarenko, O., Lanoix, A. (2012). Using temporal logic for dynamic reconfigurations of components. In Barbosa, L., & Lumpe, M. (Eds.) FACS, vol. 6921 of LNCS (pp. 200–217). Berlin: Springer.

  • Eberhardinger, B., Seebach, H., Klumpp, D., Reif, W. (2017). Test case selection strategy for self-organization mechanisms. In Winter, M., Spillner, A., Pietschker, A. (Eds.) Test, analyse und verifikation von software – gestern, heute, morgen. Dpunkt Verlag.

  • Eberhardinger, B., Seebach, H., Knapp, A., Reif, W. (2014). Towards testing self-organizing, adaptive systems. In Merayo, M.G., & de Oca, E.M. (Eds.) Testing software and systems (pp. 180–185). Berlin: Springer.

  • Filieri, A., Ghezzi, C., Tamburrelli, G. (2012). A formal approach to adaptive software: continuous assurance of non-functional requirements. Formal Asp. Comput., 24(2), 163–186.

    Article  MathSciNet  MATH  Google Scholar 

  • Filieri, A., Tamburrelli, G., Ghezzi, C. (2016). Supporting self-adaptation via quantitative verification and sensitivity analysis at run time. IEEE Transactions on Software Engineering, 42(1), 75–99.

    Article  Google Scholar 

  • Guériau, M., Dafflon, B., Gechter, F. (2017). VIPS: a simulator for platoon system evaluation. Simulation Modelling Practice and Theory, 77, 157–176.

    Article  Google Scholar 

  • Huebscher, M.C., & McCann, J.A. (2008). A survey of autonomic computing - degrees, models, and applications. ACM Comput. Surv., 40(3), 7:1–7:28.

    Article  Google Scholar 

  • Hutchison, C., Zizyte, M., Lanigan, P.E., Guttendorf, D., Wagner, M.D., Le Goues, C., Koopman, P. (2018). Robustness testing of autonomy software. In Proceedings of the 40th international conference on software engineering: software engineering in practice, ICSE (SEIP) 2018 (pp. 276–285): Gothenburg.

  • Jahier, E., Djoko-Djoko, S., Maiza, C., Lafont, E. (2014). Environment-model based testing of control systems: case studies. In Ábrahám, E., & Havelund, K. (Eds.) Tools and algorithms for the construction and analysis of systems (pp. 636–650). Berlin: Springer.

  • Jia, D., Lu, K., Wang, J., Zhang, X., Shen, X. (2016). A survey on platoon-based vehicular cyber-physical systems. IEEE Communications Surveys Tutorials, 18(1), 263–284.

    Article  Google Scholar 

  • Kim, M., Lee, I., Shin, J., Sokolsky, O., et al. (2002). Monitoring, checking, and steering of real-time systems. ENTCS, 70(4), 95–111.

    Google Scholar 

  • Kouchnarenko, O., & Weber, J.-F. (2014). Adapting component-based systems at runtime via policies with temporal patterns. In Fiadeiro, J.L., Liu, Z., Xue, J. (Eds.) FACS, 10th int. symp. on formal aspects of component software, vol. 8348 of LNCS (pp. 234–253): Springer.

  • Kouchnarenko, O., & Weber, J.-F. (2015). Decentralised evaluation of temporal patterns over component-based systems at runtime. In Lanese, I., & Madelaine, E. (Eds.) Formal aspects of component software, vol. 8997 of LNCS (pp. 108–126). Bertinoro: Springer.

  • Kouchnarenko, O., & Weber, J.-F. (2015). Practical analysis framework for component systems with dynamic reconfigurations. In Butler, M., Conchon, S., Zaïdi, F. (Eds.) ICFEM’15, 17th int. conf. on formal engineering methods, (Vol. 9407 pp. 287–303): Springer.

  • Utting, M. (2011). How to design extended finite state machine test models in Java. In Model-based testing for embedded systems, series on computational analysis, synthesis, and design of dynamic systems (pp. 147–170): CRC Press.

  • Mayeda, M. (2019). Evaluating software testing techniques: a systematic mapping study. PhD thesis, University of Denver, Colorado.

  • Poladian, V., Garlan, D., Shaw, M., Satyanarayanan, M., Schmerl, B.R., Pedro Sousa, J. (2007). Leveraging resource prediction for anticipatory dynamic configuration. In Proceedings of the first international conference on self-adaptive and self-organizing systems, SASO 2007, Boston, MA, USA, July 9-11, 2007 (pp. 214–223).

  • Rajkumar, R., Lee, I., Sha, L., Stankovic, J.A. (2010). Cyber-physical systems: the next computing revolution. In Proceedings of the 47th design automation conference, DAC 2010, Anaheim, California, USA, July 13-18, 2010 (pp. 731–736).

  • Schneider, M, Grossmann, J., Tcholtchev, N., Schieferdecker, I., Pietschker, A. (2013). Behavioral fuzzing operators for UML sequence diagrams. In Proceedings of the 7th international conference on system analysis and modeling: theory and practice, SAM’12 (pp. 88–104). Berlin: Springer.

  • Sinclair, A. (1993). Algorithms for random generation and counting: a Markov chain approach. Birkhauser Verlag, Basel, Switzerland.

  • Sotiropoulos, T., Waeselynck, H., Guiochet, J., Ingrand, F. (2017). Can robot navigation bugs be found in simulation? an exploratory study. In 2017 IEEE international conference on software quality, reliability and security, QRS 2017, Prague, Czech Republic, July 25-29, 2017 (pp. 150–159).

  • Steinbauer, G., & Wotawa, F. (2013). Model-based reasoning for self-adaptive systems - theory and practice. In Cámara, J., de Lemos, R., Ghezzi, C., Lopes, A. (Eds.) Assurances for self-adaptive systems - principles, models, and techniques, volume 7740 of Lecture Notes in Computer Science, pp 187–213. Springer.

  • Szyperski, C. (1995). Component software: beyond object-oriented programming. 1998. Harlow, England, Addison-Wesley.

  • Taha, S., Julliand, J., Dadeau, F., Cabrera Castillos, K., Kanso, B. (2015). A compositional automata-based semantics and preserving transformation rules for testing property patterns. Formal Aspects of Computing, 27(4), 641–664.

    Article  MathSciNet  MATH  Google Scholar 

  • Takanen, A., DeMott, J., Miller, C. (2008). Fuzzing for software security testing and quality assurance. Artech House, Inc., Norwood, MA, USA 1 edition.

  • Utting, M., & Legeard, B. (2006). Practical model-based testing - a tools approach, (p. 550). Amsterdam: Elsevier. ISBN 0-12-372501-1.

    Google Scholar 

  • Villegas, N.M., Müller, H.A., Tamura, G., Duchien, L., Casallas, R. (2011). A framework for evaluating quality-driven self-adaptive software systems. In 2011 ICSE symposium on software engineering for adaptive and self-managing systems, SEAMS 2011, Waikiki, Honolulu, HI, USA, May 23-24, 2011 (pp. 80–89).

  • Weber, J.-F. (2016). Tool support for fuzz testing of component-based system adaptation policies. In 13th international conference on formal aspects of component software, volume 10231 of LNCS (pp. 231–237).

  • Whittaker, J.A., & Thomason, M.G. (1994). A Markov chain model for statistical software testing. IEEE Transactions on Software Engineering, 20(10), 812–824.

    Article  Google Scholar 

  • Wotawa, F. (2016). Testing self-adaptive systems using fault injection and combinatorial testing. In 2016 IEEE international conference on software quality, reliability and security, QRS 2016, Companion, Vienna, Austria, August 1-3, 2016 (pp. 305–310): IEEE.

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Frédéric Dadeau.

Additional information

Publisher’s note

Springer Nature remains neutral with regard to jurisdictional claims in published maps and institutional affiliations.

Rights and permissions

Reprints and permissions

About this article

Check for updates. Verify currency and authenticity via CrossMark

Cite this article

Dadeau, F., Gros, JP. & Kouchnarenko, O. Testing adaptation policies for software components. Software Qual J 28, 1347–1378 (2020). https://doi.org/10.1007/s11219-019-09487-w

Download citation

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s11219-019-09487-w

Keywords

Navigation