Файл: Отладка и тестирование программ: основные подходы и ограничения.pdf

ВУЗ: Не указан

Категория: Курсовая работа

Дисциплина: Не указана

Добавлен: 24.04.2023

Просмотров: 226

Скачиваний: 1

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

Тестирование редактирование большого количества подхода однотипных страниц

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

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

Далее Неудовлетворительным результатом будущим будет случай, примеру когда количество подобными всех ошибок считать на странице Весь превышает количество возможных найденных ошибок. временем Если количество самостоятельный найденных ошибок косвенно превышает количество говорит настоящих ошибок Джанет на странице, дурака то необходима постоянно доработка алгоритма своим обнаружения ошибок. В редактирования тестировании есть имитация понятия точности и качество полноты теста, должно вычисляются они уверенным следующим образом:

подается Точность тестирования = нагрузка Количество найденных взгляда программой ошибок * 100% / инструментарий Найденные ошибки Outlook Полнота тестирования = инсталляции Количество найденных воспроизводиться программой ошибок * 100% / снижению Количество всех документами ошибок на исправляющие странице

1. Для несанкционированного первого метода переменных тестирования на недостаточность вход подается начался список страниц, утилиты содержащий около ставится тысячи различных дальнейшую ссылок. Хорошим необходимого примером подобных основывается страниц являются потребностей страницы поискового Одной веб-сервиса, такого тестами как Google отчетов или Yandex нагрузка или страницы заказчики интернет-магазина.

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


2. правильных Для второго имел метода тестирования особенности на вход поддерживается подается список Финансы страниц содержащий нравятся пару десятков разбираются различных ссылок. неэффективно Для проведения уменьшает тестирования программы коде были выбраны Объектная страницы

таких Существуют сервисов как Верификация Youtube, Yandex, провал Adultmult и прочие. ненужных Результаты тестирования вызывающее приведены на срабатываний графике.

Applications – сложных сайтов, богатых клиентской логикой. С уверенностью можно сказать, что доля подобных сайтов такого типа в будущем будет только расти. Без умения тестировать такие сайты представленная программа потеряет свою эффективность, поэтому дальнейшее развитие в данном направлении необходимо. 8.2.

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

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

Также на многих сайтах используются различные версии для различных устройств, на данный момент практически у каждого крупного сервиса есть мобильная версия, или специально «облегченная» версия для устройств с плохой скоростью обмена 6данных через интернет. В дальнейшем планируется доработать алгоритмы кластеризации и идентификации ошибок с целью избежать данной проблемы. 8.3. Обратная связь и исключения

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


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

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

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

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

Заключение

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


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

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

В заключении себе и другим будущим программистам хочу дать следующие рекомендации:

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

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

Тесты следует готовить и для правильных, так и для неверных данных.


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

Модули должны подключаться к приложению только один раз; замена модулей существенно усложняет тестирование.

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

Список использованных источников

1 Глас Р. Руководоство по надежному программированию. М., Финансы и статистика, 2010.

2 Керман М. К. Программирование и отладка в Delphi. Пер. с англ. — М.: Издательский дом "Вильямc", 2013, 672 с.

3 Коликова Т.В., Котляров В.П. Основы тестирования программного обеспечения, М., Бином, 2010, 285 стр.

4 Лайза Криспин, Джанет Грегори Гибкое тестирование: практическое руководство для тестировщиков ПО и гибких команд. — М.: «Вильямс», 2010. — 464 с.

5 Майерс, Баджетт, Сандлер Искусство тестирования программ, 3-е. — М.: «Диалектика», 2012. — 272 с.

6 Пестриков В. М., Маслобоев А. Н. Delphi на примерах. — СПб.: БХВ-Петербург, 2014. — 496 с.

7 Синицын С. В., Налютин Н. Ю. Верификация программного обеспечения. — М.: БИНОМ, 2014. — 368 с.

8 Стивен Р. Delphi. Готовые алгоритмы / Род Стивене; - 4-е изд. - М.: ДМК Пресс; СПб.: Питер, 2010. - 384 с.

9 Тамре Л. Введение в тестирование программного обеспечения, М., Дрофа, 2015.

10 Фленов М. Программирование в Delphi глазами хакера. — СПб.: БХВ-Петербург, 2014. - 368 с.

11 Ховард М., Лебланк Д. Защищенный код: Пер. с англ, — 2-е изд., испр. М.: Издательско-торговый дом «Русская Редакция», 2014. — 704 стр.

Размещено на Allbest.ru

  1. Тамре Л. Введение в тестирование программного обеспечения, М., Дрофа, 20015.

  2. Глас Р. Руководоство по надежному программированию. М., Финансы и статистика, 2010.

  3. Майерс, Баджетт, Сандлер Искусство тестирования программ, 3-е. — М.: «Диалектика», 2012. — 272 с.

  4. Майерс, Баджетт, Сандлер Искусство тестирования программ, 3-е. — М.: «Диалектика», 2012. — 272 с.

  5. Глас Р. Руководоство по надежному программированию. М., Финансы и статистика, 2010.

  6. Глас Р. Руководоство по надежному программированию. М., Финансы и статистика, 2010.

  7. Майерс, Баджетт, Сандлер Искусство тестирования программ, 3-е. — М.: «Диалектика», 2012. — 272 с.

  8. Тамре Л. Введение в тестирование программного обеспечения, М., Дрофа, 2015.