Определения, обозначения и сокращения 3
Введение 4
1 Современный подход к процессу тестирования программного обеспечения
1.1 Тестирование программного обеспечения 7
1.2 Критерии тестирования 9
1.3 Подходы к тестированию 11
2 Разработка новой методологии тестирования 15
2.1 Описание модели процедуры тестирования 15
2.2 Подход тестирования доработок системы 16
2.3 Составление тестовых сценариев для каждого компонента 17
2.4 Принципы тестирования стабильного функционала 20
2.5 Формирование чек-листа системы 21
3 Результаты применения новой методологии тестирования 23
Заключение 28
Список использованной литературы
Процесс тестирования в рамках жизненного цикла программного средства занимает Vчасть. Оно является жизненно важным и неотъемлемым этапом, от которого зависит качество продукта и трудоемкость поддержания проекта в дальнейшем.
Тестирование программного средства подразумевает оценку продукта путем его изучения через исследование и эксперименты, включая опросы, изучение, моделирование, наблюдения и выводы, проверку результатов, и выполняется в следующих целях:
1) Подтверждение соответствия реализованного функционала поставленным требованиям.
2) Выявление дефектов, оценка и улучшение качества программного обеспечения.
На сегодняшний день этот процесс рассматривается более как деятельность, которую необходимо проводить на протяжении всего процесса разработки и сопровождения. Соответственно, планирование и организация тестирования должно предусматриваться на начальных стадиях работы с требованиями и систематически требует постоянного развития, актуализации соответствующих процедур тестирования.
Современные подходы тестирования программных приложений в той или иной мере проявляют свою эффективность, но они не могут полностью и однозначно выстроить организацию проведения тестирования ПО. Поэтому существующие методы действуют лишь в рамках формального процесса проверки разрабатываемого программного комплекса. В связи с этим, процедура внедрения тестирования в проекты и сама стратегия тестирования в глазах многих специалистов выглядит, в целом, довольно смутно. Соответственно, отсюда вытекает и нежелание организаций выделять для этого процесса жизненного цикла ПО дополнительный объем ресурсов.
Такая ситуация в настоящее время неприемлема, поскольку наблюдается постоянный рост и количества разрабатываемых программных продуктов, а также и степени сложности программного обеспечения.
Определенную значимость проявляет такая концепция тестирования, как Good Enough Quality (достаточно хорошее программное обеспечение), при котором программистом уже формулируются определённые критерии качества создаваемого программного приложения (выставляет необходимый уровень), далее создаётся программный код принятого качества, после этого тестирование приложения прекращается, и данный продукт выходит на рынок.
В данном случае такой подход представляет собой поиск разумного компромисса между качеством продукта, длительностью его разработки и трудозатратами на проведение тестирования.
Качество программного обеспечения можно определить как совокупную характеристику анализируемого программного приложения с учётом следующих составляющих:
1. надёжность,
2. сопровождаемость,
3. эффективность,
4. функциональность;
5. корректность.
Следует заметить, что концентрация на одной из характеристик качества может влиять на другую (положительно или негативно) или вовсе не влиять. В конкретном проекте две характеристики могут быть связаны и нетипичным соотношением.
Целью данной работы являлась разработка методологии тестирования программного обеспечения, которая позволила бы систематизировать процесс проверки ПО, не являясь при этом ресурсоемкой и сохраняя, или даже улучшая, качество выпускаемого программного обеспечения.
Для выполнения поставленной цели необходимо решение следующих основных задач:
1. Изучение литературы по исследуемой теме.
2. Анализ существующих методов и средств выполнения процедуры тестирования.
3. Выявление ключевых принципов организации процесса тестирования ПО.
Проведенный литературный анализ в первой части работы показал недостаточную эффективность и/или высокую ресурсоемкость, а также низкую или среднюю универсальность существующих на сегодняшний день методов тестирования.
Тем временем, повышение эффективности процессов тестирования программных продуктов является крайне актуальным на сегодняшний день вопросом, связанным со снижением расходов на данный этап жизненного цикла ПО.
Как уже упоминалось выше, использование отдельных методов и подходов тестирования, реализованные в современных программных продуктах, обладает существенными недостатками. Основной их перечень можно представить как:
1) отсутствие универсального и четко сформулированного плана прохождения тестирования;
2) объемные и сложные структуры, требующие немало времени для изучения и применения в соответствии со спецификой тестируемого ПО.
В отличие от существующих на сегодняшний день подходов тестирования, описанная во второй части методология лишена подобных недостатков и имеет ряд существенных преимуществ, не снижая при этом качество программного продукта:
1. данная методология универсальна и применима при внедрении процесса тестирования в любой программный продукт;
2. данная методология исключает необходимость в дополнительном обучении персонала и тем самым не требует дополнительных ресурсов для процесса тестирования;
3. данная методология позволяет систематизировать стратегию тестирования программного продукта, что приводит к повышению эффективности данного этапа жизненного цикла ПО.
В заключении следует отметить, что следование данной методологии тестирования программного обеспечения позволяет выстраивать перед специалистами общую картину составляющих тестируемой системы и их состояний. Соответственно, контроль выполнения тестирования и результатов проверок того или иного функционала становится более гибким.
1. Майерс Г., Баджетт Т., Сандлер К. Искусство тестирования программ. - М.: «Диалектика», -2012. -272 с
2. Орлик С. Программная инженерия. Тестирование программного обеспечения (Software Testing). 2004-2005
3. Современные технологии разработки и тестирования ПО http: //www.ssau. ni/struct/kafedry/ist/tp/l.html
4. Шлеер С., Меллор С. Объектно-ориентированный анализ: моделирование мира в состояниях.- Киев: Диалектика, 1993.
5. Суркис А. С. Y2K - от проблемы к решению! http://www.digdes.spb.ru/about/advertising/current/articles/ComPress/y2k dd.html
6. Липаев В.В. Качество программного обеспечения. М.: Финансы и статистика, 1983.
7. "Тестирование программного обеспечения"
http ://se.math.spbu.ru/Courses/T esting/T esting.html
8. Орлов С. А. Программная инженерия. Учебник для вузов. 5-е издание обновленное и дополненное. Стандарт третьего поколения Технологии разработки программного обеспечения. Питер-Юг, 2016
9. Jones C. Programming Productivity, McGraw-Hill.
10. Уиттакер Д., Арбон Д., Каролло Д. Как тестирует Google.: Пер. с англ.
- Спб.: Издательский дом "Питер", 2014.-320с
11. Hoerl R.W. Six Sigma and the Future of the Quality Profession. Quality Progress, 1998. June, p.35 - 42.
12. Aubrey Ch. Breakthrough to World Class Service Levels with Six Sigma. Proc 44th EOQ Congress, Budapest, 2000. v.l, p. 175-178.
13. Метод попарного тестирования. А. Федоров, 2011. http://software-testing.ru/library/testing/test-analysis/1304-pairing
14. Майерс Г. "Искусство тестирования программ", М. Финансы и статистика, 1982.
15. Боэм Б., Браун Дж., Каспар X. Характеристики качества программного обеспечения. М.: Мир, 1981.
16. Маейрс Г. Надежность программного обеспечения. "Мир", Москва, 1980.
17. Липаев В.В. Тестирование компонентов и комплексов программ. Учебник. - М.: СИНТЕГ, 2010. - 400 с.
18. Gerald Weinberg: Perfect Software: And Other Illusions about Testing, 2008