Добавлен: 25.04.2023
Просмотров: 454
Скачиваний: 2
Тестирование производительности. Тесты производительности проверяют, удовлетворяет ли системное приложение требованиям по производительности. Применяя тестирование производительности, можно замерить и составить отчеты по таким показателям, как скорость передачи входных и выходных данных, общее число действий по вводу и выводу данных, среднее время, затрачиваемое базой данных на отклик на запрос, и интенсивность использования центрального процессора. Как правило, для автоматической проверки степени производительности, проводимой в рамках тестирования производительности, используются те же инструменты, что и при тестировании перегрузок.
Тестирование удобства использования. Тесты удобства использования направлены на подтверждение простоты применения системы и того, что пользовательский интерфейс выглядит привлекательно. Такие тесты учитывают человеческий фактор в работе системы. Тестирующему необходимо оценить приложение с точки зрения конечного пользователя.
3.0 Методы отладки ПО
программный обеспечение тестирование отладка
Отладка программы так или иначе представляет собой рассмотрение и логический анализ доступной информации о ошибках. Значительная часть ошибок обнаружается при помощи косвенных признаков и вдумчивого исследования тестовых результатов. Обычно для этого применяются:
- Ручное тестирование;
- Метод дедукции;
- Метод индукции;
- Обратное прослеживание.
Первый и наиболее рутинный и простой способ, ручной тест. При нахождении проблем нужно провести тестовую программу вручную, используя коммутируемый тест, над работой, в которой обнаружили саму ошибку. Такой метод хоть и довольно неплох по эффективности, но из-за абсолютной несовместимости с крупными программами, а также тех, в которых находятся комплексные вычисления, этот метод используют в основном как компонент для других методов устранения неполадок.
Второй способ, дедуктивный метод строится на формировании причин, по которым могут появляться конкретные проявления ошибок, а затем исследовании таких причин, чтобы исключить такие, которые противоречили бы данным которые уже в наличии. Если все такие причины исключены, необходимо подготовить дальнейшие тесты продукта исследования. Иначе, если причины все же имеются, самую вероятную гипотезу пытаются доказать. Если такая гипотеза объясняет выявленные признаки ошибок или ошибки, то задача выполнена. В противном же случае начинается выяснение следующей причины
Третий способ, метод индукции базируется на доскональной проверке самих симптомов ошибки, проявляющихся как отчеты об ошибке, или неправильные итоги вычислений. В случае, когда программа просто «виснет», фрагмент проявления ошибки стараются вычислить, базируясь на последних действиях пользователя. Затем эти данные правильным образом организуют, пристально анализируют, проверяя необходимый фрагмент кода. В случае подтверждения гипотезы, данные про ошибку детализуют, в - противном пытаются выдвинуть иную гипотезу.
Наиболее важный этап такой системы, это именно выявление самих симптомов ошибки. Изучая информацию про ошибку, стоит задокументировать все, что вы знаете о проявлениях этой ошибки, причем выделять необходимо как типы ситуаций, когда фрагменты с ошибкой нормально выполняются, так и те, в которых ошибка проявляется. В том случае, если гипотезы после анализа не появляются, требуется получить дополнительную информацию про ошибку. Выявить её (дополнительную информацию) можно попытками проведения похожих тестирований.
Методика обратного прослеживания. Для небольших программ эффективно применение метода обратного прослеживания. Начинают с точки вывода неправильного результата. Для этой точки строится гипотеза о значениях основных переменных, которые могут привести к получению результата. Затем, исходя из этой гипотезы, делаются предложения о значениях переменных в предыдущей точке. Процесс продолжается до тех пор, пока причина ошибки не будет выявлена.
3.1 Методы и средства получения доп. информации
Для получения дополнительной информации об ошибке можно выполнить добавочные тесты или использовать специальные методы и средства:
Отладочный вывод
Интегрированные средства отладки
Независимые отладчики
Отладочный вывод. Метод требует включения в программу дополнительного отладочного вывода в узловых точках. Узловыми считают точки алгоритма, в которых основные переменные программы меняют свои значения. Например, отладочный вывод следует предусмотреть до и после завершения цикла изменения некоторого массива значений. (Если отладочный вывод предусмотреть в цикле, то будет выведено слишком много значений, в которых, как правило, сложно разбираться.) При этом предполагается, что, выполнив анализ выведенных значений, программист уточнит момент, когда были получены неправильные значения, и сможет сделать вывод о причине ошибки.
Данный метод не очень эффективен и в настоящее время практически не используется, так как в сложных случаях в процессе отладки может потребоваться вывод большого количества - «трассы» значений многих переменных, которые выводятся при каждом изменении. Кроме того, внесение в программы дополнительных операторов может привести к изменению проявления ошибки, что нежелательно, хотя и позволяет сделать определенный вывод о ее природе.
Интегрированные средства отладки включают в себя большинство современных средств программирования (Delphi, Builder C++, Visual Studio и прочие) которые обеспечивают наиболее эффективную отладку. Они позволяют:
Выполнять программу по шагам, причем как с заходом в подпрограммы, так и выполняя их целиком.
Предусматривать точки остановки.
Выполнять программу до оператора, указанного курсором.
Отображать содержимое любых переменных при пошаговом выполнении.
Отслеживать поток сообщений и так далее.
Применять интегрированные средства в рамках среды достаточно просто. Используют разные приемы в зависимости от проявлений ошибки. Если получено сообщение об ошибке, то сначала уточняют, при выполнении какого оператора программы оно получено. Для этого устанавливают точку остановки в начало фрагмента, в котором проявляется ошибка, и выполняют операторы в пошаговом режиме до проявления ошибки.
Аналогично поступают при «зависании» компьютера.
Если получены неправильные результаты, то локализовать ошибку обычно существенно сложнее. В этом случае сначала определяют фрагмент, при выполнении которого получаются неправильные результаты. Для этого последовательно проверяют интересующие значения в узловых точках. Обнаружив значения, отличающиеся от ожидаемых, по шагам трассируют соответствующий фрагмент до выявления оператора, выполнение которого дает неверный результат.
Для уточнения ошибки можно проанализировать машинный код, флаги, представления программы и значений памяти в шестнадцатеричном виде.
Заключение
Идеальных программ не существует. Как собственно и метода полностью предотвратить вероятность ошибки. Однако современный мир не стоит на месте и разрабатывает все новые и новые способы и проверки кода, все сильнее совершенствуются уже существующие. Иногда дорабатывается какой-то старый метод, иногда используется сочетание старого и нового, иногда только нового, но факт того, что прогресс в тесте и отладке систем движется, безумно жонглируя десятками способов проверок, и сочетаний этих способов.
Само планирование теста тяжелый и трудоемкий процесс, в котором тебе необходимо балансировать на грани между оптимизацией времени, и попыткой предотвратить большое количество ошибок.
В немалой степени на это количество влияет также человеческий фактор. Ошибка в коде, опечатка или невнимательность зачастую преумножает баги и дефекты в несколько раз. И хотя автоматизация процесса и понижает требуемое для выполнения количество однотипных действий, но на неё саму тратиться время, что иногда может просто не окупиться.
Погоня за эффективностью, начавшаяся еще при разработке самых первых электронно-вычислительных машин, калькуляторов, миникомпьютеров и пр. Продолжается и сейчас.
Определение объемов работы, нисходящие и восходящие подходы, целостное тестирование, методы «сэндвича», «белых и черных коробок», ручное тестирование, методы дедукции и индукции, методика обратного прослеживания, отладочные выводы и многие другие способы и подходы к нахождению, локализации, предотвращению и, самое главное, исправлению ошибок были разработаны за это время. Некоторые из них основываются только на действиях человека, некоторые зависят от запрограммированной им системы тестирования. Со всем этим я ознакомился при написании курсовой работы, и хочу пожелать читающим это, грамотного умения исправлять ошибки не только в коде, но и реальной жизни.
Список использованных источников
- Бейзер Б. Тестирование черного ящика. Технологии функционального тестирования программного обеспечения и систем [текст] / Б. Бейзер; - Питер, 2004, 320 с. ISBN 5-94723-698-2.
- Брауде Э.Д. Технология разработки программного обеспечения [текст] / Э.Д. Брауде; - Питер, 2004, 656 с. ISBN 5-94723-663-X.
- Винниченко И.В. Автоматизация процессов тестирования [текст] / И. В. Винниченко; - Питер, 2005, 208 с. ISBN 5-469-00798-7.
- Канер С. Тестирование программного обеспечения. Фундаментальные концепции менеджмента бизнес-приложений [текст] / С. Канер; - ДиаСофт, 2001, 544 с, ISBN 966-7393-87-9.
- Калбертсон Р. Быстрое тестирование [текст] / Р. Калбертсон, К. Браун, Г. Кобб; - Вильямс, 2002, 384 с. ISBN 5-8459-0336-X.
- Коликова Т.В. Основы тестирования программного обеспечения. Учебное пособие [текст] / Т.В. Коликова, В.П. Котляров; - Интуит, 2006, - 285 с. ISBN 5-85582-186-2.
- Касперски К. Техника отладки программ без исходных текстов [текст] / К. Касперски; - БХВ-Петербург, 2005, 832 с. ISBN 5-94157-229-8.
- Макгрегор Д. Тестирование объектно-ориентированного программного обеспечения. Практическое пособие [текст] / Д. Макгрегор, Д. Сайкс; - ТИД «ДС», 2004, 432 с. ISBN 966-7992-12-8.
- Плаксин М. Тестирование и отладка программ - для профессионалов будущих и настоящих [текст] / М. Пласкин; - Бином. Лаборатория знаний, 2007, - 168 с. ISBN 978-5-94774-458-3.
- Роберт М. Быстрая разработка программ: принципы, примеры, практика [текст] / М. Роберт, Д. Ньюкирк; - Вильямс, 2004, 752 с. ISBN 5-8459-0558-3.
- Фолк Д. Тестирование программного обеспечения [текст] / Д. Фолк, Е. К. Нгуен, С. Канер; - Диасофт, 2003 , 400 с. ISBN 966-7393-87-9.
- Элфрид Д. Автоматизированное тестирование программного обеспечения. Внедрение, управление и эксплуатация [текст] / Элфрид Д., Джефф Р., Джон П.;- Лори, 2003, ISBN 5-85582-186-2.