Інформаційна система тестування програмного забезпечення - Лужний, Роман Ігорович; Luzhnyi, Roman Ihorovych (Національний університет "Львівська політехніка", 2024)
Як відомо, головним завданням перших десятиліть комп'ютерної ери було вдосконалення апаратних засобів обчислювальної техніки. Це зумовлювалося високими витратами на вирішення задач, пов'язаних з обробкою та збереженням інформації. Сьогодні досягнення в галузі мікроелектроніки призвели до значного підвищення продуктивності комп'ютерів, а також до суттєвого зниження їхньої вартості. Головним завданням останнього десятиліття XX століття та початку XXI століття стало покращення якості комп'ютерних сервісів, функціональність яких повністю залежить від програмного забезпечення (ПЗ). Розробка програмного забезпечення триває вже понад п’ятдесят років, і за цей час коло задач, які воно здатне вирішувати, а також рівень їхньої складності та способи подання отриманих результатів зазнали істотних змін. Сьогодні розробка програмного забезпечення розглядається через призму технології «S+S» (Software plus Services), ініційованої корпорацією Microsoft у липні 2007 року. Ця концепція передбачає інтеграцію програмного забезпечення та сервісів у єдиний, персоналізований інструмент, доступний з будь-якого місця. Проте, незважаючи на це, створення якісних програмних продуктів досі не стало загальноприйнятою нормою, а універсальних технологій, що дозволяють розробникам створювати надійне ПЗ у рамках заданих витрат та термінів, все ще немає. Причини несправностей сучасного програмного забезпечення надзвичайно різноманітні, що лише ускладнює цю проблему. Окрім того, масштаб проблеми значно зріс: якщо раніше наслідки помилок у неякісному ПЗ обмежувалися одним користувачем або невеликою групою, то тепер ці межі істотно розширилися. Проблеми, які раніше зводилися до повторного виконання певних дій, наприклад, ручного проходження звіту, тепер можуть мати наслідки, що загрожують життю чи смерті цілій організації. Отже, значущість створення високоякісного програмного забезпечення, перш за все, виправдовується економічними причинами. Згідно з різними галузевими стандартами, що регламентують характеристики "якісного" комерційного програмного забезпечення, середня кількість дефектів становить приблизно 6 помилок на 1000 рядків коду, а загальний показник може досягати близько 30 помилок. Як свідчать дані звіту Національного інституту стандартів і технологій США, витрати, пов'язані з неякісним програмним забезпеченням, у Сполучених Штатах налічують мільярди доларів щороку, і, за деякими оцінками, це становить приблизно 1% від національного валового внутрішнього продукту. Оскільки питання якості програмного забезпечення є надзвичайно актуальним, це вимагає змін і вдосконалення в процесі його тестування. Враховуючи, що тестування досі в значній мірі залишається неавтоматизованим, в цій галузі існує потреба в системі, яка, якщо не зможе виконувати тести самостійно, принаймні допоможе тестувальнику в розробці тестових стратегій та дозволить зменшити трудомісткість і час виконання робіт. Для такої системи корисно створити онтологічну модель процесу, яка забезпечить формалізацію знань та понять, а також дозволить повторно використовувати експертні знання. Це, у свою чергу, значно спростить роботу та підвищить ефективність тестування. Отже, розробка системи для онтологічного моделювання процесу тестування програмного забезпечення є важливим кроком у підвищенні ефективності цього процесу. Це дозволить не лише формалізувати знання та поняття в даній сфері, а й сприятиме покращенню стратегії тестування, що, в свою чергу, призведе до зменшення витрат часу і зусиль. Такі системи можуть стати потужним інструментом для тестувальників, забезпечуючи їм необхідні ресурси для оптимізації їхньої роботи. Актуальність теми: Оскільки, як зазначалося раніше, якість програмного забезпечення є надзвичайно важливим аспектом, це свідчить про те, що галузь тестування програмного забезпечення потребує модернізації. Впровадження такої системи внесе новизну в процес тестування, забезпечуючи можливість повторного використання накопичених знань. Це не лише підвищить ефективність тестування, а й дозволить тестувальникам зосередитися на більш складних завданнях, що вимагають творчого підходу, замість рутинних і повторюваних процесів. Об’єкт дослідження: Процес тестування програмного забезпечення. Предмет дослідження: Онтологічні моделі що описують процеси тестування програмного забезпечення. Мета і завдання дослідження: проведення аналізу процесу тестування ПЗ. Тестування програмного забезпечення складається з кількох ключових етапів і підпроцесів. У наступному розділі будуть представлені основні етапи тестування, специфічні терміни, а також рекомендації для розробки онтології в межах відповідної предметної області. Завдання: Розробка системи, що базується на онтології предметної області для тестування програмного забезпечення. Практичне значення отриманих результатів: Розроблена в рамках цієї дипломної роботи система надасть користувачеві можливість глибше усвідомити суть етапів життєвого циклу програмного забезпечення, а також завдання, які постають перед ними на кожному з цих етапів. Завдяки цій системі користувачі зможуть краще орієнтуватися у стандартах, які необхідно враховувати під час тестування. Це не лише підвищить якість тестування, але й сприятиме загальному успіху проекту, оскільки розуміння специфіки кожного етапу життєвого циклу дозволить більш ефективно планувати та виконувати відповідні завдання.

As is known, the primary task in the early decades of the computer era was to improve the hardware of computing equipment. This was driven by high costs associated with solving problems related to data processing and storage. Today, advancements in microelectronics have led to a significant increase in computer performance and a substantial reduction in their cost. The main focus of the last decade of the 20th century and the beginning of the 21st century has shifted towards improving the quality of computer services, the functionality of which depends entirely on software. Software development has been ongoing for over fifty years, and during this time, the range of tasks it can solve, as well as the complexity of these tasks and the ways results are presented, have undergone significant changes. Today, software development is viewed through the lens of the "S+S" (Software plus Services) technology, initiated by Microsoft in July 2007. This concept envisions the integration of software and services into a single, personalized tool accessible from any location. However, despite this, the creation of high-quality software products has not yet become a universal norm, and there are still no universal technologies that allow developers to create reliable software within predefined costs and timeframes. The reasons for failures in modern software are extremely diverse, further complicating this issue. Additionally, the scale of the problem has increased significantly: whereas previously, the consequences of errors in poor-quality software were limited to one user or a small group, now these boundaries have expanded significantly. Problems that previously required simply re-performing certain actions, such as manually reviewing a report, can now have life-or-death consequences for an entire organization. Therefore, the importance of creating high-quality software is primarily justified by economic reasons. According to various industry standards that regulate the characteristics of "quality" commercial software, the average number of defects is about 6 errors per 1,000 lines of code, and the overall figure can reach around 30 errors. According to a report by the U.S. National Institute of Standards and Technology, costs associated with poor-quality software in the United States amount to billions of dollars annually, and according to some estimates, this represents about 1% of the national gross domestic product. Since the issue of software quality is extremely relevant, it requires changes and improvements in the testing process. Given that testing remains largely non-automated, there is a need for a system in this field that, if it cannot perform tests independently, will at least assist testers in developing test strategies and reduce labor intensity and work time. For such a system, it is useful to create an ontological model of the process that will formalize knowledge and concepts and allow for the reuse of expert knowledge. This, in turn, will greatly simplify the work and increase testing efficiency. Thus, developing a system for ontological modeling of the software testing process is an important step in increasing the efficiency of this process. This will not only formalize knowledge and concepts in this field but also contribute to improved testing strategies, which, in turn, will reduce time and effort costs. Such systems can become a powerful tool for testers, providing them with the necessary resources to optimize their work. Relevance of the topic: Since, as previously mentioned, software quality is an extremely important aspect, this indicates that the software testing industry requires modernization. The implementation of such a system will introduce novelty into the testing process, enabling the reuse of accumulated knowledge. This will not only improve testing efficiency but also allow testers to focus on more complex tasks that require a creative approach, instead of routine and repetitive processes. Research object: Software testing process. Research subject: Ontological models describing software testing processes. Research goal and objectives: Conducting an analysis of the software testing process. Software testing consists of several key stages and subprocesses. The following section will present the main stages of testing, specific terms, and recommendations for developing an ontology within the relevant subject area. Objective: Development of a system based on the ontology of the subject area for software testing. Practical significance of the results: The system developed as part of this thesis will provide the user with a deeper understanding of the stages of the software lifecycle and the tasks they face at each stage. Thanks to this system, users will be better oriented in the standards to consider during testing. This will not only improve testing quality but also contribute to the overall success of the project, as understanding the specifics of each lifecycle stage will allow for more effective planning and execution of relevant tasks.
Software Testing Information System
Keywords: 8.126.00.01