Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
книги хакеры / Питер_Гудлиф_Ремесло_программиста_Практика_написания_хорошего_кода.pdf
Скачиваний:
16
Добавлен:
19.04.2024
Размер:
9.23 Mб
Скачать

 

 

 

 

hang

e

 

 

 

 

 

 

C

 

E

 

 

 

X

 

 

 

 

 

-

 

 

 

 

 

d

 

F

 

 

 

 

 

 

t

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

 

 

 

to

 

 

 

 

w Click

 

 

 

204m

 

 

 

 

w

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

.

 

 

 

 

 

.c

 

 

p

 

 

 

 

g

 

 

 

 

df

 

 

n

e

 

 

 

 

-xcha

 

 

 

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

 

E

 

 

 

 

X

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

 

 

 

 

to

 

 

 

 

 

Глава 8. Время испытанийClick

 

 

 

 

 

m

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

 

w

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

.c

 

 

.

 

 

 

 

 

 

 

 

p

 

 

 

 

g

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

-x cha

 

 

 

 

тестированием и помещающей его результаты в одном месте. Такая структура может контролировать, какие тесты проведены, а в более сложном варианте вести журнал всех проводившихся тестов. Сущест% вуют популярные средства для таких целей, например JUnit – стан% дартная система тестирования для Java.

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

Автоматизация – это действительно основа надежной разработки кода. Если в данный момент у вас отсутствует автоматизированный набор тестов, выступающий в качестве непрерывного регрессивного теста ва% шего кода, то создайте его. Качество вашей работы быстро повысится.

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

Анатомия провала

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

Конфуций

Как вы поступите, если тестирование обнаружит ошибку в програм% ме? Прежде чем сломя голову бросаться отлаживать ее, задержитесь

иоцените проблему. Это особенно важно, если вы не хотите (или не мо% жете) исправить ошибку сразу. Чтобы точно определить суть пробле% мы, что позволит вам или другому разработчику в будущем вернуться

ирешить ее, действуйте следующим образом:

1.Запишите, что вы пытались сделать в тот момент и какие действия вызвали сбой.

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

3.Опишите сбой. Полностью. Будьте предельно конкретны. Включи% те следующее:

контекст проблемы;

простейший способ ее воспроизведения;

сведения о повторяемости и частоте возникновения;