ВВЕДЕНИЕ 4
1 Описание предметной области 7
1.1 Характеристика предприятия 7
1.2 Место тестирования в разработке программного обеспечения 9
1.3 Виды тестирования 12
1.4 Понятие тестового сценария 22
1.5 Выводы по первому разделу 25
2 Построение системы интеллектуального тестирования 26
2.1 Выбор инструмента автоматизации 26
2.2 Проектирование автоматизированной системы тестирования 35
2.3 Выводы по второму разделу 38
3 Программная реализация системы 39
3.1 Создание структуры автотеста 39
3.2 Настройка ActionBuilder 40
3.3 Создание структуры проекта 42
3.4 Создание автотеста 46
3.5 Тестирование программы 49
3.6 Обоснование экономической эффективности 50
3.7 Выводы по третьему разделу 56
ЗАКЛЮЧЕНИЕ 57
СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ
Автоматизированное тестирование является неотъемлемой частью современного подхода к разработке программного обеспечения. Организация системы автоматического тестирования позволяет идентифицировать ошибки функциональности и дизайна приложения на всех этапах его создания [19].
Преимущества, которые предоставляет система [18]:
- При любом изменении, внесенном программистом в код, запускается тестовый сценарий, проверяющий корректную работу прежней и новой функциональности. Таким образом, разработчик всегда уверен в том, что его действия не повлекли за собой ошибок работы приложения. А если ошибка возникла, то отчёт о прохождении тестов позволит точно идентифицировать место и причину сбоя.
- Автоматизированное тестирование значительно сокращает время разработки ПО, так как заменяет процесс ручного тестирования. Кроме того, автономные тесты способны работать для разных форм и приложений. Таким образом, один раз написанный тест может служить инструментом для поиска ошибок многократно.
- Случайный подход генерации данных, используемых в тестах, позволяет найти непредвиденные ошибки. Так как очень часто машина способна сгенерировать тестовый пример, который ручной тестировщик мог не предусмотреть.
- История прохождения тестов на разных этапах разработки даёт ценную статистическую информацию: среднее количество ошибок при разработке одной формы, прохождении одного спринта (если речь идёт о компаниях, поддерживающих гибкие методологии разработки), за всё время создания продукта; время, потраченное на исправление ошибок; типы ошибок, их процентное соотношение. Такого рода информация может быть представлена заказчику, а также активно использоваться при дальнейшей разработке, чтобы на её основании улучшить процесс, устраняя недостатки предыдущих релизов. Кроме того, информация может быть использована при прохождении проверок компании на соответствие тому или иному мировому стандарту.
Не смотря на все перечисленные преимущества автоматизированного тестирования, в большинстве компаний, занимающихся разработкой программного обеспечения, понятие ручного тестирования не превратилось в атавизм. Это происходит из-за того, что создание подобной системы является нетривиальной и очень специфической задачей. В зависимости от функциональности разрабатываемого программного обеспечения, языков и средств программирования, задача организации системы кардинально меняется, приобретая свои персональные проблемы.
Целью данной работы является повышение эффективности тестирования программного обеспечения IT-компании за счет разработки автоматизированной системы тестирования для продукта АЦК-Финансы, а также корректирования общего плана процесса разработки с учётом создания данной системы.
Задачи включают в себя:
- изучение теоретических данных по тестированию и автоматизированному тестированию;
- изучение основных фреймворков для написания автотестов и выбор оптимального;
- моделирование системы автоматизированного тестирования;
- программная реализация системы;
- оценка экономической эффективности данной разработки.
Объектом исследования данной работы является процесс автоматического тестирования приложения АЦК-Финансы.
Предмет исследования - программное приложение АЦК-Финансы, методы написания автотестов, модель работы системы автоматизированного тестирования.
Практическое значение создаваемой системы заключается в высвобождении человеческих ресурсов и увеличении экономического эффекта производимых тестовых операций.
Новизна магистерской диссертации заключается в разработке оригинального средства тестирования, которое позволит повысить эффективность работы компании за счет следующего:
- сокращения времени процесса тестирования;
- сокращения количества специалистов по тестированию;
- экономии денежных средств за счет уменьшения затрат на заработную плату.
Магистерская диссертаци состоит из 3 разделов:
- аналитическая часть - в данном разделе будет рассмотрен процесс автоматизированного тестирования, его место и роль в жизненном цикле программного обеспечения;
- построение системы - в данном разделе будут изучены основные системы написание автоматических тестовых сценариев и обоснован выбор среды, используемой в данной разработке, а также создана модель автоматизированной системы;
- проектная часть - в данном разделе будет представлен процесс разработки и анализа автоматического теста, также будет наглядно представлена экономическая эффективность от внедрения данной системы;
Магистерская диссертация написана на 64 страницах. Она включает в себя 21 рисунок, 3 таблицы и 4 формулы.
По окончании исследования планируется получение настраиваемой и функциональной системы автоматизированного тестирования.
В ходе исследования были выявлены множественные преимущества робота перед человеком в вопросах тестирования программного обеспечения. Выбраны методы технического анализа, которые будут положены в основу написания автотеста. Произведен анализ наиболее популярных методов.
В ходе разработки были решены следующие задачи:
- изучение теоретических данных по тестированию и автоматизированному тестированию;
- изучение основных фреймворков для написания автотестов и выбор оптимального;
- моделирование системы автоматизированного тестирования;
- программная реализация системы;
- оценка экономической эффективности данной разработки.
Результатом выполнения магистерской диссертации является разработка автоматизированной системы тестирования программного обеспечения. Благодаря данной системе повысилась эффективность работы компании, а именно:
- сократилось время процесса тестирования;
- сократилось количество специалистов по тестированию;
- уменьшились затраты денежных средств на заработную плату.
Автоматизированная система тестирования может быть использована с большой пользой, благодаря следующим ее качества:
- выполнение тестовых операций с наименьшим участием человека;
- высокая скорость обработки информации;
- возможность решения новых задач.
В настоящий момент система полностью реализована. Процесс написания тестовых сценариев максимально упрощен. Им занимается уже целая команда тестировщиков. Автоматические тесты помогают найти
большой процент программных багов и сократить трудозатраты на ручной прогон сценариев.
Продолжая тему максимальной автоматизации, в будущем планируется работа по внедрению системы автоматического создания тестовых багов по отчету о прохождении тестов. В настоящий момент для того, чтобы известить разработчиков о возникшей ошибке тестировщикам приходится вручную просматривать тестовые отчёты и создавать задачи по их исправлению. В будущем этот процесс планируется автоматизировать. Проблемы возникают лишь с определением того, на кого назначать эту работу. Обычно тестировщики сами знают, кто из разработчиков занимался той или иной функциональностью и сами решают на кого назначать работу. При автоматизированном подходе придётся немного изменить и сам процесс разработки, для того, чтобы эту информацию можно было бы извлечь непосредственно из программного кода.
1 Chai Assertion Library [Электронный ресурс] — Режим доступа: http://chaijs.com/
2 Fowler Martin [Электронный ресурс] — PageObject, 2013 — Режим доступа: http ://martinfowler.com/bliki/PageObj ect.html
3 GRUNT. The JavaScript Task Runner [Электронный ресурс] — Электрон. Текстовые дан. — Режим доступа:http://gruntjs.com/
4 Google. AngularJS [Электронный ресурс] — Электрон. Текстовые дан. - - Режим доступа: https://angularjs.org
5 Graham Dorothy [Электронный ресурс] — ROI of test automation: benefit
and cost, 2010 — Режим доступа:
http://www.dorothygraham.co.uk/downloads/generalPdfs/ProfTesterROI .pd
6 Jasmine. Behavior-Driven JavaScript [Электронный ресурс] — Режим доступа: http://j asmine. github .io/
7 JetBrains.TeamCity [Электронный ресурс] - Powerful Continuous Integration out of the box. — Режим доступа: https://www.jetbrains.com/teamcity
8 Mocha: simple, flexible, fun. [Электронный ресурс] — Режим доступа: https://mochajs.org/
9 Modern Test Case Management Software for QA and Development Teams. [Электронный ресурс] — Режим доступа: http://www.gurock.com/testrail/
10 Protractor - end-to-end testing for AngularJS. [Электронный ресурс] — Режим доступа: http://www.protractortest.org.
11 ROI в автоматизации тестирования[Электронный ресурс] — М., 2013-2018. — Режим доступа: http://bugscatcher.net/archives/2920
12 Screenshot Reporter for Protractor. [Электронный ресурс] — Режим доступа:https://www.npmjs.com/package/protractor-screenshot-reporter.
13 SonarSource. [Электронный ресурс] — SonarQube. — Режим доступа: http: //www.sonarqube. org.
14 Standalone test spies, stubs and mocks for JavaScript. [Электронный ресурс] — Режим достуnа:http://sinonjs.org/.
15 UWEBDRIVER I/O Selenium 2 bindings for NodeJS. [Электронный ресурс] — Режим gocTyna:http://webdriver.io/
16 Use JSDoc. [Электронный ресурс] — Режим
доступаЪйр: //usejsdoc. org/.
17 ltd Cucumber. — Cucumber. Simple, human collaboration. [Электронный ресурс] — Режим дocтyпa:https://cucumber.io.
18 Автоматизация процесса тестирования при помощи методологии и инструментальных средств IBM Rational [Электронный ресурс] / В. Ематин [и др.]. Электрон. текстовые дан. -М.: SOFTWARE-TESTING.RU, 2008-2018.
- Режим доступа: http://software-testing.ru/library/vendors/156-ibm-rational
19 Алексей Баранцев. Онлайн-курс «Программирование на Python для тестировщиков». [Электронный ресурс] — М., 2010-2018 — Режим доступа: https: //trainings/schedule?task=3 &cid=233
20 Брауде, Э. Технология разработки программного обеспечения / Э. Брауде. — Санкт-Петербург: Питер, 2004. — 655 с.
21 Вечканов, Г. Экономическая теория / Г. Вечканов, Г. Вечканова. - Москва: Эксмо, 2007. - 448 с.
22 Вигерс, К. Разработка требований к программному обеспечению / пер. с англ.. - Москва: Русская Редакция, 2004. - 576 с.
23 Винниченко, И.В. Автоматизация процессов тестирования / И.В. Винниченко — Санкт-Петербург: Питер, 2005. — 203 с.
24 ГОСТ 7.32-2001 СИБСД. Отчет о научно исследовательской работе. - Москва: Стандартинформ, 2006. - 15 с.
25 ГОСТ 2.105-95 ЕСКД. Общие требования к текстовым документам. - Москва: Стандартинформ, 2011. - 18 с.
26 ГОСТ 7.9 - 77. Реферат и аннотация. - Москва: Изд-во стандартов, 1981. - 6 с.
27 Давыдов, М. Сравнительный анализ инструментов
автоматизированного функционального тестирования Web-приложений: Mercury QuickTest Pro и IBM Rational Functional Tester 6.1 [Электронный ресурс] / М. Давыдов. Электрон, текстовые дан. - М.: SOFTWARE- TESTING.RU, 2008-2018. - Режим доступа: http://software-
testing.ru/library/testing/functional-testing/149--web-mercury-quicktest-pro-ibm- rational-functional-tester-61
28 Дастин, Э. Автоматизированное тестирование программного обеспечения. Внедрение, управление и эксплуатация / Э. Дастин, Д. Рэшка, Д. Пол. — Москва: ЛОРИ, 2003. — 592 с.
29 Калбертсон, Р. Быстрое тестирование / Р. Калбертсон, К. Браун, Г. Кобб. — Москва: Вильямс, 2002. — 384 с.
30 Канер, С. Тестирование программного обеспечения. Фундаментальные концепции менеджмента бизнес-приложений / С. Канер. — Калининград: ДиаСофт, 2001. — 544 с.
31 Лилия Сапурина. Система автоматизированного тестирования web- приложений на Python. [Электронный ресурс] — М., 2015-2018 — Режим доступа: http s: //github .com/liliasapurina/python_training.
32 Липаев, В. Надежность программных средств. / В.В. Липаев. - Москва: СИНТЕГ, 1998. - 358 с.
33 Липаев В.В. Тестирование программ / В.В. Липаев. - Москва: Радио и связь, 1986. - 437 с.
34 Метрики в тестировании. [Электронный ресурс] — М., 2012-2018 — Режим доступа: http://blog.shumoos.com/archives/271
35 Михнюк, Т. Ф. Охрана труда: учебник для студ. высш. учеб. завед. / Т. Ф. Михнюк - Москва: ИВЦ Минфина, 2009 — 215с.
36 Можаев, П. Средства автоматизированного тестирования / П. Можаев - - Москва: Открытые системы, 2009. — 642с.
37 Мясниченко, О. Система автоматического тестирования / О. Мясниченко — Москва: Открытые системы, 2003— 599с.
38 Новичков, А. Автоматизированное тестирование: оценка возврата инвестиций и сопутствующие риски / А. Новичков, В. Панкратов — Москва: КомпьютерПресс, 2005. - 411с.
39 О внесении изменений в отдельные законодательные акты Российской Федерации: федеральный закон от 29 дек. 2014 г. № 460-ФЗ // Собрание законодательства. - 2015. - Ст. 13.
40 О рынке ценных бумаг: Федеральный закон от 22 апр. 1996 г. № 39-ФЗ // Собрание законодательства. - 1996. - № 16 - Ст. 1918.
41 О сроках и порядке составления и представления отчетности профессиональных участников рынка ценных бумаг в Центральный банк Российской Федерации: Указание Банка России от 15 янв. 2015 г. № 3533-У // Вестник Банка России. - 2015. - Ст. 25.
42 Орлик С. Основы Программной Инженерии [Электронный ресурс]. Электрон. текстовые дан. - Режим доступа: http://swebok.sorlik.ru/
43 Орлов, С. Технологии разработки программного обеспечения / С.А. Орлов. - Санкт-Петербург: ПИТЕР, 2002. - 464 с.
44 Официальный сайт БФТ. [Электронный ресурс] - М.: Открытые системы, 2000-2018. - Режим доступа: https://bftcom.com
45 Савкин В. Принципы управления качеством программ [Электронный ресурс]. Электрон. текстовые дан. - М.: Открытые системы, 2008-2018. - Режим доступа: http://www.osp.ru/os/2008/06/5344965
46 Святослав Куликов. Тестирование программного обеспечения. Базовый курс. [Электронный ресурс] - М., Epam Systems, 2015-2018. - Режим доступа: http://svyatoslav.biz/database_book
47 Скрипкин, К. Г. Экономическая эффективность информационных систем / К. Г. Скрипкин. - Москва: Книга по Требованию, 2002. - 250 с.
48 Соммервилл, И. Инженерия программного обеспечения / пер. с англ. А.А. Минько, А.А. Момотюк, Г.И. Сингаевская. - Москва: ВИЛЬЯМС, 2002. - 624 с.
49 Тестирование и качество ПО. [Электронный ресурс] — М., 2014-2018 — Режим доступа: http://software-testing.ru/
50 Тестирование ПО с использованием инструментов HP Mercury [Электронный ресурс] / Д. Карбасов, К. Пасевич. Электрон, текстовые дан. - М.: SOFTWARE-TESTING.RU, 2008-2018. - Режим доступа: http://software- testing .ru/library/vendors/162-hp-mercury#6
51 Тестирование программного обеспечения [Электронный ресурс]. Электрон. текстовые дан. - М.: Википедия, 2010-2018. - Режим доступа: http://ru.wikipedia.org/wiki/Тестирование_программного_обеспечения