2007-08-24

INTUIT: курс "Основы тестирования программного обеспечения"

Прошел ИНТУИТовский курс «Основы тестирования программного обеспечения». Хотя я благодарен автору за курс, надо признать, что курс не очень удачный, но другой альтернативы дистанционного курса (материал и тесты с проверками) ни на ИНТУИТе, ни где-либо еще найти не удалось. Основная проблема курса — неоправданные претензии на наукообразность, при описании ремесла тестирования. Да, постоянно «сложно о простом», «математикой о любви». Вообще, надо понимать, что в современной индустрии тестирования четко разделяется на «тестирование снизу»: модульное, интеграционное, юнит-тесты... и т.п. — то, чем занимаются программисты, то что должно быть дешевым и автоматизированным, и «тестирование сверху»: функциональное, тестирование «черного ящика», чем собственно и занимаются тестировщики и, что должно «плясать» от требований заказчика. А в середине ничего нет («нет там никакой ложки»). Поэтому обсуждать стратегии экономии тестов с точки зрения покрытия строчек кода — сейчас нонсенс: это гарантирует только нахождение заложенных обязательных ошибок типа «деления на константу-нуль». Автоматические тесты дешевы, и должны быть выполнены все, перед каждой сборкой, а еще лучше, чтобы они крутились постоянно («Continous Integration»). Ручные тесты дороги, но их выполнение определяется только стратегией «атаки на риски» по наиболее приоритетным требованиям заказчика, и важно собственно организовать этот процесс и учёт (метрики покрытия требований и т. п.).

Т. е. важно определить современные понятия тест-кейсов, их группировки в тест-сюиты, формирование планов тестирования, связь тест-кейсов с требованиями заказчика, какие метрики и как выводить из результатов прогонов тестов для заказчика и менеджеров. Ничего в этом нового нет, все это мусолилось еще в стандарте 1983 года: IEEE-829, «IEEE Standard for Software Test Documentation». В этом курсе, об этом начинают говорить только в «Практикуме 1», который обычно все пропускают (по предьявленному удостоверению курса я могу проверить, что сотрудник прочел «накрытые тестами» темы, но читал ли кто практикум проверить сразу нельзя). Т.е. как раз это и нужно вынести в основные блоки лекций, накрыть тестами (причем неплохо бы «оттестировать» тесты, ведь сейчас там очень безобразное соответствие тестов блокам лекций, постоянно требуется «забегание вперед»). Идеально было бы рассмотреть рассмотреть одну из «живых» и распространенных open-source систем, типа «QATraq» или «TestLink» (есть и другие). Тогда на выходе курса получался бы готовый продвинутый software инженер по качеству — и «с колес в бой».

Комментариев нет: