К вопросу об измерении уровня абстракции диаграмм состояний на основе тестирования мутаций
https://doi.org/10.18255/1818-1015-2017-6-691-703
Аннотация
Система обозначений диаграмм состояний (state machines) широко применяется в качестве формального средства описания поведения систем. Обычно для одной и той же программной системы можно создать много разных диаграмм состояний. Некоторые из этих моделей могут оказаться эквивалентными, но во многих случаях разные диаграммы состояний описывают одну и ту же систему на разных уровнях абстракции. В этой статье мы предлагаем подход, позволяющий провести фактическое измерение уровня абстракции диаграмм состояний по отношению к заданной реализации программной системы. Диаграмма состояний считается тем менее абстрактной, чем ближе она концептуально к реализованной системе. Согласно нашему подходу эта отдаленность диаграммы состояний от реализации системы измеряется путем применения критерия покрытия, используемого для тестирования мутации программного обеспечения. Уровень абстракции диаграмм состояний можно рассматривать как новый вид метрики. Что касается других метрик, то знание значения уровня абстракции заданной диаграммы состояний дает возможность оценить ее качество в числовых терминах. В тех проектах по разработке программного обеспечения, которые начинаются с построения модели, метрика абстракции может помочь избежать деградации моделей, поскольку она позволяет измерить фактическое отдаление спецификации поведения системы, представленной в виде диаграммы состояний, от текущей реализации системы. В отличие от прочих метрик для диаграмм состояний уровень абстракции нельзя вычислить статически, основываясь лишь на структуре самой диаграммы; для этого нужно сравнивать выполнения диаграмм состояний и соответствующую реализацию системы. Статья публикуется в авторской редакции.
Список литературы
1. Martin Abadi and Leslie Lamport, “The existence of refinement mappings”, Theoretical Computer Science, 82 (1991), 253–284.
2. Thomas Baar, “SSMA – Simple State Machine Analyzer”, https://github.com/ thomasbaar/simplesma.
3. Thomas Baar, “Verification Support for a State-Transition-DSL Defined with Xtext”, Proceedings of the 10th International Andrei Ershov Informatics Conference, PSI, Lecture Notes in Computer Science, 9609, Springer, 2015, 50–60.
4. Robert V. Binder, Bruno Legeard, Anne Kramer, “Model-based testing: where does it stand?”, Communications of the ACM, 58 (2015), 52–56.
5. Manfred Broy, Bengt Jonsson, Joost-Pieter Katoen, Martin Leucker, Alexander Pretschner, Model-Based Testing of Reactive Systems, Advanced Lectures, Lecture Notes in Computer Science, 3472, Springer, 2005.
6. Shyam R. Chidamber, Chris F. Kemerer, “A metrics suite for object oriented design”, IEEE Transactions on Software Engineering, 20:6 (1994), 476–493.
7. David Harel, “Statecharts: A visual formalism for complex systems”, Science of Computer Programming, 8:3 (1987), 231–274.
8. David Harel, Hagi Lachover, Amnon Naamad, Amir Pnueli, Michal Politi, Rivi Sherman, Aharon Shtull-Trauring, Mark B. Trakhtenbrot, “STATEMATE: A working environment for the development of complex reactive systems”, IEEE Transactions on Software Engineering, 16:4 (1990), 403–414.
9. Itemis, “Yakindu”, http://statecharts.org/.
10. Yue Jia, Mark Harman, “An analysis and survey of the development of mutation testing”, IEEE Transactions on Software Engineering, 37:5 (2011), 649–678.
11. Microsoft, “SpecExplorer”, https://msdn.microsoft.com/en-us/library/ee620411. aspx.
12. Object Management Group, “Unified Modeling Language (UML), version 2.5”, http:// www.omg.org/spec/UML/2.5/.
13. Stephan Weißleder, “Partition Test Generator (ParTeG)”, http://parteg.sourceforge. net/.
14. Pitest, “PIT Mutation Testing”, http://pitest.org/.
15. QuantumLeaps, “QM TM”, http://www.state-machine.com/qm/.
16. Bernhard Schätz, Model-Based Development of Software Systems: From Models to Tools, Technical University Munich, 2009.
17. Mark Utting and Bruno Legeard, Practical Model-Based Testing: A Tools Approach, Morgan Kaufmann, 2007.
18. Gefei Zhang and Matthias Hölzl, “A set of metrics for states and transitions in UML state machines”, Proceedings of the 2014 Workshop on Behaviour Modelling – Foundations and Applications, ACM, 2014.
Рецензия
Для цитирования:
Баар Т. К вопросу об измерении уровня абстракции диаграмм состояний на основе тестирования мутаций. Моделирование и анализ информационных систем. 2017;24(6):691-703. https://doi.org/10.18255/1818-1015-2017-6-691-703
For citation:
Baar T. Towards Measuring the Abstractness of State Machines based on Mutation Testing. Modeling and Analysis of Information Systems. 2017;24(6):691-703. https://doi.org/10.18255/1818-1015-2017-6-691-703