Тестирование – один из этапов работы над программным обеспечением. О том, для чего нужно тестировать программное обеспечение, какие существуют уровни тестирования, а также для каких областей тестирование наиболее актуально AllMoldova рассказал Евгений Галамага – директор компании Allied Testing.
Что такое тестирование и для чего оно применяется?
Результат любой работы, в том числе и разработки программного обеспечения, должен быть качественным. Именно поэтому после завершения разработки программы желательно её протестировать. Я говорю желательно, а не обязательно потому, что аудитория, для которой готовится программа может быть специфической, и в определенных случаях некоторые ошибки могут быть не критическими. Например, если речь идет о курсовой работе для университета – цена ошибки одна, а если речь идет о проектах для медицины – цена совсем другая: ошибка в программе может обернуться летальным исходом.
Существует достаточно много областей, где ошибки являются критичными. В такой организации как NASA, например, на одного разработчика приходится до восьми проверяющих. Также критичными ошибки являются в такой области как финансовый сектор, торговля ценными бумагами. Мы занимаемся тестированием именно в этой сфере.
Расскажите об этапах тестирования.
Чтобы проиллюстрировать нашу работу, можно привести достаточно понятный пример из журналисткой практики. После того, как журналист подготовил текст, он может проверить себя сам – это будет субъективная проверка. Также он можт отдать свою работу на проверку редакторам и корректорам его издания – это будет более объективная проверка. Но самая независимая проверка будет в том случае, если этот текст будет отдан профессионалам из компании, специализирующейся на проверке текстов. Точно так же происходит и с разработкой программного обеспечения: небольшие проекты тестируют сами разработчики, более серьезная проверка – проверка в той же компании, отделом, специализирующимся на тестировании, и наиболее объективный уровень – проверка сторонними организациями, такими как наша компания.
Если говорить о процедуре тестирования, то сначала компания-заказчик ставит задачу, формулирует бизнес-требования и отдает их либо разработчикам, либо и разработчикам и нам. После ознакомления с бизнес-требованиями, даже не видя самой программы, мы начинаем продумывать сценарии тестирования. Далее мы документируем сценарии, чтобы структурировать работу и, выполняя каждый из этапов в дальнейшем, формировать отчет о тестировании.
Может ли тестирование гарантировать отсутствие ошибок в дальнейшей работе программы?
Есть аксиома – полностью протестировать какую-либо программу невозможно. При тестировании мы выявляем наиболее критические области – те фрагменты, которые будут использоваться чаще всего. Именно их мы исследуем наиболее тщательным образом. На своем опыте я точно знаю – мне до сих пор не встречалось программное обеспечение, где не было бы ошибок. Однако всё зависит от того, как эта ошибка отражается на конечном результате. Решение о критичности той или иной ошибки принимается самим заказчиком. Именно он определяет насколько фатальна та или иная ошибка и как она отразится на его бизнесе.
Что Вы можете сказать об образовании и обучении молодых специалистов в этой области?
Среди выпускников ВУЗов бывают интересные ребята. Однако проблема молдавского высшего образования в области IT всё же остается – материал в ВУЗах оторван от реальности. Мы стараемся залатать эту брешь. Наша компания сотрудничает с Политехническим институтом и Государственным Университетом – у них есть курс по тестированию. Кроме этого, мы читаем свои, дополнительные курсы в этих институтах.
Когда мы пришли на молдавский рынок в 2005 году, компаний, специализирующихся на тестировании ПО в Молдове не было. Поэтому нам приходилось готовить специалистов самостоятельно. Входные критерии в нашей компании – это знание основ, а также общая сообразительность. Остальным специфическим навыкам для работы в тестировании мы обучаем сами. У нас есть отработанная программа подготовки кадров. Конечно, есть риск что пройдя такую подготовку в нашей компании, человек может уйти, но у нас такое случается достаточно редко. Курсы, которые мы читаем в университете – открыты для всех. Конечно, у нас есть и коммерческие цели, однако мы никого не обязываем работать у нас после прослушивания данного курса. Мы идем на осознанный риск.
Какие существуют виды тестирования?
Классифицировать тестирование можно по-разному. Различают функциональное, нагрузочное, интеграционное тестирование, unit-testing и user acceptance testing.
Самый высокий уровень тестирования - user acceptance testing: здесь выполняется проверка ожиданий пользователя. Мы смотрим на продукт глазами конечного потребителя. Далее мы проверяем соответствие функциональным требованиям, сформулированным бизнес-аналитиками. Следующий уровень – это интеграционное тестирование. Самый низкий уровень - unit-testing: в этом случае мы смотрим на программу глазами разработчиков, проверяем исходный код и т.д.
Всё это – разные уровни тестирования. Те ошибки, которые можно выявить с помощью одного из видов тестирования, не видны при применении другого. Поэтому применяются все способы тестирования.
Повлиял ли мировой финансовый кризис на область тестирования?
Кризис повлиял на индустрию в целом. Снизились объемы разработки, соответственно и снизились объемы тестирования ПО. На нас в данном случае кризис отразился даже сильнее – мы работаем с трейдинговыми компаниями, а они значительно пострадали в ходе кризиса.
Почему вы работаете именно с трейдинговыми компаниями?
Я уже говорил, что в некоторых областях ошибки бывают более критичными, в некоторых – менее. Одна из областей, где ошибки являются наиболее критичными и соответсвенно, которая дает возможность заниматься тестированием – это финансы. Кроме этого, продавать себя легче как специалиста в одной определенной области. Мы давно специализируемся именно в этой области и знаем о различных нюансах такой работы.
Цимблер Марина