Я когда-то писал об атомарных тестах и "комплексных тестах".
Попробую пояснить "разницу"...
Я сейчас работаю над одним БОЛЬШИМ куском проекта (ов).
Над "кодогенерацией из модели" в "целевые языки".
Там есть "комплексные" тесты, которые "грузят ВСЮ большую модель" и "как-то" её трансформируют.
И эти тесты служат - "дымовым анализатором".
Если они сломались, то значит - "что-то пошло не так".
Так о чём речь?
Эти "комплексные тесты" - сломались и показали ОШИБКУ. Уже - ПОЛ-ДЕЛА. Но!
Что с этим делать?
"Комплексные тесты" - продолжительные по времени, да и "отлаживать их тяжело".
Вот тут на помощь приходят "атомарные тесты".
Которые - "очень маленькие". Буквально "две три строки".
Но которые тестируют примитивы "грамматики целевого языка".
Что я делаю?
Я сначала запускаю "атомарные тесты" и смотрю, что "в них ничего не сломалось".
Потом я запускаю - "комплексные тесты" и смотрю - "а не сломалось ли что в них".
Если "сломалось", то я вычленяю проблему и пишу "атомарный тест".
ЕЩЁ ОДИН.
И "отлаживаюсь" на комплекте "атомарных тестов".
Которые "проходят за микросекунды".
Входные и выходные данные я для них придумываю "из головы".
Когда я отладился на "атомарных тестах" - я опять пускаю "комплексные тесты".
Ну и процесс - ИТЕРАТИВНЫЙ.
И "по ходу пьесы набирается набор "атомарных тестов", которые позволяют "всё реже и реже" пускать "комплексные тесты"".
Как-то так...
"Комплексные тесты" - порождают атомарные, а "атомарные" - валидируют "комплексные".
Попробую пояснить "разницу"...
Я сейчас работаю над одним БОЛЬШИМ куском проекта (ов).
Над "кодогенерацией из модели" в "целевые языки".
Там есть "комплексные" тесты, которые "грузят ВСЮ большую модель" и "как-то" её трансформируют.
И эти тесты служат - "дымовым анализатором".
Если они сломались, то значит - "что-то пошло не так".
Так о чём речь?
Эти "комплексные тесты" - сломались и показали ОШИБКУ. Уже - ПОЛ-ДЕЛА. Но!
Что с этим делать?
"Комплексные тесты" - продолжительные по времени, да и "отлаживать их тяжело".
Вот тут на помощь приходят "атомарные тесты".
Которые - "очень маленькие". Буквально "две три строки".
Но которые тестируют примитивы "грамматики целевого языка".
Что я делаю?
Я сначала запускаю "атомарные тесты" и смотрю, что "в них ничего не сломалось".
Потом я запускаю - "комплексные тесты" и смотрю - "а не сломалось ли что в них".
Если "сломалось", то я вычленяю проблему и пишу "атомарный тест".
ЕЩЁ ОДИН.
И "отлаживаюсь" на комплекте "атомарных тестов".
Которые "проходят за микросекунды".
Входные и выходные данные я для них придумываю "из головы".
Когда я отладился на "атомарных тестах" - я опять пускаю "комплексные тесты".
Ну и процесс - ИТЕРАТИВНЫЙ.
И "по ходу пьесы набирается набор "атомарных тестов", которые позволяют "всё реже и реже" пускать "комплексные тесты"".
Как-то так...
"Комплексные тесты" - порождают атомарные, а "атомарные" - валидируют "комплексные".
Комментариев нет:
Отправить комментарий