С одной стороны, тестирование ПО — это процесс анализа программного средства и сопутствующей документации с целью выявления дефектов и повышения качества продукта. Это проверка соответствия программы требованиям, осуществляемая путем наблюдения за ее работой в специальных, искусственно созданных ситуациях, выбранных определенным образом [1].
С другой стороны, тестирование — это процесс, состоящий из всех стадийных и динамических видов деятельности, связанных с жизненным циклом, с планированием, подготовкой и оценкой программных продуктов и соответствующих рабочих продуктов, для определения, что они удовлетворяют определенным требованиям, чтобы продемонстрировать их пригодность для цели и возможность обнаружения дефектов [2].
Важность этапа тестирования программного продукта колоссальна:
Во-первых, обеспечить разработку продукта с заявленным качеством.
Во-вторых, предотвратить значительные временные затраты на исправление несоответствий с предъявленными требованиями к проекту.
В-третьих, что немаловажно, предотвратить денежные затраты, ведь, чем раньше выявлено несоответствие, тем дешевле обходится его исправление.
В-четвертых — обеспечить безупречную репутацию перед заказчиком и сохранить или даже поднять место компании на рынке разработок ПО.
Если говорить о современном этапе развития тестирования, то можно отметить вкратце его основные характеристики [3]: гибкие методологии и гибкое тестирование, глубокая интеграция с процессом разработки, широкое использование автоматизации, колоссальный набор технологий и инструментальных средств, кросс-функциональность команды (когда тестировщик и программист во многом могут выполнять работу друг друга).
Анализ стоимости каждого из этапов жизненного цикла ПО [4, 5], в соответствии с различными источниками, дает распределение, представленное в таблице 1.
Таблица 1 – Стоимость этапов жизненного цикла ПО
Этапы |
Затраты, % |
Анализ требований и определение спецификаций |
6 |
Проектирование |
5 |
Разработка |
40 |
Тестирование |
30 |
Поддержка |
19 |
Таблица 1 показывает, что почти четверть всех затрат уходит на поддержку уже готовой программы. Исправление ошибок до выпуска окончательной версии обходится компании гораздо дешевле, т. к. на этой стадии не существует необходимости в разработке исправлений к программе и исправлении последствий ошибки на местах для персональных пользователей.
Качественное тестирование ПО позволяет значительно снизить количество обоснованных претензий к его качеству на этапе внедрения, сократить ресурсы, задействованные на доработке, исправлении и сопровождении системы [6]. Как следствие этого затраты на обслуживание ПО уменьшаются на 15–20%, а репутация компании, разрабатывающей системы, растет. И, наоборот, если грамотного тестирования ПО не проводится, то затраты на сопровождение могут увеличиться до 80–85% от общих затрат на разработку и внедрение, а потенциальное количество заказчиков у производителя ПО уменьшиться.
Во многих современных IT-компаниях существуют центры качества, отвечающие за тестирование ПО. Требования к таким сотрудникам данных центров очень высокое. Существует специальный профессиональный стандарт (ПС) 06.004 «Специалист по тестированию в области информационных технологий» (утвержден приказом Министерства труда и социальной защиты Российской Федерации от 11 апреля 2014 г. N 225н) [7]. В данном ПС четко прописаны трудовые функции специалиста по тестированию ПО.
Выпускники вузов IT-направлений должны быть готовы к осуществлению профессиональной деятельности, связанной с тестирование ПО. Поэтому мы считаем актуальным включение дисциплины «Тестирование программного обеспечения» в основные образовательные программы подготовки IT-специалистов.
Для выявления уровня осведомленности студентов в вопросах тестирования ПО, их заинтересованности в освоении профессии «тестировщик» была разработана анкета с обязательными и необязательными вопросами, а также с различными формами анкетных вопросов, доступная по ссылке https://course.sgu.ru/course/view.php?id=1189.
В таблице 2 приведены вопросы и предоставленные варианты ответов разработанной анкеты.
Таблица 2 – Анкета для студентов
№ |
Вопрос |
Возможный вариант ответа |
Обязательный / необязательный вопрос |
1 |
Выберите курс |
Переключатель 1–4 и поле для ввода текста «Другое» |
Обязательный |
2 |
Выберите пол |
Выпадающий список: жен, муж |
Обязательный |
3 |
Выберите направление |
Переключатель: ПИ, МОАИС, ИВТ, ФИиИТ, Системный анализ и поле для ввода текста «Другое» |
Обязательный |
4 |
Собираетесь ли вы работать в IT-сфере? |
Переключатель: Да, точно Скорее всего да Скорее всего нет Точно нет |
Обязательный |
5 |
Выберите наиболее близкие вам профессии |
Чекбокс с несколькими возможными вариантами ответа: Разработчик DEVops Тестировщик Бизнес-аналитик Архитектор (IT) Инженер по качеству Поле для ввода текста «Другое» |
Обязательный |
6 |
Выберите наиболее интересные для вас виды тестирования |
Чекбокс с несколькими возможными вариантами ответа: Функциональное ручное тестирование Автоматизированное тестирование — написание кода Тестирование производительности Нагрузочное тестирование Юнит-тесты — тестирование в коде Тестирование документации к проекту Тестирование веб-приложений Тестирование мобильных приложений Тестирование настольных приложений Регрессионное тестирование Тестирование совместимости Нефункциональное тестирование |
Обязательный |
7 |
«Тестирование методом черного ящика» предполагает (своими словами) |
Текстовое поле для ввода ответа |
Обязательный |
8 |
Понятие «Бета тестирование» предполагает (своими словами) |
Текстовое поле для ввода ответа |
Обязательный |
9 |
Проведение «Smoke test» предполагает (своими словами) |
Текстовое поле для ввода ответа |
Обязательный |
10 |
«Тест-кейс» — это |
Переключатель: Шаги по воспроизведению сценария для проверки заданной функциональности Набор нужных тестовых данных (пароли, логины, окружения и др.) Функциональность, которую нужно проверить в рамках поставленной задачи Не знаю |
Обязательный |
11 |
Укажите понятия, относящиеся к методике тестирования |
Чекбокс с несколькими возможными вариантами ответа: Функциональное Автоматизированное Системное тестирование Тестирование локализации Smoke Test Интеграционное тестирование Приемочные испытания Critical Test |
Обязательный |
12 |
Изучали ли курс по Тестированию ПО? |
Переключатель: Да, Нет |
Обязательный |
13 |
Если был курс по Тестированию ПО, то вели его: |
Переключатель: Сотрудник(и) университета СГУ Сотрудники EPAM Сотрудники Mirantis Сотрудники Grid Dynamics Нет ответа Поле для ввода текста «Другое» |
Необязательный |
14 |
Полезен ли предмет по «Тестированию программного обеспечения» с актуальными, востребованными на реальных проектах знаниями? |
Переключатель: Да, точно Скорее всего да Скорее всего нет Точно нет Нет ответа |
Необязательный |
15 |
Если был курс по Тестированию ПО, укажите вашу оценку |
Выпадающий список: 3, 4, 5 |
Необязательный |
16 |
Если был курс по Тестированию ПО, укажите оценку, на которую вы оцениваете свои знания по данной дисциплине |
Выпадающий список: 3, 4, 5 |
Необязательный |
17 |
Хотели бы вы улучшить курс по дисциплине «Тестирование программного обеспечения» (для тех, у кого уже он был)? |
Переключатель: Да Нет Не знаю Нет ответа |
Необязательный |
18 |
Нужно ли приглашать на факультет представителей IT-компаний для обучения тестированию ПО |
Переключатель: — Да — Нет — Не знаю — Нет ответа |
Необязательный |
19 |
Считаете ли вы, что дисциплину «Тестирование программного обеспечения» нужно сделать обязательной (с экзаменом / зачетом), дисциплиной по выбору (с экзаменом / зачетом) или факультативной диспиплиной |
Переключатель: Обязательной диспиплиной Дисциплиной по выбору Факультативной диспиплиной |
Обязательный |
Результаты анкетирования приведены в таблице 3.
Таблица 3 – Результаты анкетирования
№ |
Вопрос |
Выбранный вариант |
Количество выбранного варианта |
1 |
Выберите курс |
2 |
22 |
2 |
Выберите пол |
жен муж |
8 14 |
3 |
Выберите направление |
МОАИС |
22 |
4 |
Собираетесь ли вы работать в IT-сфере? |
Да, точно Скорее всего да Скорее всего нет Точно нет |
14 7 1 0 |
5 |
Выберите наиболее близкие вам профессии |
Разработчик DEVops Тестировщик Бизнес аналитик Архитектор (IT) Инженер по качеству Другое: Гейм-дизайнер |
18 8 5 9 5 1 1 |
6 |
Выберите наиболее интересные для вас виды тестирования |
Функциональное ручное тестирование Автоматизированное тестирование — написание кода Тестирование производительности Нагрузочное тестирование Юнит-тесты — тестирование в коде Тестирование документации к проекту Тестирование веб-приложений Тестирование мобильных приложений Тестирование настольных приложений Регрессионное тестирование Тестирование совместимости |
2 10 6 2 4 2 12 14 3 2 6 |
7 |
«Тестирование методом черного ящика» предполагает (своими словами) |
Не знаю Неправильный ответ Правильный ответ |
14 5 3 |
8 |
Понятие «Бета тестирование» предполагает (своими словами) |
Не знаю Неправильный ответ Правильный ответ |
7 7 8 |
9 |
Проведение «Smoke test» предполагает (своими словами) |
Не знаю Неправильный ответ Правильный ответ |
14 1 4 |
10 |
«Тест-кейс» — это |
Шаги по воспроизведению сценария для проверки заданной функциональности Набор нужных тестовых данных (пароли, логины, окружения и др.) Функциональность, которую нужно проверить в рамках поставленной задачи Не знаю |
8 8 5 1 |
11 |
Укажите понятия, относящиеся к методике тестирования |
Функциональное Автоматизированное Системное тестирование Тестирование локализации Smoke Test Интеграционное тестирование Приемочные испытания Critical Test |
18 20 9 2 14 3 1 3 |
12 |
Изучали ли курс по Тестированию ПО? |
Да Нет |
0 22 |
13 |
Если был курс по Тестированию ПО, то вели его: |
Сотрудник(и) университета СГУ Сотрудники EPAM Сотрудники Mirantis Сотрудники Grid Dynamics Нет ответа Поле для ввода текста «Другое» |
3 1 0 0 0 0 |
14 |
Полезен ли предмет по «Тестированию программного обеспечения» с актуальными, востребованными на реальных проектах знаниями? |
Да, точно Скорее всего да Скорее всего нет Точно нет Нет ответа |
6 5 1 0 0 |
15 |
Если был курс по Тестированию ПО, укажите вашу оценку |
3 4 5 |
3 0 |
16 |
Если был курс по Тестированию ПО, укажите оценку, на которую вы оцениваете свои знания по данной дисциплине |
3 4 5 |
2 0 0 |
17 |
Хотели бы вы улучшить курс по дисциплине «Тестирование программного обеспечения» (для тех, у кого уже он был)? |
Да Нет Не знаю Нет ответа |
1 0 0 21 |
18 |
Нужно ли приглашать на факультет представителей IT-компаний для обучения тестированию ПО |
Да Нет Не знаю Нет ответа |
16 1 0 5 |
19 |
Считаете ли вы, что дисциплину «Тестирование программного обеспечения» нужно сделать обязательной (с экзаменом / зачетом), дисциплиной по выбору (с экзаменом / зачетом) или факультативной дисциплиной |
Обязательной дисциплиной Дисциплиной по выбору Факультативной дисциплиной |
7 13 2 |
По результатам анкетирования, приведенным в таблице 3 можно сделать следующие выводы:
Опрошена была одна группа второго курса направления МОАИС факультета КНиИТ, состоящая из 22 человек, среди которых 8 представителей женского пола и 14 — мужского. Все студенты еще не изучали курс «Тестирование программного обеспечения».
Большинство студентов считают, что: данная дисциплина должна быть дисциплиной по выбору; знания, полученные в рамках данной дисциплины, будут полезны при работе над реальными проектами; для реализации данной дисциплины нужно привлекать представителей IT-компаний.
Более, чем половина студентов (14 человек) — собираются точно работать в IT-сфере, планируют работать 7 человек и, вероятно, не планирует работать только 1 человек. Значит можно считать группу заинтересованной в изучении современных IT-технологий.
Самой популярной профессией была выбрана «Разработчик» (18 человек). В профессии «Тестировщик»/«Инженер по качеству» заинтересовано 6 человек. При этом для студентов «Тестировщик» и «Инженер по качеству» – это разные специальности.
Самыми интересными видами тестирования оказались тестирование веб-приложений и тестирование мобильных приложений, на втором месте по популярности идут автоматизированное тестирование и тестирование совместимости. Остальные виды тестирования также были выбраны, кроме нефункционального тестирования (возможно, потому что студенты не знают, что такое нефункциональное тестирование).
На вопрос о тестировании методом черного ящика дали правильный ответ всего лишь 3 студента. На вопрос о бета тестировании только 8 человек дали правильный ответ. Что означает понятие «Smoke test» знают 4 человека. Про «Тест-кейс» знает 1/3 группы. Методику тестирования знают единицы. Это свидетельствует о низком уровне осведомленности студентов в вопросах тестирования ПО.
В заключение анализа результатов анкетирования студентов можно сделать вывод, что дисциплина «Тестирование программного обеспечения» является востребованной и студенты заинтересованы, чтобы на данной дисциплине они могли получить актуальные знания.
В дальнейшем планируется разработка структуры и содержания дисциплины «Тестирование программного обеспечения», включающей в себя теоретический материал, задания для практических занятий, задания для самостоятельной работы, задания для промежуточной аттестации, основываясь на современных подходах (системного, деятельностного и информационного) к педагогическому проектированию учебных материалах.
Список литературыЧто такое тестирование программного обеспечения [Электронный ресурс]. — URL: http://qalight.com.ua/baza-znaniy/chto-takoe-testirovanie-programmnogo-obespecheniya/ (Дата обращения 14.12.2017). Загл. с экр. Яз. рус.
International Software Testing Qualifications Board Glossary [Электронный ресурс]. — URL: http://www.istqb.org/downloads/glossary.html (Дата обращения 19.11.2017). Загл. с экр. Яз. англ.
Куликов, С. Тестирование программного обеспечения. Базовый курс / С. Куликов. — Минск: Epam Systems, 2016.
Жизненный цикл программного обеспечения [Электронный ресурс]. — URL: http://www.tehprog.ru/index.php_page=lecture15.html (Дата обращения 25.11.2017). Загл. с экр. Яз. рус.
Бесплатная электронная книга по гибким методологиям разработки [Электронный ресурс]. — URL: http://agilerussia.ru/methodologies/ borisvolfson_ebook/ (Дата обращения 05.11.2017). Загл. с экр. Яз. рус.
Методологии разработки программного обеспечения [Электронный ресурс]. — URL: http://compress.ru/article.aspx?id=11321&iid=447 (Дата обращения 05.11.2017). Загл. с экр. Яз. рус.
Профессиональные стандарты [Электронный ресурс]. — URL: http:// fgosvo.ru/docs/101/69/2/6 (Дата обращения 09.12.2017). Загл. с экр. Яз. рус.