Главная
АИ #6 (188)
Статьи журнала АИ #6 (188)
Методика повышения качества разработки программного обеспечения с использованием...

Методика повышения качества разработки программного обеспечения с использованием тестирования на ранних стадиях

Автор(-ы):

Дворяк Диана Андреевна

4 февраля 2024

Секция

Информационные технологии

Ключевые слова

тестирование
программное обеспечение
качество программного обеспечения
тестирование на ранних стадиях
методика разработки программного обеспечения
улучшение процесса разработки
автоматизированное тестирование
раннее выявление дефектов
тестирование функционала
повышение эффективности тестирования
процесс контроля качества
улучшение процесса разработки через тестирование

Аннотация статьи

Статья является исследованием, посвященным проверки методики, которая позволяет повысить качество программного обеспечения путем внедрения тестирования на ранних стадиях разработки. Целью работы является проверка методики, которая позволит повысить качество программного обеспечения и уменьшить количество дефектов за счет тестирования на ранних стадиях разработки. Для достижения этой цели в статье рассматриваются методы и подходы к тестированию на ранних стадиях разработки, и предлагается собственная методика, основанная на лучших практиках. Методология работы включает анализ существующих подходов к тестированию на ранних стадиях разработки, разработку собственной методики, ее проверка на практике и сравнение результатов с традиционными подходами к тестированию. В результате исследования удалось разработать методику, которая позволяет повысить качество программного обеспечения за счет раннего выявления и устранения дефектов. Данная методика продемонстрировала свою эффективность на практике и привела к снижению количества дефектов в готовом продукте. Научное значение данной работы заключается в разработке новой методики, которая может быть использована при разработке программного обеспечения любого масштаба и сложности. Результаты исследования могут быть полезны как для профессиональных разработчиков, так и для студентов и исследователей в области информационных технологий. Областью применения результатов является сфера разработки программного обеспечения в целом, включая как коммерческие проекты, так и академические и исследовательские работы. В заключительной части статьи подводят итоги проверки методики повышения качества разработки программного обеспечения с использованием тестирования на ранних стадиях, что может значительно улучшить процесс разработки и увеличить удовлетворенность пользователей готовым продуктом.

Текст статьи

Введение

Актуальность повышения качества разработки программного обеспечения с использованием тестирования на ранних стадиях заключается в том, что это помогает выявить и исправить ошибки еще на ранних этапах разработки, что в свою очередь позволяет существенно сократить время и затраты на исправление ошибок в последующих этапах.

Цели использования тестирования на ранних стадиях разработки программного обеспечения включают в себя:

  1. Обеспечение высокого качества продукта. Раннее тестирование позволяет выявить и устранить ошибки еще на этапе проектирования и разработки, что в итоге приводит к созданию качественного программного продукта.
  2. Сокращение затрат. Исправление ошибок на ранних этапах обходится дешевле, чем внесение изменений после завершения разработки.
  3. Улучшение процесса разработки. Раннее тестирование помогает выявить недочеты и улучшить процессы разработки, что способствует повышению эффективности и качества работы команды.

Таким образом, использование тестирования на ранних стадиях разработки программного обеспечения имеет большую актуальность и позволяет достичь ключевых целей по созданию качественных и надежных программных продуктов [1].

1. Описание методики исследования

Методика повышения качества разработки программного обеспечения с использованием тестирования на ранних стадиях может включать следующие этапы и методы исследования:

  1. Определение требований: начните с определения основных требований к программному обеспечению с учетом его целей и функций.
  2. Проектирование тестовых случаев: на основе требований разработайте тестовые случаи, которые будут использоваться для проверки соответствия разрабатываемого программного продукта заданным требованиям.
  3. Раннее тестирование: тестирование на ранних стадиях разработки, еще до завершения кодирования. Это может включать в себя unit-тестирование отдельных модулей и интеграционное тестирование внутренних взаимодействий компонентов.
  4. Интеграционное тестирование: после завершения отдельных компонентов программы, чтобы убедиться в корректной работе программы в целом.
  5. Анализ результатов: составление отчетов о результатах тестирования на ранних этапах разработки и анализ, поможет выявить возможные проблемы и недочеты.
  6. Внесение корректив: на основе анализа результатов, внесение необходимых корректив в процесс разработки и дизайн программного обеспечения, чтобы улучшить его качество.
  7. Повторение цикла: повторение процесса тестирования на ранних стадиях и анализа результатов для постоянного повышения качества разрабатываемого программного продукта.

Эти методы исследования или методики эксперимента обычно применяются в рамках Agile-подхода к разработке программного обеспечения, который акцентирует внимание на постоянном тестировании и постепенных улучшениях продукта [2].

1.1. Определение требований

Определение требований к программному обеспечению – это процесс идентификации, анализа и документирования функциональных и нефункциональных требований, которые должны быть удовлетворены для успешной разработки и использования программного продукта.

Функциональные требования определяют, каким образом программное обеспечение должно взаимодействовать с пользователями, другими системами и окружающей средой. Они включают в себя конкретные функции, которые должны быть реализованы в программном обеспечении, такие как возможность создания, чтения, обновления и удаления данных, выполнение определенных вычислений, обработка запросов пользователей и т.д.

Нефункциональные требования определяют ограничения и ожидания по отношению к качеству, производительности, безопасности, надежности и другим аспектам программного обеспечения. Это могут быть требования к производительности (например, время отклика системы), безопасности данных (например, шифрование информации), масштабируемости (способность системы масштабироваться при увеличении нагрузки) и т.д.

Для определения требований к программному обеспечению необходимо провести анализ бизнес-потребностей и целей, изучить потребности пользователей и других заинтересованных сторон, а также учесть контекст использования программного продукта и технические ограничения. Результатом этого процесса является документ, который содержит полный список требований к программному обеспечению, который будет использоваться разработчиками, тестировщиками и другими участниками процесса разработки. Это документ может быть использован для оценки и контроля изменений во время разработки, а также для оценки соответствия готового продукта требованиям [3].

1.2. Проектирование тестовых случаев

Проектирование тестовых случаев является ключевым этапом в процессе тестирования программного обеспечения. Оно включает в себя разработку набора тестов, которые помогут проверить соответствие разрабатываемого продукта заданным требованиям.

Для начала необходимо провести анализ требований к программному продукту. Это могут быть функциональные требования, нефункциональные требования, требования к интерфейсу, качеству, производительности и т.д. Важно учесть все аспекты, которые должны быть протестированы.

Далее на основе собранных требований составляются тестовые случаи. Тестовый случай – это конкретное действие или последовательность действий, которые должны быть выполнены для проверки определенного аспекта программного продукта. Каждый тестовый случай должен быть четко описан, включая входные данные, ожидаемый результат, шаги выполнения и ожидаемое поведение.

При проектировании тестовых случаев важно учитывать различные сценарии использования продукта, возможные случаи ошибок, а также граничные условия. Тестовые случаи должны быть максимально полными и покрывать все аспекты продукта, чтобы удостовериться в его корректной работе в любых условиях.

Кроме того, необходимо уделить внимание приоритетам тестовых случаев. Некоторые из них могут быть более критическими для работоспособности продукта и должны быть протестированы в первую очередь [4].

В результате проектирования тестовых случаев получается набор документации, который будет использоваться для проведения тестирования продукта. Такой подход позволяет эффективно проверить соответствие разрабатываемого программного продукта заявленным требованиям и обеспечить его высокое качество.

1.3. Раннее тестирование

Раннее тестирование (или также называемое тестированием на ранних стадиях) – это процесс проведения тестирования на начальных этапах разработки программного обеспечения, еще до завершения кодирования. Целью данного вида тестирования является выявление и устранение дефектов на самых ранних стадиях разработки, что позволяет сэкономить время и ресурсы при дальнейшей работе над проектом.

Раннее тестирование включает в себя несколько основных видов тестирования:

  1. Unit-тестирование – это форма тестирования, при которой отдельные модули программного обеспечения (например, функции, классы или методы) тестируются отдельно от других компонентов. Целью unit-тестирования является проверка корректности работы отдельных частей кода и выявление потенциальных ошибок на этапе их создания.
  2. Интеграционное тестирование – данный вид тестирования направлен на проверку взаимодействия между различными компонентами программного обеспечения. При этом тестируются не только отдельные модули, но и их взаимодействие друг с другом. Целью интеграционного тестирования является обнаружение ошибок во взаимодействии между компонентами еще на раннем этапе разработки.

Раннее тестирование имеет ряд преимуществ, таких как увеличение качества программного обеспечения, сокращение времени и затрат на исправление дефектов на более поздних этапах разработки, а также повышение уровня доверия со стороны пользователей. В целом, проведение тестирования на ранних стадиях разработки позволяет существенно улучшить процесс создания программного обеспечения и его окончательное качество [5].

1.4. Интеграционное тестирование

Интеграционное тестирование – это процесс проверки взаимодействия между отдельными компонентами программы после их завершения. Когда разработчики завершают работу над отдельными модулями или компонентами программы, они объединяют их в единое целое. Интеграционное тестирование позволяет убедиться, что все компоненты работают корректно вместе и взаимодействуют друг с другом как задумано.

В процессе интеграционного тестирования проводятся различные проверки, включая тестирование интерфейсов между компонентами, взаимодействие функциональности и обмен данных. Также проводится тестирование целостности данных и проверяется, работает ли программа в целом так, как ожидается.

Интеграционное тестирование часто включает в себя создание и запуск различных сценариев использования, чтобы убедиться, что все компоненты программы взаимодействуют правильно, и программа работает корректно в различных ситуациях.

Тестирование на интеграцию является важной частью процесса разработки программного обеспечения, поскольку позволяет обнаружить и устранить проблемы взаимодействия компонентов до того, как программа будет выпущена в продакшен. Это позволяет снизить риски возникновения ошибок и неполадок в работе программы в будущем [6].

1.5. Анализ результатов

Анализ результатов тестирования на ранних этапах разработки является важной частью процесса обеспечения качества программного обеспечения. Вот некоторые шаги, которые можно предпринять для составления отчетов и анализа результатов:

  1. Сбор данных: на ранних этапах разработки проводится тестирование прототипов, мокапов или первых версий приложения. Все результаты тестирования, включая выявленные ошибки, проблемы и отклонения от ожидаемого поведения, должны быть документированы.
  2. Составление отчетов: на основе собранных данных создаются отчеты о результатах тестирования. В отчетах указывается общее количество проведенных тестов, количество обнаруженных ошибок, их типы и приоритеты, а также другая информация, необходимая для анализа.
  3. Анализ результатов: после создания отчетов происходит их подробный анализ. Это включает выявление паттернов ошибок, анализ повторяющихся проблем, оценку того, какие аспекты приложения наиболее подвержены ошибкам, и выявление корреляций между найденными ошибками.
  4. Выявление возможных проблем и недочетов: после анализа результатов тестирования определяются возможные проблемы и недочеты в разрабатываемом продукте. Это может включать в себя проблемы с проектированием интерфейса, логикой приложения, или интеграцией компонентов.
  5. Формирование рекомендаций: на основе выявленных проблем и недочетов формируются рекомендации по улучшению качества продукта. Эти рекомендации могут включать изменения в дизайне, исправление ошибок, улучшение процессов разработки, или другие меры [7].

Важно проводить анализ результатов тестирования на ранних этапах разработки, чтобы выявить проблемы на ранних стадиях и устранить их до того, как они станут более серьезными и дорогостоящими в исправлении.

1.6. Внесение корректив

Внесение корректив в процесс разработки или дизайна программного обеспечения является важной частью цикла разработки. Оно включает в себя анализ результатов текущего процесса разработки или дизайна и определение необходимых изменений или дополнений для улучшения качества программного обеспечения.

Внесение корректив может включать в себя следующие этапы:

  1. Анализ результатов: на этом этапе проводится детальный анализ результатов текущего процесса разработки или дизайна программного обеспечения. Оцениваются как технические, так и бизнес-показатели качества, такие как производительность, надежность, безопасность, пользовательский опыт и другие.
  2. Определение необходимых корректив: на основе результатов анализа определяются конкретные изменения или дополнения, которые необходимо внести для улучшения качества программного обеспечения. Это может включать в себя изменения в архитектуре, исправление ошибок, оптимизацию производительности, улучшение пользовательского интерфейса и т.д.
  3. Разработка и внедрение изменений: на этом этапе происходит разработка и внедрение необходимых изменений в процессе разработки или дизайне программного обеспечения. Это может включать в себя изменения в коде, обновление документации, обучение сотрудников и другие действия.
  4. Мониторинг и оценка: после внесения корректив важно продолжать мониторить результаты процесса разработки или дизайна программного обеспечения, чтобы оценить, какие изменения были внесены и как они влияют на качество программного обеспечения. При необходимости могут быть внесены дополнительные коррективы [8].

Внесение корректив важно для непрерывного улучшения качества программного обеспечения и достижения более высоких стандартов в разработке и дизайне.

1.7. Повторение цикла

Повторение цикла в тестировании на ранних стадиях разработки программного продукта является важным элементом для обеспечения высокого качества конечного продукта. Этот процесс предполагает повторяющиеся итерации тестирования и анализа результатов, которые позволяют выявлять и устранять дефекты, а также улучшать функциональность и производительность программы.

На ранних стадиях разработки проводится первичное тестирование, чтобы выявить потенциальные проблемы и дефекты, которые могут возникнуть в процессе дальнейшей работы. После этого анализируются полученные результаты и принимаются меры по исправлению выявленных проблем.

После внесения изменений процесс повторяется, и тестирование проводится снова, чтобы убедиться, что внесенные исправления действительно решают проблемы и не вызывают новые дефекты. При необходимости процесс повторяется несколько раз, пока не будет достигнут оптимальный уровень качества программного продукта [9].

Таким образом, повторение цикла тестирования на ранних стадиях разработки позволяет систематически улучшать качество программного продукта и обеспечивать его соответствие требованиям и ожиданиям пользователей.

2. Полученные результаты

Для проведения практической части и сравнения результатов по данной теме были выполнены следующие шаги:

  1. Выбрано два или более проектов разработки программного обеспечения, которые будут использоваться для сравнения.
  2. Определена методика тестирования на ранних стадиях для каждого проекта. Это будет включать в себя Unit-тестирование и интеграционное тестирование.
  3. Проведено тестирование на ранней стадии для каждого проекта в соответствии с выбранной методикой.
  4. Собранны данные о качестве разработки программного обеспечения для каждого проекта, такие как количество найденных ошибок, время, затраченное на исправление ошибок, уровень удовлетворенности заказчиков и т.д.
  5. Проанализированы полученные данные и результаты сравнения для каждого проекта. Выявлена разница в качестве разработки программного обеспечения при использовании методики тестирования на ранних стадиях.
  6. Сделаны выводы о том, какая методика тестирования на ранних стадиях эффективнее для повышения качества разработки программного обеспечения [10].

2.1. Выбранные проекты

Для сравнения тестирования были выбраны следующие проекты программного обеспечения:

  1. Программное обеспечение для управления проектами.
  2. Онлайн-платформа для бронирования и управления отелями.
  3. Мобильное приложение для учета личных финансов.
  4. Программного обеспечения для управления складскими запасами.
  5. Онлайн-сервис для автоматизации учета рабочего времени.

2.2. Результаты проведенного тестирования

Результаты проведенного тестирования, которое включает в себя Unit-тестирование и интеграционное тестирование для каждого проекта, приведены в таблице 1.

Таблица 1

Тестирование программного обеспечения

Проект

Unit-тестирование

Интеграционное тестирование

Программное обеспечение для управления проектами

В рамках данного проекта проводилось тестирование отдельных модулей и функций программы, чтобы проверить их корректность. Для модуля управления задачами тестировались различные варианты ввода данных, обработка и вывод результатов.

После успешного прохождения Unit-тестирования, проводилось тестирование взаимодействия различных модулей программы. Проверка передачи данных между модулем управления задачами и модулем отчетности.

Онлайн-платформа для бронирования и управления отелями

Тестировались отдельные компоненты платформы, такие как формы бронирования, система оплаты и механизм отправки уведомлений. Проверка правильности расчета стоимости бронирования.

После успешного Unit-тестирования, проводилось тестирование взаимодействия этих компонентов друг с другом. Проверка корректности синхронизации данных о бронировании между системой бронирования и системой оплаты.

Мобильное приложение для учета личных финансов

Проводилось тестирование отдельных функций приложения, таких как добавление транзакций, расчет бюджета и генерации отчетов.

После успешного Unit-тестирования, проверялось взаимодействие различных модулей приложения, например передача данных между модулем добавления транзакций и модулем расчета бюджета.

Программного обеспечения для управления складскими запасами

В рамках данного проекта проводилось тестирование отдельных функций программы, таких как прием и отгрузка товаров, инвентаризация и учет поставок.

После успешного Unit-тестирования, проверялось взаимодействие различных модулей программы, например передача данных между модулем приема товаров и модулем отгрузки.

Онлайн-сервис для автоматизации учета рабочего времени

Тестировались отдельные компоненты сервиса, такие как система регистрации рабочего времени, генерация отчетов и уведомления о просроченных задачах.

После успешного Unit-тестирования, проводилось тестирование взаимодействия различных компонентов сервиса. Например, проверка корректности передачи данных между системой регистрации рабочего времени и системой генерации отчетов.

Таким образом, проведя анализ данных после реализации тестирования на ранних стадиях для двух или более проектов, можно сделать выводы о влиянии данной методики на качество разработки программного обеспечения и определить наиболее эффективный подход к повышению качества разработки.

2.3. Анализ полученных данных и результат сравнения

Для каждого проекта были собраны данные о качестве разработки программного обеспечения, включая количество найденных ошибок и время, затраченное на исправление ошибок.

Данные были анализированы для каждого проекта отдельно, чтобы оценить эффективность процесса разработки и качество итогового продукта. Было выявлено, что количество найденных ошибок варьировалось в зависимости от сложности проекта и опыта команды разработчиков.

Также было измерено время, затраченное на исправление ошибок, чтобы оценить эффективность работы команды и их способность быстро реагировать на обнаруженные проблемы.

Эти данные были использованы для принятия решений о дальнейших улучшениях процесса разработки и обеспечения качества программного обеспечения. В результате были внесены изменения в процессы тестирования и обучения персонала, что привело к улучшению качества программного обеспечения и сокращению времени, затраченного на исправление ошибок. Результат тестирования программного обеспечения рассмотрен в таблице 2.

Таблица 2

Результат тестирования программного обеспечения

Проект

Результат тестирования

Программное обеспечение для управления проектами

Использование методики тестирования на ранних стадиях позволило выявить множество ошибок и недочётов, что позволило улучшить качество программного обеспечения до запуска.

Онлайн-платформа для бронирования и управления отелями

Были обнаружены многочисленные ошибки и проблемы на ранних этапах разработки, благодаря чему продукт был готов к запуску с меньшими проблемами.

Мобильное приложение для учета личных финансов

При использовании методики тестирования на ранних стадиях удалось выявить проблемы с пользовательским интерфейсом и функциональностью, что помогло улучшить качество приложения.

Программного обеспечения для управления складскими запасами

Тестирование помогло выявить сложности с интеграцией с другими системами и проблемы с производительностью, что позволило более эффективно их решить.

Онлайн-сервис для автоматизации учета рабочего времени

Использование методики тестирования на ранних стадиях позволило выявить проблемы с безопасностью данных и ошибки в алгоритмах расчета времени, что помогло предотвратить потенциальные проблемы после запуска.

Таким образом, использование методики тестирования на ранних стадиях разработки позволило выявить и устранить множество проблем и ошибок в каждом проекте, что в итоге повысило качество программного обеспечения и уменьшило риски при запуске продукта.

Заключение

После процесса анализа и сравнения различных методик тестирования на ранних стадиях разработки программного обеспечения можно сделать следующие выводы:

  1. Методика автоматизированного тестирования (например, unit-тесты, интеграционное тестирование) на ранних стадиях разработки обеспечения является более эффективной, чем ручное тестирование. Автоматизация позволяет быстро обнаруживать ошибки и проблемы в коде, что позволяет быстрее и эффективнее их устранять.
  2. Методика контрольного тестирования также является эффективной на ранних стадиях разработки. Она позволяет находить проблемы и ошибки, которые могут возникнуть в процессе проектирования и написания кода.
  3. Комбинация различных методик тестирования на ранних стадиях (автоматизированное, контрольное, ручное тестирование) может быть наиболее эффективной, так как позволяет обнаруживать и устранять ошибки с разных сторон.

Таким образом, для повышения качества разработки программного обеспечения на ранних стадиях рекомендуется использовать комбинацию различных методик тестирования, включая автоматизированное и контрольное тестирование.

Список литературы

  1. Кулямин В. В. Методы верификации программного обеспечения. – 2008.
  2. Демин А. А., Карпунин А. А., Ганев Ю. М. Методы верификации и валидации сложных программных систем // Программные продукты и системы. – 2014. – №. 4 (108). – С. 229-233.
  3. Куликов С. С. и др. Тестирование программного обеспечения: учеб. пособие. – 2019.
  4. Зефиров С. Л., Колобанов А. Ю. Методы безопасной разработки программного обеспечения // Труды Международного симпозиума «Надежность и качество». – 2009. – Т. 1. – С. 188-191.
  5. Логачева Н. В., Ладонычева М. Л., Пузырева К. С. Важность тестирования программного обеспечения в процессе разработки программного обеспечения // Инновационная наука. – 2022. – №. 2-2. – С. 23-26.
  6. Смирнов А. В. Методы оценки и управления качеством программного обеспечения // Известия СПбГЭТУ «ЛЭТИ. – 2019. – №. 2. – С. 20-25.
  7. Akbar M. A. et al. Improving the quality of software development process by introducing a new methodology–AZ-model // IEEE Access. – 2017. – Т. 6. – С. 4811-4823.
  8. Kelly D. P., Oshana R. S. Improving software quality using statistical testing techniques // Information and Software Technology. – 2000. – Т. 42. – №. 12. – С. 801-807.
  9. Coleman G., Verbruggen R. A quality software process for rapid application development // Software Quality Journal. – 1998. – Т. 7. – С. 107-122.
  10. Hooda I., Chhillar R. S. Software test process, testing types and techniques // International Journal of Computer Applications. – 2015. – Т. 111. – №. 13.

Поделиться

489

Дворяк Д. А. Методика повышения качества разработки программного обеспечения с использованием тестирования на ранних стадиях // Актуальные исследования. 2024. №6 (188). Ч.I.С. 67-74. URL: https://apni.ru/article/8399-metodika-povisheniya-kachestva-razrabotki

Похожие статьи

Другие статьи из раздела «Информационные технологии»

Все статьи выпуска
Актуальные исследования

#27 (209)

Прием материалов

29 июня - 5 июля

осталось 6 дней

Размещение PDF-версии журнала

10 июля

Размещение электронной версии статьи

сразу после оплаты

Рассылка печатных экземпляров

22 июля