Обзор методов верификации и оценки качества программного обеспечения
https://doi.org/10.55648/1998-6920-2023-17-1-92-106
Аннотация
Определены основные понятия в области тестирования и оценки качества программного обеспечения (ПО). В частности, рассмотрены понятия верификации, валидации и жизненного цикла программного обеспечения и их роль в процессе тестирования. Рассмотрено понятие артефакта в жизненном цикле ПО. Взяты во внимание российские и международные стандарты в области оценки качества ПО. Рассмотрены существующие методы верификации ПО: экспертиза, статический анализ, формальные методы, динамические и синтетические методы. Сделан обзор методов оценки качества ПО, используемых в циклах разработки и тестирования программ. Также рассмотрены функциональные и административные факторы, влияющие на качество ПО. В статье перечислены современные средства автоматизации тестирования, которые могут использоваться на сегодняшний день. Обзорный материал статьи будет полезен для разработчиков ПО, начинающих тестировщиков и смежных специалистов.
Об авторах
Е. Ю. МерзляковаРоссия
Мерзлякова Екатерина Юрьевна, к.т.н., доцент кафедры прикладной математики и кибернетики
630102, Новосибирск, ул. Кирова, д. 86
тел. +7 383 2698 272
Е. В. Янченко
Россия
Янченко Елена Викторовна, к.т.н., доцент кафедры прикладной математики и кибернетики
630102, Новосибирск, ул. Кирова, 86
тел.+7 383 2698 272
Список литературы
1. Кулямин В. В. Методы верификации программного обеспечения. М.: Институт системного программирования, 2008. 111 с.
2. Семахин А. М. Методы верификации оценки качества программного обеспечения: учебное пособие. Курган: Курганский государственный университет, 2018. 150 с.
3. IEEE 1012-2004 Standard for Software Verification and Validation. IEEE, 2005.
4. ГОСТ 28806-90 «Качество программных средств. Термины и определения» / Межгосударственный стандарт / Государственный комитет СССР по вычислительной технике и информатике, 1992.
5. ISO/IEC JTC 1/ SC7 Systems and software engineering – Systems and software Quality Rquirements and Evaluation (SQuaRE) – Guide to SQuaRE – Part 2: Software and systems engineering Geneva, Switzerland: ISO, 2014.
6. Информационные технологии. Системная и программная инженерия. Требования и оценка качества систем и программного обеспечения (SQuaRE). Требования к качеству готового к использованию программного продукта (RUSP) и инструкции по тестированию. Стандартинформ, 2019.
7. Информационные технологии. Системная и программная инженерия. Требования и оценка качества систем и программного обеспечения (SQuaRE). Модели качества систем и программных продуктов. Стандартинформ, 2015.
8. IEEE 1028 Standard for Software Reviews. New York: IEEE, 1998.
9. Fagan M. E. Design and Code Inspections to Reduce Errors in Program Development // IBM Systems Journal. 1976. V. 15, № 3. P. 182–211.
10. Kazman R., Bass L., Abowd G., Webb M. SAAM: A Method for Analyzing the Properties of Software Architectures // Proc. 16th International Conference on Software Engineering, 1994. P. 81–90.
11. Plum Hall Inc [Электронный ресурс]. URL: http://www.plumhall.com/ (дата обращения: 31.01.2023).
12. LDRA [Электронный ресурс]. URL: https://ldra.com/ (дата обращения: 03.02.2023).
13. Jtest [Электронный ресурс]. URL: https://www.parasoft.com/ (дата обращения: 3.02.2023).
14. Шлее М. Qt 5.10. Профессиональное программирование на C++. БХВ-Петербург, 2018.
15. PVS-Studio – статический анализатор на страже качества, защищённости (SAST) и безопасности кода [Электронный ресурс]. URL: https://pvs-studio.com/ru/pvsstudio/ (дата обращения: 10.05.2022).
16. Камкин А. С. Введение в формальные методы верификации программ: учебное пособие. М.: МГУ им. М.В. Ломоносов, 2018.
17. AVISPA – Automated Validation of Internet Security Protocols and Applications [Электронный ресурс]. URL: https://www.avispa-project.org/ (дата обращения: 03.02.2023).
18. Бланше Б. Моделирование и проверка протоколов безопасности с помощью прикладного исчисления Pi и проверки // Основы и тенденции в области конфиденциальности и безопасности. Октябрь 2016. № 1 (1–2). С. 1–135.
19. Перевышина Е. А., Бабенко Л. К. Анализ стойкости к атакам криптографических протоколов с использованием формального верификатора SPIN // Известия ЮФУ. Технические науки. 2019. № 5 (207). С. 58–68.
20. Гурин Р. Е., Рудаков И. В., Ребриков А. В. Методы верификации программного обеспечения // Сетевое научное издание. Наука и образование. 2015. № 10. С. 235–251.
21. Пероцкая В. Н., Градусов Д. А. Основы тестирования программного обеспечения: учебное пособие. Владимир: Издательство ВЛГУ, 2017.
22. Топ 10 бесплатных инструментов для автоматизированного тестирования [Электронный ресурс]. URL: https://medium.com/nuances-of-programming/топ-10бесплатных-автоматизированных-инструментов-для-тестирования32e461a78298 (дата обращения: 03.02.2023).
23. Utting M., Pretschner A., Legeard B. A Taxonomy of Model-Based Testing. Technical Report, Department of Computer Science, The University of Waikato, New Zealand, 2006.
24. Delgado N., Gates A. Q., Roach S. A Taxonomy and Catalog of Runtime Software-Fault Monitoring Tools // IEEE Transactions on Software Engineering. December 2004. V. 30, № 12. P. 859–872.
25. Broy M., Jonsson B., Katoen J.-P., Leucker M., Pretschner A. Model Based Testing of Reactive Systems. LNCS 3472, Springer, 2005.
26. Utting M., Legeard B. Practical Model-Based Testing: A Tools Approach. Morgan-Kaufmann, 2007.
27. Ambert F., Bouquet F., Chemin S., Guenaud S., Legeard B., Peureux F., Vacelet N., Utting M. BZ-TT: A tool-set for test generation from Z and B using constraint logic programming // Proc. FATES’2002, August 2002. P. 105–119.
28. Ammann P., Black P. E. Abstracting formal specifications to generate software tests via model checking // Proc. 18th IEEE Digital Avionics Systems Conference, October 1999.
29. Engel C., Hahnle R. Generating unit tests from formal proofs // Proc. TAP 2007. LNCS 4454, Springer-Verlag, 2007. P. 169–188.
30. Sen K., Agha G. CUTE and jCUTE: Concolic unit testing and explicit path model-checking tools // Proc. Computer Aided Verification, August 2006. P. 419–423.
31. Lee I., Kannan S., Kim M., Sokolsky O., Viswanathan M. Runtime Assurance Based On Formal Specifications // Proc. International Conference on Parallel and Distributed Processing Techniques and Applications (PDPTA), 1999. P. 279–287.
32. Havelund K., Rosu G. Monitoring Java Programs with Java PathExplorer // Electronic Notes in Theoretical Computer Science. January 2004. V. 55, № 2. P. 1–18.
33. Cavalli A., Gervy C., Prokopenko S. New approaches for passive testing using an Extended Finite State Machine specification // Information and Software Technology. Elsevier. September 2003. V. 45, № 12. P. 837–852.
34. Chen D., Wu J. Chi H. Passive testing on TCP // Proc. International Conference on Communication Technology (ICCT), April 2003. V. 1. P. 182–186.
35. Cheon Y., Leavens G. T. A runtime assertion checker for the Java Modeling Language (JML) // Proc. International Conference on Software Engineering Research and Practice (SERP’02), CSREA Press, June 2002. P. 322–328.
36. Schoeller B. Strengthening Eiffel Contracts using Models // Proc. Workshop on Formal Aspects of Component Software (FACS), September 2003. P. 143–158.
37. Barnett M., Schulte W. Runtime verification of .NET contracts // Journal of Systems and Software. March 2003. V. 65, № 3. P. 199–208.
38. Кларк Э. М., Гамбург О., Пелед Д. Верификация моделей программ: Model Checking: пер. с англ. / под ред. Р. Смелянского. М.: МЦНМО, 2002. 416 с.
39. Рудаков И. В. Разработка и исследование синтетического метода верификации программы с помощью SMT-решателей // Вестник Московского государственного технического университета им. Н. Э. Баумана. Серия Приборостроение. 2016. № 4 (109). С. 49–64.
40. Черников Б. В. Управление качеством программного обеспечения: учебник. М.: Форум, 2012. 240 с.
41. Черников Б. В., Поклонов Б. Е. Оценка качества программного обеспечения: Практикум: учебное пособие. М.: ФОРУМ: ИНФРА-М, 2012. 400 с.
42. Сандлер К., Баджет Т., Майерс Г. Искусство тестирования программ. М.: Вильямс, 2015. 272 с.
Рецензия
Для цитирования:
Мерзлякова Е.Ю., Янченко Е.В. Обзор методов верификации и оценки качества программного обеспечения. Вестник СибГУТИ. 2023;17(1):92-106. https://doi.org/10.55648/1998-6920-2023-17-1-92-106
For citation:
Merzlyakova E.Y., Yanchenko E.V. Review of Software Quality Verification and Evaluation Methods. The Herald of the Siberian State University of Telecommunications and Information Science. 2023;17(1):92-106. (In Russ.) https://doi.org/10.55648/1998-6920-2023-17-1-92-106