АННОТАЦИЯ 2
Введение…………………………………………………………….……....5
1. Тестирование и диалоговые интерфейсы
1.1 Тестирование программных продуктов
1.1.1 Определение тестирования……...…………………………………...7
1.1.2 Подходы к тестированию…………………………………………….9
1.1.3 Процесс тестирования………………………….………………...…11
1.1.4 Подготовка к тестированию………………………….….……….…12
1.1.5 Тест-дизайн……………………………………………….…………14
1.1.6 Методики тестирования…………………………………………….17
1.1.7 Автоматизация тестирования………………………………………22
1.1.8 Принципы хорошего тестирования……………….……….……….25
1.2 Диалоговые системы
1.2.1 Определение диалоговой системы и ее актуальность в современном мире………………………………….……….………….…………...29
1.2.2 Функции диалоговых систем…………………………….…………31
1.2.3 Архитектура диалоговой системы и инструменты для ее разработки………………………………………………….……..….32
1.2.4 Рекомендации по разработке диалоговой системы……………….35
1.2.5 Компания JUST AI и платформа JAICP………………………….…37
1.2.6 Тестирование диалоговых систем………...……….…………….…40
2. Проверка методик тестирования на диалоговой системе
2.1 Описание чат-бота
2.1.1 Выбор тематической области для чат-бота………..…….…………44
2.1.2 Бот-справочник о правилах DnD……….……….………….………45
2.2 Устройство чат-бота…………….……….…….……………..……….46
2.3 Статические методы
2.3.1 Правила составления паттернов……….….……….…….…………48
2.3.2 Статическое тестирование паттернов………….…….…….………49
2.3.3 Статическое тестирование именованных паттернов..…….………51
2.4 Тестирование с помощью тест-кейсов
2.4.1 Ошибки в тестах…………………………………………….………56
2.4.2 Ошибки в паттернах и именованных паттернах……….…………57
2.4.3 Пересечение паттернов…………….…………….…………………58
2.4.4 Ошибки в сценарии………………………….….…….……….……62
2.4.5 Другие ошибки………………………………………………………63
2.4.6 Общие выводы………………….…….…….………………….……64
2.5 Тестирование с привлечением пользователей
2.5.1 Загрузка чат-бота в канал…………………..…….…………………65
2.5.2 Общение бота с пользователями……………………………………66
Заключение………………………………………….………………….…70
Список литературы……………………………………………………......73
Приложения……………………………………………………………….…..…76
Проблема тестирования важна и актуальна для разработчиков любых продуктов, будь то компьютерные программы, инструменты, блюда или что-либо другое. Создатели стремятся сделать продукт максимально качественным, отвечающим как требованиям заказчика (если таковой имеется), так и общепринятым стандартам. Для разработчиков чат-ботов эта задача, безусловно, также является актуальной.
Несмотря на то, что направление создания разговорных интерфейсов развито довольно хорошо, оно еще очень молодо и пока не обладает достаточным набором методов и подходов к тестированию разработок. Вместе с тем, при проектировании разговорных интерфейсов на текущий момент разработчики ориентируются в основном на гипотезы, не имея возможности исследовать и проверять эффективность выдвигаемых им предположений. Иных строго регламентированных методик не существует, либо они находятся в других областях знаний и требуют адаптации под реалии практики создания разговорных интерфейсов.
Поэтому целью моей работы является проведение сравнительного исследования и подбор методов для оценки качества ботов и проверки состоятельности продуктовых гипотез.
Объект работы – методики тестирования программных продуктов.
Предмет работы – применимость и эффективность методик тестирования для тестирования диалоговых систем.
Задачи работы:
1. Изучить принципы и методы тестирования программных продуктов;
2. Найти информацию о методах тестирования чат-ботов;
3. Самостоятельно определить набор методов, позволяющих наиболее полно протестировать диалоговую систему;
4. Изучить платформу JAICP;
5. Придумать чат-ботa для проверки эффективности методов тестирования;
6. Создать этого бота с помощью инструментов платформы JAICP;
7. Протестировать бота с помощью выбранных методов;
8. Сделать вывод об эффективности методов для оценки качества чат-ботов.
При выполнении работы применялись следующие методы: теоретический анализ литературных источников по проблеме исследования, анализ, синтез информации, моделирование, программирование, тестирование.
В рамках данной дипломной работы было проведено исследование теории и практики тестирования программных продуктов в целом и диалоговых систем в частности. В первой главе подробно рассмотрены различные подходы к тестированию, описаны методики, обозначены основные этапы тестирования. Также уделено внимание процессу тест-дизайна, положительным и отрицательным аспектам автоматизации тестирования, и на основе литературы по данной теме прописаны рекомендации по улучшению качества тестирования.
Вторая половина первой главы посвящена теории разработки и тестирования диалоговых интерфейсов. Было дано определение диалоговой системы, обозначены возможности современных разговорных интерфейсов и перспективы их развития; описаны принципы, на основе которых осуществляется их работа, и инструменты для их создания. Из источников были выделены требования, которым должен удовлетворять чат-бот, и рекомендации по их выполнению. Помимо этого, была изучена и описана платформа JAICP от компании JUST AI и выбран ряд методик, применимых для тестирования диалоговых систем.
Был описан следующий набор методов, позволяющих наиболее полно протестировать диалоговую систему:
• Статические методы:
◦ Поиск ошибок в коде;
◦ Поиск ошибок в тесте;
◦ Проверка переходов между состояниями;
◦ Тестирование графического интерфейса;
◦ Проверка соответствия требованиям заказчика;
• Динамические методы:
◦ Тестирование с помощью тест-кейсов;
◦ Тестирование «счастливого пути»;
◦ «Отрицательное тестирование»;
◦ Тестирование с привлечением пользователей;
◦ Оценка удобства пользования.
Практическая часть работы заключалась в проектировании, создании и тестировании диалогового интерфейса. Во второй главе описано устройство созданного мной чат-бота, а также обоснован выбор тематической области, которой он посвящен. Сценарий для бота был написан автоматически, с помощью созданной в рамках данной работы программы на языке Python; устройство программы обозначено в тексте главы, а ее код содержится в приложении 4.
Тестирование было разделено на три этапа: статическое, с помощью тест-кейсов и с привлечением пользователей. В ходе статического тестирования база данных и сценарий чат-бота были проверены на наличие орфографических, пунктуационных и речевых ошибок, а также ошибок в паттернах для стейтов и именованных паттернах. Выявленные ошибки приведены в тексте главы.
Для написания тест-кейсов была создана еще одна программа; ее код вы можете найти в приложении 5. Ошибки, выявленные в ходе автоматического тестирования, были классифицированы, а их количество после каждого набора внесенных в устройство бота изменений, занесено в сводную таблицу. Каждый класс ошибок подробно рассмотрен и подкреплен примерами; описаны причины возникновения ошибок и способы их исправления. Сделаны выводы об особенностях устройства и тестирования чат-ботов и сложностях, с которыми может столкнуться разработчик.
Последний этап тестирования чат-бота проводился с привлечением пользователей. Им было предложено пообщаться с диалоговым агентом, подключенным к мессенджеру Telegram, и дать характеристику его работы. Записи диалогов были обработаны, и на их основе сделаны выводы о манере общения собеседников чат-бота, достаточности объема его базы данных и недочетах в его устройстве. Пользователи назвали работу диалоговой системы удовлетворительной, но выявили в ней несколько недостатков.
В результате проведенного эксперимента были сделаны выводы об эффективности методов тестирования чат-ботов:
• Статические методы полезны при проектировании и разработке чат-бота. В процессе написания сценария разработчику следует просматривать готовый текст и паттерны на предмет ошибок, но по окончании разработки целесообразнее сразу переходить к динамическим методам. «Ручная» проверка бота занимает гораздо больше времени, а количество найденных ошибок оказывается в разы меньше, чем при автоматической.
• Проверка с помощью тест-кейсов – высокоэффективный метод, позволяющий за небольшое количество времени найти и отладить большое количество ошибок. С помощью автоматизации процесса написания тестов его скорость можно сделать еще выше. Эффективность этого метода зависит от количества вариантов, которые тестировщик смог собрать для каждого из прописанных в сценарии запросов. Чем больше вариантов, тем меньше шанс, что при эксплуатации бот не сможет распознать какую-либо фразу.
• Тестирование с привлечением пользователей также можно назвать эффективным методом, поскольку оно позволяет найти «белые пятна» в сценарии: запросы и слова, которые не были учтены при разработке. Оно также дает возможность получить информацию о реальных потребностях людей, о том, какие из путей диалога наиболее популярны, и о манере речи пользователей, на которых ориентирован бот.
Использование тест-кейсов в связке с «живым» тестированием бота пользователями позволяет получить наиболее полную картину о достоинствах и недостатках бота и разработать стратегию улучшения качества его работы.
Тема данного исследования была предложена компанией Just AI.
1. Власов М. П. Моделирование экономических процессов / М. П. Власов, П. Д. Шимко. — Ростов н/Д : Феникс, 2005. – 409 с
2. Глазков, С.В. Разработка интерактивных приложений с многомодальным интерфейсом для гетерогенных мобильных устройств. // Четвертый междисциплинарный семинар «Анализ разговорной русской речи». – 2010. – С. 51-56
3. Джанарсанам, С. Разработка чат-ботов и разговорных интерфейсов. – М.: ДМК Пресс, 2019. – 340 с.
4. Документация JAICP. [электронный ресурс]. – https://help.just-ai.com/docs/ru/
5. Документация JAICP. Базовые элементы паттернов. [электронный ресурс]. – https://help.just-ai.com/docs/ru/Patterns/base_patterns
6. Еремеев, Владислав. Библия QA v. 2.0 [электронный ресурс] – https://vladislaveremeev.gitbook.io/qa_bible/
7. Иванов А. Д. Чат-боты в Telegram и в контакте как новый канал распространения новостей // Вестник Волжского университета им. В. Н. Татищева, Том 1, № 3, 2018 г., 126-132 стр.
8. Кадеева, О.Е., Сирицына. В.Н. Чат-боты и особенности их использования в образовании. // журнал «Информатика в школе», номер 10 (163), 2020, стр. 45-53.
9. Каплун, А. Тестирование областей определения или нечто большее, чем анализ граничных значений [электронный ресурс]. – https://habr.com/ru/company/infopulse/blog/270909/ - статья в интернете
10. Кормушина, Д. Как мы тестируем фичу от ТЗ до пост-продакшена и сохраняем дружеские отношения внутри команды [электронный ресурс]. – https://habr.com/ru/company/2gis/blog/449942/ - статья в интернете.
11. Кузнецов В. В. Перспективы развития чат-ботов//Успехи современной науки. – 2018. – № 12, 16–19
12. Куликов, С. C. Тестирование программного обеспечения. Базовый курс: учебное пособие. С.С. Куликов. — Минск: Четыре четверти, 2020. — 312 с.
13. Лутфуллин А. Умные боты для Telegram. [электронный ресурс]. – http://android.mobile-review.com/articles/3621 - статья в интернете
14. Мохова, М. К. Применение технологии чат-бот для автоматизации коммуникаций с клиентами // Весенние дни науки. – 2020. – С. 702-704.
15. Потапова, Н. 10 правил хорошего тона при описании багов [электронный ресурс]. – https://habr.com/ru/company/docsvision/blog/264163/ - статья в интернете
...