Тип работы:
Предмет:
Язык работы:


ИСПОЛЬЗОВАНИЕ ИНСТРУМЕНТОВ МУТАЦИОННОГО ТЕСТИРОВАНИЯ ДЛЯ ОЦЕНКИ КАЧЕСТВА ПРОГРАММНЫХ РЕАЛИЗАЦИЙ НА ЯЗЫКЕ JAVA

Работа №180783

Тип работы

Бакалаврская работа

Предмет

физика

Объем работы50
Год сдачи2017
Стоимость4500 руб.
ПУБЛИКУЕТСЯ ВПЕРВЫЕ
Просмотрено
16
Не подходит работа?

Узнай цену на написание


РЕФЕРАТ 3
ВВЕДЕНИЕ 5
1 Тестирование программного обеспечения 8
1.1 Дефекты программного кода 9
1.2 Уязвимости 12
2 Методы построения тестов 15
2.1 Нагрузочное и стресс- тестирование 16
2.2 Модульное тестирование 17
2.3 Методы построения тестов на основе конечного автомата 17
2.3.1 W - метод 18
2.3.2 HSI - метод 19
2.4 Мутационное тестирование 20
3 Автоматизированное тестирование программного обеспечения 21
3.1 Инструменты для автоматизации тестирования программного обеспечения 23
3.2 Unit тестирование 24
3.3 Тестирование ПО с использованием FSMTest 2.0 25
3.4 Инструменты для мутационного тестирования 26
3.4.1 pJava 26
3.4.2 Pitest 29
3.5 Эксперименты по оценке качества инструментов для мутационного тестирования
pJava и Pitest 30
4 Проверка качества инструмента для автоматизирования тестирования FSMTest 2.0 ..34
4.1 XML - ошибки 34
4.2 Использование Pitest для тестирования программного интерфейса 35
ЗАКЛЮЧЕНИЕ 34
СПИСОК ЛИТЕРАТУРЫ 39
ПРИЛОЖЕНИЕ А 41
ПРИЛОЖЕНИЕ Б 42
ПРИЛОЖЕНИЕ В 48


В современном мире цифровых технологий тестирование стало неотъемлемой частью жизненного цикла любого программного продукта, будь то пользовательский интерфейс или критическая система. Тестирование направлено на выявление неисправностей в коде, а также на проверку соответствия заданной спецификации. Поскольку программирование, как и любая человеческая деятельность невозможна без ошибок, важно правильно выставлять требования, как к продукту, так и к планированию и целям тестирования. Примерами последствий таких ошибок являются: авария ракеты-носителя «Ариан - 5» 4 июня 1996 года; потеря личных данных, хранящихся в «облаке» в результате отключения серверов Amazon в 2013 году; отключение электроэнергии на северо-востоке США в 2003 году из-за ошибки программного обеспечения для мониторинга работы оборудования General Electric Energy.
В этапы разработки программного обеспечения входят:
• Сбор и анализ требований
• Системный анализ
• Разработка системы
• Кодирование
• Тестирование
• Реализация
Спецификация требований к программному продукту (SRS) - это документ или комплект документации, описывающий функции и поведение системы или программного приложения [1].
На основании первых спецификаций пишутся тест-планы, разрабатываются тестовые наборы, а также оценивается необходимость использования автоматизации тестирования.
Как и любой другой сложный процесс, тестирование программного обеспечения состоит из разных этапов, и каждый из них представлен конкретной направленностью действий.
Из этапов тестирования можно выделить следующие:
1. Проектирование тестов — разработка стратегии тестирования, разработка планов тестирования, разработка и документирование тестовых кейсов
2. Выполнение тестового цикла — анализ спецификаций и кода. Кодирование и проведение тестовых кейсов
3. Улучшение тестирования ПО — проведение исследований по результатам выполненного тестирования с получением информации по покрытию тестовыми кейсами исходного кода или функциональности программы. Разработка рекомендаций по улучшению тестирования
4. Улучшение качества программного продукта — выдача рекомендаций по улучшению программного обеспечения в целом или с целью соответствия поставленным требованиям и задачам
5. Оптимизация тестирования ПО — разработка программ, позволяющих в автоматическом режиме обрабатывать исходные коды и делать необходимые заключения по его качеству
Основной целью тестирования является поиск несоответствий в спецификациях, а также поиск фактических ошибок программиста. Также один из важных этапов проверки качества программного продукта, это верификация — процесс оценки промежуточных рабочих продуктов жизненного цикла разработки, для проверки правильно ли создан конечный продукт.
С развитием цифровых технологий также происходит развитие методов тестирования, увеличивается сложность применяемых алгоритмов, что непременно введет к развитию инструментов для автоматизации тестирования.
Одним из таких инструментов является FSMTest 2.0, который разработан в рамках проекта на кафедре информационных технологий в исследовании дискретных структур Томского государственного университета. Данный инструмент предназначен для автоматизации синтеза тестовых последовательностей на основе конечно-автоматных моделей. Однако при распространении данного программного продукта, как и любого другого, со стороны разработчика, также важно давать оценку полученному инструменту, тщательно тестировать его, и в итоге гарантировать качество и надежность. Поэтому в рамках нашего исследования за экспериментальную основу были поставлены задачи: исследовать существующие методы тестирования, провести сравнительные эксперименты для некоторых популярных инструментов для автоматизации тестирования, и обнаружить все неисправности и уязвимости продукта FSMTest 2.0.
Структура и объем работы. Дипломная работа включает введение, 4 главы, заключение, список используемой литературы и приложение. Отчет содержит 4 рисунка и 6 таблицы. Объем работы составляет 40 страницы, в том числе: титульный лист - одна страница, оглавление - 1 страница, основной текст - 35 страниц, список использованных литературных источников из 17 наименований - 2 страницы.
В первом разделе данной работы вводятся основные понятия и определения. Обознаются основные типы ошибок, такие как дефекты и уязвимости. Во второй части данного исследования составлен обзор существующих методов и подходов к тестированию, составлена классификация, а также раскрыты методы, используемые в следующих разделах. В третьей части работы исследована область инструментов для автоматизации тестирования разных типов программного обеспечения и проведены эксперименты по сравнению двух инструментов для автоматизации мутационного тестирования: pJava и Pitest. В завершающей главе приведены результаты исследования качества программного продукта FSMTest 2.0, приведена статистика обнаруженных неисправностей. 


Возникли сложности?

Нужна помощь преподавателя?

Помощь в написании работ!


В ходе научно-исследовательской работы были рассмотрены различные виды тестирования и изучены методы построения тестов. По результатам исследования был составлен обзор основных методов и типов тестирования, был проведен обзор наиболее известных инструментов для автоматизации тестирования.
Основным результатом работы является покрытие тестами инструмента для автоматизации тестирования систем с использованием методов на основе конечно-автоматных моделей FSMTest 2.0, который был разработан на кафедре информационных технологий в исследовании дискретных структур Томского государственного университета. Для тестирования использовались современные подходы, в том числе с применением инструментов для автоматизации тестирования. Все найденные неисправности переданы отделу разработки, тем самым внесен весомый вклад в получение патента на вторую версию FSMTest и соблюдение стандартов качества программного продукта. Актуальность исследования обоснована в первых двух главах работы, в которых приводится краткий обзор методов и средств тестирования, в том числе мутационного тестирования и методов на основе моделей с конечным числом состояний.
Среди выявленных неисправностей было обнаружено использование неинициализированных переменных в одном из XML - файлов, полученных в результате опечатки при написании кода.
В работе также проведены компьютерные эксперименты с двумя различными инструментами для мутационного тестирования, что также позволит в дальнейшем проводить более тщательное покрытие тестовыми наборами, в частности, различных сервисных систем, протокольных реализаций и сложных алгоритмических вычислений. Для этого были изучены основные понятия и определения мутационного тестирования. Для проведения экспериментов был изучен объектно-ориентированный язык программирования Java и самостоятельно реализованы несколько программ. Для написания и подачи тестов, были изучены принципы Junit-тестирования. В отчете в четвертой главе представлены результаты по сравнению инструментов pJava и Pitest, с которыми были проведены компьютерные эксперименты, которые показали преимущества использования каждого из них для генерации мутантов и автоматического запуска тестов; также были выявлены недостатки, в том числе, на этапе запуска программ. Количество мутаций, которые можно внести в программу, используя pJava, в несколько раз превышает возможности Pitest, однако стоит отметить, что количество эквивалентных мутантов в этом случае составило: 97. Основная проблема pJava состоит в сложности запуска, и специфичным, устаревшим требованиям к среде запуска и разработки. В свою очередь, последняя версия Pitest была выпущена 31 марта 2017 года и регулярно совершенствуется. Кроме того, последний инструмент имеет интуитивно понятный интерфейс, который не требует глубоких знаний языка Java и сборок программных продуктов.



1. Sarah Geagea, S. Z. Software Requirements/ Sarah Geagea, S. Z.Z/Швеция, 2010. - 56 с.
2. Software Testing Fundamentals [Электронный ресурс]. URL: http://softwaretestingfundamentals.com/defect/ (дата обращения: 21.3.2017).
3. Software testing help [Электронный ресурс].
URL:http://www.softwaretestinghelp.com/types-of-software-errors/(gaTa обращения: 5.4.2017).
4. ГОСТ -51275-2006. Защита информации. Объект информатизации. Факторы, воздействующие на информацию. Общие положения. Москва: Изд- во стандартов 2007-7c.
5. MITRE CVE. (1999) [Электронный ресурс].
URL:http ://www.cve.mitre. org/ about/terminolo gy.html (дата обращения:
15.3.2017).
6. Джон Данн Макдональд. Искусство оценки безопасности программного обеспечения: выявление и предотвращение уязвимостей программного обеспечения/Джон Данн Макдональд, Д. Ш. 2006 - 56 с.
7. Ермаков А.Д., Евтушенко Н.В. Метод синтеза тестов с гарантированной полнотой модели расширенного автомата. Моделирование и анализ информационных систем// Моделирование и анализ информационных систем Н.В. 2016.- 12 с.
8. Гилл А. Введение в теорию конечных автоматов / под ред. П.П.
Пархоменко. Москва Наука, Москва, 1966.-272 с.
9. Atlassian [Электронный ресурс]. URL:
https://ru.atlassian.com/software/bamboo(дaтa обращения: 25.10.2016).
10. Ranorex: Test Automation for GUI Testing [Электронный ресурс]. URL: https://www.ranorex.com/(дaтa обращения: 25.10.2016).
11. Jenkins [Электронный ресурс], URL: https://jenkins.io/ (Дата обращения: 21.11.2016)
12. Cucumber [Электронный ресурс] URL:https://cucumber.io/(Дaтa обращения: 21.11.2016)
13. TestNG [Электронный ресурс]. URL:http://testng.org/doc/(3,aTa
обращения: 21.11.2016)
14. pJava. [Электронный ресурс]. URL:http://
cs.gmu.edu/~offutt/mujava/(gaTa обращения: 20.10.2016)
15. Pitest. [Электронный ресурс]. URL:http://pitest.org/ (дата обращения: 15.11.2016)
16. XML [электронный ресурс] // Java course
URL:http://javacourse.ru/begin/xml/ (дата обращения 13.4.2017).



Работу высылаем на протяжении 30 минут после оплаты.



Подобные работы


©2025 Cервис помощи студентам в выполнении работ