ВВЕДЕНИЕ 4
1 МЕТОДЫ ТЕСТИРОВАНИЯ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ И
ПРИМЕРЫ РЕШЕНИЙ В ОБЛАСТИ ТЕСТИРОВАНИЯ САЙТОВ 6
1.1 Виды тестирования 6
1.2 Существующие решения 10
1.3 Описание необходимого функционала 11
1.4 Модернизация первоначальной идеи 12
Выводы по разделу 12
2 МАТЕМАТИЧЕСКАЯ МОДЕЛЬ НЕЙРОННОЙ СЕТИ 13
2.1 Математическая модель свёрточной нейронной сети 13
2.2 Функция активации 15
2.3 Математическая модель сети LSTM 16
2.4 Функция потерь 20
2.5 Метод оптимизации 20
Выводы по разделу 22
3 АРХИТЕКТУРА НЕЙРОННОЙ СЕТИ 23
3.1 Общая структура нейронной сети 23
3.2 Свёрточные и субдискретизирующие слои 24
3.3 Рекуррентные слои 24
3.4 Слой транскрипции 25
3.5 Исходные данные 25
3.6 Оборудование и программное обеспечение 26
Выводы по разделу 26
4 ОПИСАНИЕ РАБОТЫ ПРОГРАММЫ 27
4.1 Регрессионное тестирование 27
4.2 Т естирование домена 34
4.3 Пример работы нейронной сети 36
Выводы по разделу 38
ЗАКЛЮЧЕНИЕ 39
БИБЛИОГРАФИЧЕСКИЙ СПИСОК 40
ПРИЛОЖЕНИЕ 1 ТЕКСТ ПРОГРАММЫ
В современном мире технологий ежедневно появляется большое количество программ, решающих различные задачи и выполняющих разнообразные функции. Таким образом, пользователю предоставляется широкий выбор программ, позволяющих достичь нужную ему цель. Вполне очевидно, что программа, обладающая лучшими показателями качества по сравнению с аналогами, будет более востребованной среди заинтересованных пользователей. В связи с этим для разработчиков были установлены определенные стандарты качества ПО. Для проверки соответствия данным стандартам проводится специальная процедура, называемая тестирование программного обеспечения.
Тестирование ПО - это процедура, при которой осуществляется проверка соответствия между реальным и ожидаемым поведением ПО. Данная процедура выполняется на конечном наборе данных, которые подбираются определенным образом.
Сама по себе тема тестирования ПО относительно нова и связана с бурным развитием систем автоматизированной разработки ПО и технологий в 90-е года в США. Среди производителей ПО интерес к данной теме ежедневно возрастает, так как усиливается конкуренция, следовательно, необходимо уделять больше внимания качеству продукции, сохраняя баланс с приемлемой ценой. Кроме того, вопрос о качестве имеет особую ценность, ведь сегодня пользователю требуется не только комфортная работа с той или иной программой, но и надежность, благодаря которой возможна автоматизированное управление оборудованием в больницах, диспетчерскими системами, воздушными суднами, атомными реакторами и т. д.
На сегодняшний день, обеспечение высокого качества разрабатываемого ПО
• это первоочередная задача большинства компаний, так как это позволяет «обойти» конкурентов и заслужить доверие клиентов. Именно поэтому любая компания по разработке ПО прежде чем выпустить свою продукцию на рынок , осуществляет ее тестирование, направленное на обнаружение и устранение как можно большего числа ошибок. При этом компании могут иметь собственные отделы тестирования или осуществлять данную процедуру, обращаясь к услугам сторонних организаций.
Цели тестирования заключаются в следующем:
• повышение вероятности правильной работы приложения, предназначенного для тестирования
• повышение вероятности соответствия приложения, предназначенного для тестирования, необходимым требованиям;
• предоставление актуальной информации о текущем состоянии продукта.
Таким образом, целью данной работы является реализация приложения для автоматизации процедуры тестирования сайта. Для достижения данной цели необходимо решить следующие задачи:
• выполнить обзор методов тестирования и существующих решений;
выбрать наиболее подходящий метод тестирования;
разработать математическую модель, необходимую для реализации выбранного метода;
выполнить программную реализацию;
осуществить проверку работу программы, проверив сайт на наличие некорректных ссылок
В результате проделанной работы было разработано приложение для автоматизации тестирования сайта.
Данное приложение осуществляет регрессионный вид тестирования, а также проверку сайта на наличие некорректных ссылок. Для регрессионного тестирования реализована сверточная нейронная сеть, которая позволяет обнаруживать рекламу, присутствующую на сайте. Таким образом, достигается более высокое качество тестирования по сравнению с уже реализованными приложениями, предназначенными для тестирования сайта.
В ходе работы были решены следующие задачи:
1) выполнен обзор методов тестирования и существующих решений;
2) выбраны основные методы - регрессионное тестирование и проверка на наличие некорректных ссылок в сочетании с нейронной сетью, позволяющей повысить качество тестирования, путем обнаружения рекламы;
3) разработана математическая модель нейронной сети, позволяющей
обнаружить рекламу на сайте;
4) выполнена программная реализация;
5) осуществлена проверка работы программы, путем проверки сайта на наличие некорректных ссылок.
Разработанное приложение имеет следующие преимущества:
1) обладает удобным интерфейсом;
2) достигается высокая скорость работы;
3) реализована фильтрация рекламы.
К недостаткам можно отнести то, что осуществляется обнаружение только текстовой рекламы, при этом текст должен быть на английском языке. В дальнейшем планируется продолжение работы для расширения функционала приложения, а также его реализация под другие ОС.
1 Канер, С. Тестирование программного обеспечения. Фундаментальные концепции менеджмента бизнес-приложений: Пер. с англ./Джэк Фолк, Енг Кен Нгуен. - К.: Издатество «ДиаСофт», 2001.-544 с.
2 Krizhevsky A. ImageNet Classification with Deep Convolutional Neural Networks / I. Sutskever, G. Hinton // USA, Neural Information Processing Systems. -
2012.
3 Jaderberg M. Deep structured output learning for unconstrained text recognition/ K. Simonyan, A. Vedaldi, A. Zisserman// USA, International Conference on Learning Representations. - 2015.
4 Jaderberg M. Reading text in the wild with convolutional neural networks / K. Simonyan, A. Vedaldi, A. Zisserman // International Journal of Computer Vision, V.116, №1, P. 1-20. - 2015.
5 Ciresan D. Multi-column deep neural networks for image classification / U. Meier, J. Schmidhuber // Conference on Computer Vision and Pattern Recognition. - 2012
6 Baoguang S. An End-to-End Trainable Neural Network for Image-based Sequence Recognition and Its Application to Scene Text Recognition / B. Xiang, Y. Cong // USA, Cornell University Library. - 2015.
7 Stutz D. Understanding Convolutional Neural Networks / Germany, Seminar Report, Fakultat fur Mathematik, Informatik und Naturwissenschaften. - 2014.
8 URL:http://www.wildml.com/2015/11/understanding-convolutional-neural- networks-for-nlp/ (дата обращения 25.04.18)
9 Graves A. Speech recognition with deep recurrent neural networks / Canada, Vancouver, International Conference on Acoustics, Speech and Signal Processing. -
2013.
10 Hochreiter S. Long short-term memory / J. Schmidhuber // Neural Computation vol. 9, №8, P. 1735-1780, 1997.
11 Wang K. End-to-end scene text recognition / B. Babenko, S. Belongie // Spain, Barcelona, International Conference on Computer Vision, 2011.
12 URL: http://colah.github.io/posts/2015-08-Understanding-LSTMs/ (дата
обращения 30.04.18)
13 Bengio Y. Learning longterm dependencies with gradient descent is difficult / P. Y. Simard, and P. Frasconi. // NN, V.5, №2, P. 157-166, 1994.
14 Gers F.A. Learning precise timing with LSTM recurrent networks / N. N. Schraudolph, and J. Schmidhuber // JMLR, V.3, P. 115-143, 2002.
15 Zhiyong C. Deep Stacked Bidirectional and Unidirectional LSTM Recurrent Neural Network for Network-wide Traffic Speed Prediction / R. Ke // USA, Cornell University Library. - 2018.
16 Frinken V. Deep BLSTM Neural Networks for Unconstrained Continuous Handwritten Text Recognition / France, Nancy, International Conference on Document Analysis and Recognition. - 2015.
17 Graves A. Connectionist Temporal Classification: Labelling Unsegmented Sequence Data with Recurrent Neural Networks / S. Fernandez, F. Gomez, J. Schmidhuber // USA, Pittsburgh, International Conference on Machine Learning. - 2006.
18 Zeiler M. Adadelta: an adaptive learning rate method // USA, Cornell University Library. - 2012.
19 Schrimpf M. Should I use TensorFlow / USA, Cornell University Library. - 2016.