Научная статья на тему 'РАЗРАБОТКА МЕТОДИКИ И СИСТЕМЫ ОТЛАДОЧНОГО ПРОГРАММНОГО КОМПЛЕКСА ДЛЯ ТЕСТИРОВАНИЯ ЛАБОРАТОРНЫХ РАБОТ'

РАЗРАБОТКА МЕТОДИКИ И СИСТЕМЫ ОТЛАДОЧНОГО ПРОГРАММНОГО КОМПЛЕКСА ДЛЯ ТЕСТИРОВАНИЯ ЛАБОРАТОРНЫХ РАБОТ Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
30
3
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
ПРОГРАММНЫЕ ПРОДУКТЫ / МЕТОДЫ ТЕСТИРОВАНИЯ / ОПТИМИЗАЦИЯ В ТЕСТИРОВАНИИ / ПРОГРАММНЫЙ КОМПЛЕКС

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Лаврентьев С.А.

В этой статье были изучены и описаны методы по тестированию программ. Из них были выбраны самые оптимальные и максимально подходящие. В результате на основе выбранных методов был создан программный комплекс, позволяющий автоматизировать проверку студенческих лабораторных работ.

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

ELABORATION OF METHODS AND SYSTEMS DEBUGGING OF SOFTWARE COMPLEX FOR TESTING OF LABORATORY WORKS

In this article, methods for testing programs have been studied and described. The most optimal and the most suitable ones were chosen. As a result, based on the selected methods, a software package was created which allows to automate testing of student laboratory works.

Текст научной работы на тему «РАЗРАБОТКА МЕТОДИКИ И СИСТЕМЫ ОТЛАДОЧНОГО ПРОГРАММНОГО КОМПЛЕКСА ДЛЯ ТЕСТИРОВАНИЯ ЛАБОРАТОРНЫХ РАБОТ»

УДК 004.588

Лаврентьев С.А. студент магистрант 2 курса Космический факультет МФ МГТУ им. Н. Э. Баумана Россия, г. Мытищи РАЗРАБОТКА МЕТОДИКИ И СИСТЕМЫ ОТЛАДОЧНОГО ПРОГРАММНОГО КОМПЛЕКСА ДЛЯ ТЕСТИРОВАНИЯ ЛАБОРАТОРНЫХ РАБОТ Аннотация: В этой статье были изучены и описаны методы по тестированию программ. Из них были выбраны самые оптимальные и максимально подходящие. В результате на основе выбранных методов был создан программный комплекс, позволяющий автоматизировать проверку студенческих лабораторных работ.

Ключевые слова: Автоматизированное тестирование, программные продукты, методы тестирования, оптимизация в тестировании, программный комплекс.

Lavrentyev S.A. graduate student 2 course Space Faculty MF MSTU them. NE Bauman Russia, Mytishchi

ELABORATION OF METHODS AND SYSTEMS DEBUGGING OF SOFTWARE COMPLEX FOR TESTING OF LABORATORY WORKS Annotation: In this article, methods for testing programs have been studied and described. The most optimal and the most suitable ones were chosen. As a result, based on the selected methods, a software package was created which allows to automate testing of student laboratory works.

Keywords: Automate testing, software products, testing methods, optimization in testing, software complex.

В настоящее время технологии стремительно развиваются и оказывают огромное влияние на жизнь человека и без них мы не представляем себе жизнь. Без современных технологий нельзя обойтись. Они влияют на все сферы нашей повседневной жизни В банках нас встречают роботы-консультанты, готовые помочь в любой момент, в больнице пациентам делают операции без хирургического вмешательства. Кроме этого, так же коснулись изменения и системы образования. Она тоже претерпела изменения следуя современным технологиям. В частности, каждый класс в современной школе обладает интерактивной доской, проектором и конечно же компьютером. Появились новые предметы и дисциплины.

Корректировки и изменения в университетском учебном плане очень сильно повлияли на его структуру и состав. В следствии чего появились

курсы по изучению языков высокого уровня, которым раньше не уделялось большего внимания или вовсе не изучались на таких направлениях подготовки как 08.03.01.

Создание нового курса по изучению языка высокого уровня PYTHON привело к образованию большого количества нового материала и новых требований к проверки лабораторных работ. Чтобы облегчить работу преподавателя было решено автоматизировать проверку.

Появилась необходимость в создании такого отладочного программного комплекса, который был бы способен проверять лабораторные работы студентов на наличие ошибок в вычислении или в логике построения кода лабораторной работы и должен это делать в автоматизированном режиме.

Основные требования к разрабатываемому программному комплексу:

- автоматическое создание тестов таким образом, чтобы входные данные удовлетворяли условиям и ограничениям лабораторных работ.

- автоматические тесты проверяли условия и ограничения в коде программы (пройдены все основные ветки условий и соблюдаются ограничения в лабораторной работе, чтобы проверить работоспособность и наличие ошибок в логике построения программы).

- просмотр на оптимизацию кода лабораторной работы.

Рассматриваемые методы, с помощью которых будет осуществлена

автоматизация проверки лабораторных работ.

- метод черного ящика - тестирование программы или системы при котором не используется информация о внутреннем устройстве. В этом случае программу можно протестировать путем изучения выходных данных, подавая конкретные входные значения. Тестируется выполняемые ее функции.

- метод белого ящика - отличается от метода черного ящика, тем что учитывает внутреннее функционирование и логику работы кода.

- метод серого ящика -

Автоматизированное тестирование - часть процесса тестирования использует программные средства для выполнения тестов и проверки результатов выполнения. Это помогает сократить и упростить процесс и время уходящее на тестирование.

Достоинства тестирования.

- повторяемость и однообразность выполнения тестов - исключен фактор ошибки при проверки программы

- высокая скорость проверки в сравнении если бы программу тестировал человек

- созданные модули могут быть использованы многократно для одинакового типа тестируемых программ - меньше времени требуется на поддержку автоматической системы проверки

- автоматическое создание отчетов о результатах тестирования

Недостатки тестирования.

- повторяемость и однообразность выполнения тестов - некоторые ошибки в коде тестируемой программы или в расчетах при ее создании могут быть не найдены автоматической системой проверки.

- затраты на поддержку - создание модулей для тестирования программ требуется меньше времени, чем затраты на ручное тестирование. Но чем больше требуется проверить программ разных по структуре, ограничениям и условиям, тем больше нужно создать модулей для их тестирования.

Применение автоматизированного тестирования

- проверка правильности поиска данных

- проверка данных, требующих точных математических расчетов

- рутинные операции, такие как переборы данных

Уровни автоматизированного тестирования.

1. Функциональное тестирование (тестирование пользовательского интерфейса) - это такое тестирование, при котором проверяется способность программы в определенных условиях решать задачи, необходимые в данный момент пользователям

Функциональные требования определяют, что именно делает ПО, какие задачи оно решает

- точность (англ. accuracy).

- способность к взаимодействию (англ. interoperability).

- соответствие стандартам и правилам (англ. compliance).

- защищённость (англ. security).

Недостатки функционального тестирования.

- не подходит для тестировании нетривиальных задач

2. Модульное тестирование (тестирование на уровне кода) -тестирование, при котором проверяются на наличие ошибок и корректность отдельные части исходного кода программы.

Достоинства модульного тестирования

- изменение в коде программы, позволяющие сохранить общую функциональность. Это нужно для упрощения и облегчения понимания ее работы.

- подход к тестированию «снизу вверх»: сначала тестируя отдельные части программы, а затем программу в целом.

- изоляция взаимосвязанных ресурсов - если для работы тестируемого класса понадобиться взаимодействовать с другим или подключение к базе данных, то программист переписывает эту часть и вставляет в свой код. Тогда тестируемый модуль становиться менее зависим от системы.

Недостатки модульного тестирования

- нельзя при таком методе обрабатывать сложный код

- сложность в подборке тестов для каждой ветки программы. Во многих случаях качество моделирования определяется приблизительно, а последний результат считается опорным. Иначе, если найдены расхождения

новый результат проверяют вручную.

- сложность в создании изолированного окружения, если программа взаимодействует с портами и таймерами системы или присутствуют части, не подлежащие модульному тестированию. Такие окружения обычно делают предельно простыми или рассчитанными на конкретное тестирование.

- ошибки определяются только в модулях программы по отдельности это значит что ошибки, исполняемые в нескольких модулях, не будут найдены.

- Обязательное использование системы контроля версий ПО. Если программа не проходит тест, то нужно использовать ее раннюю версию, которая проходила тестирование, для устранения ошибок. Игнорирование приведет к увеличению роста ошибок в тестовых результатах.

3. Разработка через тестирование - метод разработки программы при котором сначала создается тест, потом пишется простая программа, которая должна пройти этот тест. После программа совершенствуется, добавляется новый функционал потом так же проходит тестирование.

- Изначально пишется такой код, который изначально способен проходить тест. Но в этом случае тест будет проходить всегда и быть бесполезным.

- Если программа не проходит тест, то нужно использовать ее раннюю версию, которая проходила тестирование, для устранения ошибок. Игнорирование приведет к увеличению роста ошибок в тестовых результатах.

Недостатки метода

- Есть задачи, которые не возможно решить только путем прохождения тестирования.

- Метод сложно применять, когда требуется прохождение функциональных тестов.

- Требуется больше времени на разработку и поддержку

- Большое количество тестов не даст полной гарантии качества программного продукта.

Выбранный метод

Каждый из рассмотренных методов имеет свои достоинства и недостатки. Метод разработки через тестирования не подходит, поскольку требуется предварительное создание тестов для лабораторных работ, прежде чем их тестировать и кроме того требуется много времени на разработку и поддержку. Метод функционального тестирования не подходит поскольку для тестирования программы и поиска ошибок в вычислениях требуется большое количество тестов (которых не всегда достаточно) чтобы понять в каком именно месте находиться ошибка. Метод модульного тестирования не подходит поскольку требуется обязательное использование системы контроля ПО и если ошибки будут исполняться одновременно в нескольких модулях, то такую ошибку не найдет.

Для создания отладочного программного комплекса будет

использоваться смесь методов состоящая из функционального тестирования и модульного тестирования, для того чтобы компенсировать недостатки каждого из них.

Достоинства

- сгенерированные тесты будут проверять программу исходя из условий и ограничений программы по конкретным граничным условиям и при этом не надо будет рассматривать код тестируемой программы.

- проверка тестируемой программы будет проведена автоматически

Недостатки

- затраты на поддержку - модули для генерации тестов для каждой новой лабораторной работы придется создавать заново

- автоматизированное тестирование не дает полной гарантии в правильности написании кода программы и отсутствии ошибок в вычислениях

Компенсирование недостатков

Несмотря на требуемые затраты на поддержание автоматически тестируемого программного комплекса, количество лабораторных работ в учебном плане считается конечным.

Использованные источники:

1. Плаксин М.А.: Тестирование и отладка программ для профессионалов будущих и настоящих 2-е издание - Москва, БИНОМ. Лаборатория знаний, 2013. - 169с.

2. Иванов Е.С.: Разработка методики тестирования программного обеспечения: магистерская диссертация - Екатеринбург, 2014. - 117с.

i Надоели баннеры? Вы всегда можете отключить рекламу.