
Вопрос 23
естирования, были замечены особенности, присущие данному виду деятельности. Прошу знакомиться:
Тестирование демонстрирует присутствие дефектов, а не их отсутствие : Тестирование демонстрирует, что у продукта есть недостатки, т.е. в продукте есть дефекты. Тестирование не может доказать, что программа не содержит дефектов. Должное тестирование сокращает вероятность присутствия скрытых дефектов в тестируемом объекте. Даже если проблемы найдены в процессе тестирование, это не доказывает, что дефектов в продукте нет.
Исчерпывающее тестирование невозможно: Исчерпывающий тест, в котором все возможные входные данные и их комбинации предусмотрены, включая различные предусловия, невозможен. Программное обеспечение, разрабатываемое на практике, требовало бы астрономического числа тест кейсов. Поэтому каждый тест кейс – это всегда лишь образец. Вследствие этого, выполнение тестов должно быть контролируемо с учетом рисков и приоритетов.
Работы, связанные с тестированием, должны начинаться как можно раньше: Тестирование должно начинаться на ранних стадиях жизненном цикла программного обеспечения и должно фокусироваться на заданных целях. Это поспособствует более раннему нахождению дефектов.
Дефекты имеют тенденцию скапливаться группами: Дефекты не распределены равномерно, они имеют свойство «собираться группами». Поэтому, если много дефектов было найдено в одном месте, обычно еще больше дефектов могут быть обнаружены неподалеку. Не нужно критично относиться к данному правилу
“Пестицидный парадокс”: Если те же самые тесты выполняются снова и снова, они теряют свою эффективность. Новые, неизвестные до сих пор дефекты не будут найдены. Поэтому, чтобы сохранить эффективность тестов и победить «пестицидный парадокс», должны быть созданы новые тест кейсы, а старые изменены.
Тест ситуационно зависим: Две различные системы не должны быть протестированы одинаковым способом. Для каждой системы критерии завершения тестирования и т.д. должны быть выбраны индивидуально.
Ошибочность предположения, что отсутствие сбоев означает пригодность системы: Поиск сбоев и корректировка дефектов не гарантирует, что система в целом соответствует ожиданиям и потребностям пользователя. Вовлечение пользователей в процесс разработки на ранних стадиях и использование прототипов поспособствует избежанию проблем.
Вопрос 24
Отладка – это локализация и устранение ошибок. Она следует за успешным тестированием программного обеспечения.
Помимо средств создания и редактирования исходных текстов программ и их компиляции, в данной среде существует мощный отладчик с широким набором функций, в том числе:
пошаговое выполнение программы (трассировка);
установка контрольных точек прерывания выполнения программы (breakpoints);
просмотр и изменение содержимого переменных и отдельных блоков данных программы в ходе ее трассировки;
просмотр стека вызовов процедур и функций и др.
В случае аварийного завершения работы комплекса (runtime error) отладчик сам указывает строку исходного текста программы, содержащую ошибочный оператор. Для облегчения контроля за синтаксическими ошибками используемые программные среды поддерживают режим проверки синтаксиса вместо полной трансляции программы.
Защитное программирование – это такой стиль программирования, при использовании которого ошибки легко идентифицируются и обнаруживаются программистом.
Защитное программирование необходимо потому, что большинство ошибок в программе не всегда явным образом сказываются на работе программы и поэтому могут месяцы не быть обнаруженными. Средства отладки, встроенные в программу есть не что иное, как защитное программирование. Средства отладки, которые встроены в исходную программу называются стопором ошибок. Их назначение – сохранить «улики», идентификация ошибки и указание их местоположения.
Этот подход отличается от традиционного, при котором сначала устанавливается факт явной ошибки, а потом делается попытка проследить за процессом её возникновения в обратном порядке.