Название: Поиск того, чего нет
Вид работы: доклад
Рубрика: Информатика и программирование
Размер файла: 15.06 Kb
Скачать файл: referat.me-133830.docx
Краткое описание работы: Часто существуют зависимости между количеством ошибок, относящихся к определенной области, и тем была ли эта область полностью протестирована. Также дыры могут быть в том, что показывают типы ошибок.
Поиск того, чего нет
Элизабет Хендриксон (Elisabeth Hendrickson)
Эта статья ставит очень важный вопрос «Чего здесь нет, что должно бы быть?». Для выявления «дыр проектирования и требований» применяется идея, похожая на выявление черных дыр. Например, часто существуют зависимости между количеством ошибок, относящихся к определенной области, и тем была ли эта область полностью протестирована. Также дыры могут быть в том, что показывают типы ошибок. Хендриксон подготавливает почву для поиска и советует как «искать там, где ничего нет».
«Папа, как находят черные дыры?»
Я задала этот вопрос много лет назад во время прогулки с моим отцом ясной зимней ночью, очарованная звездами. Отец посмотрел на меня, его руки были засунуты в карманы, наше дыхание было видно в холодном воздухе, и улыбнулся. «В самом деле, детка, так как они не могут видеть то, чего нет, они ищут там, где много пустоты (ничего)».
Идея такова: поиск чего либо путем просмотра пустоты.
Эта статья о том, как я искала дыры в проектировании и требованиях. Если при проектировании ничего не говорится о безопасности, никто не подумает о ней. Если нет требований от организатора, то, вероятно, организатор не задействован в процессе формирования требований.
Первый способ — это наблюдение за результатами тестирования. Если с определенной областью не сопоставлены ошибки, это говорит о том, что данная область не была протестирована. Конечно, если с некоторой областью сопоставлено много ошибок, это не означает, что она хорошо протестирована. Так что я также смотрю на тип ошибок. Достигают ли они сердца функциональности или они все поверхностные и несерьезные. Относятся ли ошибки к входным данным, переполнению буфера или длине пути? Я ищу указание на то, что в нашем тестировании существуют дыры — виды ошибок, которые еще не найдены.
Искать отсутствие информации не легко. Вы должны знать, что вы ожидаете увидеть, до того как сообщите, что что-то пропущено. Это означает, что вам необходим интеллектуальный список категорий ошибок, которые вы можете ожидать найти в тестируемом приложении: проблемы совместного доступа, ошибки искажения данных, временные вопросы и т.д. Ваш список зависит от тестируемого приложения.
Вам также необходимо в подробностях знать то, что уже просмотрено. Если вы просматривает ошибки, найденные ранее — читаете их прежде чем считать — вы можете искать шаблоны в тестировании, которые ведут к поиску ошибок. Только подсчет недостаточен.
По мере развития проекта поиск шаблонов пропущенных ошибок становится более трудным. Чем больше привязанных к областям ошибок, тем трудней помечать области, в которых наблюдается недостаток ошибок. И еще это время, когда оно становится критическим. Вы почти закончили. Вскоре, кое — кто из Исполнительного уровня начнет спрашивать вас, почему вы до сих пор не закончили. Следующая вещь, о которой вы знаете, это то, что ПО выложена и/или не выложено на Web. Это не подходящее время для выяснения, что никто не пытается пополнять каталог из двух браузеров совместно.
Один путь для поиска дыр тестирования.
Сведите ошибки в матрицу, как они хранятся в системе отслеживания ошибок. Вдоль одной стороны разделите тестируемое приложение на области. Далее сверху для всех областей разместите список всех категорий тестов. Например, если вы тестируете программу для редактирования, то вдоль стороны могут размещаться Средство Рисования, Средство ввода Текста, Вставка Картинок, Печать и т.д.
Категории сверху могут включать Отмену ввода, Drag and Drop, Международные Символы, Недостаток памяти и т.д. Вы можете иметь несколько десятков элементов на сторону, желательно, не больше тридцати. (Если ячеек будет слишком мало, вы не сможете получать необходимую информацию. Если слишком много, матрица станет слишком громоздкой). Все время кто — то добавляет ошибки, делайте отметки в соответствующих ячейках вашей матрицы. Вы ищите ячейки без отметок.
Эта матрица легкое средство для вашего собственного поиска черных дыр. Не пытайтесь занести слишком много информации в каждую ячейку. Даже попытка сжатия числа ошибок может оказаться слишком большой. Если вы пытаетесь отслеживать больше информации, чем одна отметка, поддержание матрицы в актуальном состоянии становится затруднительным и, вероятно, вы не сможете это сделать. Если вы используете отметки в ячейке только для хранения количества ошибок, пяти или десяти минут в день для чтения ошибок и пометок о них в ячейках будет достаточно.
Месяцы на проекте, и у вас есть карта, которая показывает количество ошибок по областям ПО и категории тестов. Сейчас вы можете находить дыры. Дополнительный бонус: Когда проект закончен, матрица может также обеспечивать информацию о слабых областях ПО, так что эти области могут быть улучшены в будущих проектах. Каждая особенность имела проблемы с граничными значениями?
Поиск чего — либо, путем просмотра пустоты — трудные и время поглащающие, но стоящие усилия. Области, где мы оставили не залатанные дыры, это то, что заставляет нас бегать кругами с огненной отдышкой, отчаянно пытаться загрузить патч для разгневанных пользователей, которые (патчи) раздуваются до апгрейда, яростно выкладывать Web сайт, который работает с различными браузерами.
Похожие работы
-
Коды Боуза-Чоудхури-Хоквингема
Коды Боуза-Чоудхури-Хоквингема (БЧХ) – класс циклических кодов, исправляющих многократные ошибки. Отличие методики построения кодов БЧХ от обычных циклических. Конкретные примеры процедуры кодирования, декодирования, обнаружения и исправления ошибок.
-
Когда прекращать тестирование программ?
Никто не сомневается в необходимости тестирования программ. Будь то небольшой учебный пример или целая информационная система. Вопрос только в том, сколько нужно тестировать и когда можно считать программу протестированной?
-
Точность систем автоматического управления
Порядок оценки точности системы автоматического управления по величине установившейся ошибки при типовых воздействиях, механизм ее повышения. Разновидности ошибок и методика их вычисления. Определение ошибок по виду частотных характеристик системы.
-
Определение связности графа на Лиспе
Двоичные деревья в теории информации. Двоичные кодовые деревья допускают интерпретацию в рамках теории поиска. Обоснование выбора, описание алгоритма и структур данных. Обоснование набора тестов. Построение оптимального кода. Сущность алгоритма Хаффмана.
-
Преобразования информации перед передачей её в канал связи
Постановка задачи. Разработка алгоритма решения задачи преобразования информации. Разработка программы. Руководство оператора.
-
Как дать отпор хакерам
Первое, что приходит в голову многим системным администраторам, когда они думают о защите своих сетей от атак злоумышленников из Интернета, это слово "брандмауэр". Брандмауэры (сетевые экраны) - неотъемлемая часть инфраструктуры защиты сети.
-
Моделирование надежности программного обеспечения
Запросы клиента по области возможных запросов к серверу. Программа для прогнозирования поведения надежности программного обеспечения на основе метода Монте-Карло. Влияние количества программ-клиентов на поведение программной системы клиент-сервера.
-
Построение и анализ простой эконометрической модели
Проверка наличия линейной связи между соответствующими показателями деятельности коммерческих банков Украины в модуле Multiple Regression ППП Statistica. Расчет теоретических значений зависимой переменной и ошибки модели, вид графика линейной функции.
-
Проектирование баз данных MS Access
Проектирование базы данных Access. Система управления базами данных. Создание и обслуживание базы данных, обеспечение доступа к данным и их обработка. Постановка задач и целей, основных функций, выполняемых базой данных. Основные виды баз данных.
-
Алгоритмические языки: обработка одномерных массивов
Работа с массивами, их ввод и вывод, организация программ циклической структуры. Способы описания и использования массивов, алгоритмы их сортировки, сортировка выбором и вставками. Алгоритмы поиска элемента в неупорядоченном и упорядоченном массивах.