Язык

Тестирование ПО

Что нужно знать о видах тестирования?

January 15, 2015

Software testing types

В цикле разработки программного обеспечения тестирование занимает очень важную роль. Оно направлено на обеспечение качества программного продукта путем его исследования и испытания. Цель тестирования – определить, соответствует ли тестируемое ПО предъявленным к нему заказчиком и разработчиками требованиям, а также выявить ситуации, в которых случается некорректное поведение ПО.

Тестирование в компании Soft Industry – это контролируемый эксперимент. Он заключается в проверке соответствия продукта заявленным и реализованным в действительности требованиям, а также в проверке корректности поведения ПО. Специалисты отдела QA проводят детальный анализ требований, составляют сопроводительную документацию, в случае необходимости предоставляют консультации. Чтобы оценить преимущества тестирования, следует более подробно изучить их типы и особенности.

Рассмотрим основные виды тестирования:

  • функциональное
  • тестирование удобства пользования
  • тестирование безопасности
  • нагрузочное
  • конфигурационное (кроссбраузерное, кроссплатформенное)
  • инсталляционное
  • регрессионное

Функциональное тестирование

Функциональное тестирование проводится с целью проверки способности ПО решать задекларированные задачи и соответствовать требованиям. Это очень важный вид тестирования поскольку от его проведения прямо зависит работоспособность ПО и, соответственно, количество посетителей. Например, трудно представить, что интернет-магазин, в котором невозможно зарегистрироваться, сделать заказ, либо найти нужный товар будет часто посещаемым. Во время проведения функционального тестирования специалистами отдела QA проверяется работоспособность ПО, его функциональная пригодность, целесообразность, полнота, корректность, соответствие стандартам, правилам и требованиям заказчика. В компании Soft Industry функциональное тестирование проводится по методу “черного ящика”, когда тестировщик взаимодействует с ПО через интерфейс, без доступа к коду.

Тестирование удобства пользования

В условиях большой конкуренции на рынке программных продуктов очень важно, чтобы ПО было не только функциональным, но и удобным в использовании, с интуитивно понятным интерфейсом, простой и однозначной навигацией, легко читаемыми шрифтами и приятной компоновкой. Если пользователю непонятно назначение или функционал продукта, он найдет более удобный аналог. В процессе юзабилити тестирования специалисты отдела QA помогут определить, насколько ваш продукт удобен в применении, найдут ошибки, допущенные при разработке интерфейса, и предложат, как сделать ваше ПО более удобным для пользователя. Это, в свою очередь, позволит привлечь новых клиентов и сохранить уже существующих.

Тестирование безопасности

Разработчикам и заказчикам нужно помнить о том, что программным продуктом могут захотеть воспользоваться не только потенциальные клиенты, но и хакеры. Последние могут попытаться незаконно проникнуть в систему с целью нарушения ее функционирования, получения доступа к ресурсам и базам данных (паролям, счетам и др.). Если попытки хакера будут успешными, бизнесу заказчика может быть нанесен значительный ущерб. В процессе тестирования безопасности специалистами компании Soft Industry проверяется уязвимость ПО к XSS, Code injections (SQL, PHP и др.), XSRF / CSRF (Request Forgery), Authorization Bypass. Таким образом, тестирование безопасности дает возможность найти уязвимые моменты программного продукта до того, как ими воспользуется хакер.

Нагрузочное тестирование

При разработке ПО очень важно обеспечить стабильность его работы. Например, заказчик рассчитывал на нагрузочный предел 10 000 пользователей но не посчитал нужным провести нагрузочное тестирование перед выпуском ПО. Вполне возможно, что он недополучит прибыль только из-за того, что на самом деле ПО выдерживает нагрузку только в 500 посетителей.Существует и вероятность того, что и те 500 вскоре откажутся от ПО, которое постоянно зависает. В процессе нагрузочного тестирования специалистами отдела QA с помощью инструментов автоматизации определяется нагрузка (количество пользователей, среднее время отклика сервера, скорость обработки запросов на сервере и др.), которую может выдержать ваше ПО. Это даст возможность в будущем избежать неприятных сюрпризов.

Конфигурационное (кроссбраузерное, кроссплатформенное) тестирование

Разработчику, как и заказчику, очень трудно предвидеть, какой браузер будет использовать посетитель сайта, какое разрешение экрана будет на его устройстве, или какую ОС он предпочтет. Поэтому очень много программных продуктов разрабатывают с условием кроссбраузерности и кроссплатформенности. Важно, чтобы ПО корректно работало во всех предусмотренных конфигурациях системы. Тестировщиками компании Soft Industry в процессе конфигурационного тестирования проверяется работа ПО на разных ОС (Windows, Linux, Mac OS, Android, iOS), совместимость ПО с заявленным в требованиях оборудованием. Для веб ориентированного ПО выполняется проверка корректности отображения в популярных браузерах (Internet Explorer, Opera, Firefox, Crome, Safari) с разными разрешениями экрана.

Инсталляционное и регрессионное тестирование

При проведении инсталляционного тестирования специалистами отдела QA проверяется возможность корректной установки, обновления и удаления ПО. Этот вид тестирования очень важен, так как в случае некорректной инсталляции существует риск потери пользовательских данных или вывода ОС из строя. Регрессионное тестирование направлено на проверку работоспособности ПО после исправления ошибок. Во-первых, проверяется воспроизведение найденных ранее ошибок. Во-вторых — весь остальной функционал, так как часто в процессе исправления он может быть поврежден, даже если до этого работал корректно.

Если по каким-то причинам на этапе разработки ПО заказчик или разработчики решили отказаться от тестирования, это не значит, что его не будет. Этап тестирования будет осуществляться не в процессе разработки, а уже на введенном в эксплуатацию ПО самими пользователями или хакерами. Стоит обратить внимание, что такой процесс уже трудно назвать контролируемым. Возникает большая вероятность того, что может пострадать бизнес заказчика (недовольный функционалом пользователь, неудобный интерфейс, продукт не выдерживает нагрузки, сломанный сайт и др.). Таким образом, не стоит пренебрегать возможностью улучшения качества своего программного продукта.