Please enable JavaScript.
Coggle requires JavaScript to display documents.
Инструментарий программиста, Время испытаний, Поиск ошибок - Coggle Diagram
-
Время испытаний
Советы
-
Тестировать нужно не только для того чтобы проверить наличие ошибок, но и убедиться в их отстутствии в последующих версиях.
Тестировать как можно раньше, т. к. чем позже, тем дороже.
-
Проверка кода включает:
- корректность выходных данных при всех вариантах выходных данных
- обработку отказа в случае неверных входных данных
Усложняют проверку:
- наличие условий, циклов, связанность, внешние зависимости, асинхронность
Типы тестирования:
- Модульное/блочное
- Тестирование компонент (блоки вместе)
- Комплексное (компонентны вместе)
- Регрессивное
- Испытание под нагрукой - расчетные нагрузки
- Испытание пиковыми нагрузками - пропускная способность
- Комплексное испытание под нагрузкой (прогон) - в течение продолжительного времени
- Юзабилити
Подходы к написанию тестов:
Для черного ящика выбор данных:
- хорошие входные (средние, нижние, верзние)
- плохие (слишком большие, маленькие, длинные, короткие, несовместимые)
- граничные (мин, макс)
- случайные
- 0!
Термины:
- ошибка - то, что программист сделал неправильно.
- неисправность - следствие ошибки.
Неисправность может себя не проявить.
- отказ - проявление неисправности.
- баг = неисправность.
Разница между тестированием и отладкой:
- тестирование нацелено на проверку наличия ошибок.
- отладка - выясняет причины неисправного поведения.
Поиск ошибок
Два пути исправления ошибок:
- Заплатка
- Концептуально решить проблему
Заплатка. Установите лимит, затем переходите к методическому способу
Методический:
1) Обнаружить ошибку
2) Воспроизвести ошибку
3) Определить место ошибки
4) Понять проблему (актуально для семантических ошибок)
5) Создайте тест
6) Испрвьте
7) Докажите, что вы ее исправили
Виды ошибок:
- ошибки компиляции
- аварии этапа исполнения
- неожиданное поведение
Ошибки по мере нарастания проблем безопаности:
- Синтаксические
- Ошибки сборки
- Элементарные семантические ошибки. Тут помогает статический анализ кода
- Семантические ошибки. Легко - если воспроизводятся. В основном связаны с работой с памятью.
Чтобы исправлять ошибки и не ломать другого кода, нужно внимательно концентрироваться на конкретном участке кода и при этом не выпускать общую картину.