Тестирование сегодня представляет собой отдельную дисциплину
- Беспальчук Игорь
- руководитель отдела технологического развития CUSTIS
В журнале «CIO (Компьютерра)», № 11 (ноябрь) 2011 — опубликован обзорный материал Артема Стародумова «Верификация ИС: жизнь после внедрения». Публикуем комментарий Игоря Беспальчука, который вошел в этот обзор.
Тестирование сегодня представляет собой отдельную дисциплину с богатой историей, собственными методами и инструментами. И эта дисциплина развивается с каждым годом. В этих условиях все сильнее проявляются тенденции к отделению тестирования ПО от разработки не только в области специализации, но и в области устройства общего рабочего процесса. Сначала появляется отдельный специалист по тестированию, чуть позже отдел тестирования, и наконец — тестирование отдается на аутсорсинг другой организации.
Важно понимать, что хотя подобное разделение повышает эффективность на отдельном участке (а именно — на участке тестирования), оно может негативно повлиять на эффективность процесса разработки продукта в целом. Представьте себе, что хирург и анестезиолог — это не два специалиста, совместно, бок о бок заботящиеся о пациенте, а два отдела, перевозящие пациента из одной палаты в другую в ходе операции, чтобы один мог вырезать опухоль, а другой — добавить немного анестетика! Эта метафора хорошо иллюстрирует, что, несмотря на введение отдельной специализации тестировщика, при организации процесса разработки жизненно важно, чтобы программный продукт не нужно было «перекидывать через стену» в отдел тестирования.
Поэтому в нашей компании не существует выделенных отделов, замыкающих процесс тестирования в себе. Вместо этого мы включаем специалистов по тестированию в единую команду разработки продукта. Это позволяет радикально сократить цикл «разработка — тестирование». Первое, неформальное тестирование может осуществляться еще до того, как разработчик завершил работу над задачей, — он просто просит тестировщика, сидящего в той же комнате, бегло посмотреть на промежуточный результат, и зачастую это позволяет выявить проблемы на самом раннем этапе. Организовать подобное взаимодействие между отделами, а тем более — между двумя организациями, гораздо сложнее.
Кроме того, концентрируясь на работе над отдельным продуктом, тестировщик накапливает необходимые знания о нем и предметной области. Как показывает наш опыт, эффективность тестирования зависит не только и даже не столько от знаний в области технологий и методов тестирования, сколько от знания продукта и предметной области. Это особенно сильно проявляется в проектах со сложными предметными областями (такими как банковская) и динамично меняющимися требованиями. Кроме собственно тестировщика, такой специалист может играть роль инженера сопровождения, что позволяет ему лучше понимать потребности пользователей, а значит, лучше тестировать! Ведь кроме проверки продукта на соответствие формальным спецификациям, тестирование подразумевает проверку на соответствие общим критериям качества, в том числе касающихся удобства использования.
Важно отметить, что отсутствие выделенных отделов тестирования не означает, что в компании не должно быть центра компетенции по тестированию. Специалистам в этой области также необходим обмен знаниями и обучение, а самой дисциплине — развитие и исследования. Центр компетенции может заниматься собственными проектами по развитию методологии и инструментария, не становясь при этом тормозящим звеном в процессе производства качественного ПО.
***
Любые правки этой статьи будут перезаписаны при следующем сеансе репликации. Если у вас есть серьезное замечание по тексту статьи, запишите его в раздел «discussion».
Репликация: База Знаний «Заказных Информ Систем» → «Тестирование сегодня представляет собой отдельную дисциплину»