Как найти все ошибки в программах и веб-проектах?
Часто те, кто заказывает разработку сайта или какой-то настольной программы у фрилансера или даже в софтверной конторе квалифицированными специалистами являются совсем не в IT-областях. И это понятно: иначе, наверное, они бы всё или, по карйней мере, всё самое важное — сделали бы самостоятельно. Неспециалисту сдать завершённый проект обычно проще, чем человеку понимающему: вот вам окошко браузера или готовой программы, пару кликов, странички переключаются, записи в БД добавляются. По рукам? И, да, как правило в такие моменты принимают проект, оплачивают его, начинают использовать в реальных условиях и вот там-то начинаются проблемы: мелкие, но неприятные, а иногда и фатальные ошибки вдруг появляются и мешают жить. Одни разработчики устраняют их бесплатно и оперативно, другие — за дополнительные деньги, ведь «проект-то вы приняли». Подобные ситуации наводят на мысль: тестировать ПО и сайты надо, притом заниматься этим должны независимые профессионалы.
Далее я немного расскажу о том, какого рода тестирование актуально для современных пограммных продуктов. В основном, конечно, речь будет о сайтах — они мне ближе, чем изолированные от мира настольные программы.
Функциональное тестирование — выявляет насколько запланированные функции в проекте реализованы и корректно работают. По сути, это самый важный и первый тест: получилось ли то, что так мучительно создавалось. Если есть хорошее техническое задание, то такое тестирование производить проще, иначе — надо сначала формально и подробно описать все функции и уж только потом проверять насколько корректно они реализованы. Кажется, что такой тест смог бы выполнить любой адекватный человек,взявший мышку в руки не впервые. Но нет. Вот вам пример: создал вам какой-нибудь фрилансер, допустим, блог — вы можете добавлять посты, а посетители — комментировать. Навскидку скажете, чего ж тут необходимо проверить? Подумайте 10 секунд. А теперь признайтесь, вспомнили вы о следующим моментах или нет: содержание комментариев должно фильтроваться так, чтобы туда не встроили вредоносный код или такую широкую картинку, что дизайн вашего блога разъедется. Неподготовленный человек сделал бы просто: написал комментарием с содержанием «бла-бла-бла», отправил, увидел, что комментарий добавился — всё работает. А вот, оказывается, нет, надо все мелочи учесть.
Конфигурационное тестирование — проверка сайта во всевозможных версиях браузеров с разными операционными системами и разрешениями экрана. А также, возможно, из разных точек земного шара. Да-да, 4 популярных браузера себе любой может установить, но ведь надо, например, убедиться, что под теми же браузерами, но с другой версией ОС, сайт тоже нормально заживёт. Есть виртуальные машины и прокси-серверы по всему миру, но если закахчик мало со всем этим знаком, притом не хочет однажды услышать жалобу от ценного клиента из другого региона, предпочитающего, например, MacOS и сидящего притом на медленном канале — надо чтоб тестирвание проводилось с умом и нужным охватом.
Нагрузочное тестирование — вывление узких мест веб-проекта, находящегося под высокой нагрузкой. Если сайт однажды станет популярным и туда придёт, к примеру, тысяча человек, то понятно, что вести он себя будет несколько иначе, чем в тот момент, когда его посещали вы да дизайнер. Результатом нагрузочного тестирования является не столько выявление передельно допустимой нагрузки, сколько выявление самых проблемных частей проекта, доработка которых позволит поднять планку.
Кроме того, оформилось важное направление по тестированию мобильных приложений и сервисов. И это актуально, потому что, например, мобильную версию сайта недостаточно проверить на одной платформе, а 40 телефонов разных марок и поколений покупать кому-то вряд ли захочется. Не забывайте, что мобильный интернет давно уже растёт, а значит, мобильная версия обязана быть у каждого серьезного или перспективного проекта.
Упояну ещё и про useability (удобство пользование) — его тоже надо тестировать, притом, в идеале, с фокус-группами из живых людей. Так что в этой задачи меньше чётких алгоритмов и тотальной автоматизации. Обратить внимание на этот компонент обязательно стоит. Один из бюджетных вариантов — как-то поощрять тех клиентов, которые будут вас снабжать развернутыми отзывами о сайте и объяснять где у них возникли проблемы.
А, в остальном, желаю всем безошибочных проектов.
У наших спонсоров можно скачать qip infium 2005 — один из самых популярных клиентов для ICQ.