Тестирование. Основные принципы и соглашения.

Здесь тестирование подразумевается именно как тестирование программного обеспечения. Естественно, ведь я все-таки разработчик... Чтобы не читать последующую простыню текста, можно просто послушать доклад моего коллеги - Сергея Яковлева, который выступал с докладом "Тестирование. Основные принципы и соглашения." В своем выступлении Сергей рассказывает в основном о модульном тестировании (unit-тесты).

Тестирование программного обеспечения - это процесс исследования или испытания программного продукта и у него обычно есть 2 цели:

  1. продемонстрировать соответствие программы поставленным требованиям
  2. выявить места, где программа может не соответствовать поставленным требованиям

При тестировании любого ПО нужно обращать внимание на следующие характеристики:

  • функциональная пригодность;
  • уровень производительности;
  • совместимость;
  • удобство пользования;
  • надёжность;
  • защищённость;
  • сопровождаемость;
  • переносимость (мобильность).

На самом деле есть очень много видов тестирования и, несомненно, я все не смогу освятить. Для полного изучения тематики по тестированию необходимо изучить целую книгу, а то и не одну. Я здесь перечислю и постараюсь описать те виды тестирования, с которыми может сталкиваться разработчик:

Объект тестирования

  • Функциональное тестирование - способность ПО в определённых условиях решать задачи, нужные пользователям
  • Тестирование производительности - проводится с целью определения, как быстро работает ПО или некоторый модуль под определённой нагрузкой. Также может служить для проверки и подтверждения других атрибутов качества системы, таких как масштабируемость, надёжность и потребление ресурсов. Развитие в этом направлении помогает разработчику учитывать производительность на стадии моделирования и проектирования системы, перед началом основной стадии кодирования.
    • Нагрузочное тестирование - определение производительности и времени отклика системы в ответ на внешний запрос с целью установления соответствия требованиям, предъявляемым к данной системе, например, система должна иметь возможность обслуживать одновременно 100 пользователей в определенном модуле
    • Стресс-тестирование - оценивает надёжность и устойчивость системы в условиях превышения пределов нормальной нагрузки, например, если модулем будет пользоваться одновременно не 100, а 250 пользователей
    • Тестирование стабильности - проверка работоспособности системы при длительном тестировании с ожидаемым уровнем нагрузки, например, когда эти 100 пользователей обслуживаются определенным модулем в течении нескольких часов
  • Конфигурационное тестирование
  • Юзабилити-тестирование - в основном это проверка интерфейса системы, то есть того, насколько предоставленный интерфейс удобен в использовании определенного модулем. В основном здесь привлекаются пользователи в качестве тестировщиков и полученные от них выводы суммируются.
  • Тестирование интерфейса пользователя - здесь имеется ввиду, что тестируется качество работы и кроссплатформенность интерфейса
  • Тестирование безопасности - здесь тестировщик играет роль взломщика. Ему разрешено все: попытки узнать пароль с помощью внешних средств; атака системы с помощью специальных утилит, анализирующих защиты; подавление системы (в надежде, что она откажется обслуживать других клиентов) - что-то вроде нагрузочного тестирования; целенаправленное введение ошибок в надежде проникнуть в систему в ходе восстановления; просмотр открытых данных в надежде найти ключ для входа в систему. Я не рекомендую делать тестирование безопасности своих разработок, потому что подсознательно разработчик будет тестировать те дырки, которые "закрыл". Лучше доверить это дело другому разработчику или в специализированный отдел тестирования. Известно, что при неограниченном времени и ресурсах хорошее тестирование безопасности взломает любую систему. Задача проектировщика системы — сделать цену проникновения более высокой, чем цена получаемой в результате информации.
  • Тестирование локализации - процесс адаптации программного обеспечения к культуре какой-либо страны. Как частность — перевод пользовательского интерфейса, документации и сопутствующих файлов программного обеспечения с одного языка на другой. Для локализации в английском языке иногда применяют сокращение «L10n». Где буквы «L» и «n» — начало и окончание слова Localization, а цифра 10 — количество букв между ними.
  • Тестирование совместимости - проверка корректной работоспособности приложения на разных системах ( Windows 7, Windows 10, Mac OS ) если это desctop-приложение или на разных браузерах ( Chrome, Firefox, Opera, IE ) если это web-приложение

Степень автоматизации тестирования

  • Ручное тестирование - моделирование тестировщиком поведения пользователя, нажимание различных кнопочек, ввод различной информации в поля данных. Очень часто в роли мануальщиков ( специалистов по ручному тестированию ) выступают сами пользователи.
  • Автоматизированное тестирование - используются специализированные программные средства или автотесты, написанные специально под данное приложение. Запускается по расписанию или при обновлениях тестируемого ПО. При выявлении ошибок могут определять уровень критичности ошибки и сигнализировать разработчику/тестировщику об ошибке с помощью email или SMS.
  • Полуавтоматизированное тестирование

Cтепени изолированности компонентов

  • Модульное тестирование (Unit-тестирование) - тип автоматизированного тестирования, при котором пишутся автотесты для каждого метода или функции программы и цель которых показать, что эти части продукта вполне работоспособны. Модульное тестирование позволяет быстро проверить не привело ли к ухудшению продукта последнее изменение кода. Облегчает обнаружение и устранение ошибок. Всегда делается программистами.
  • Интеграционное тестирование - проводится после модульного тестирования и предшествует системному тестированию. Смысл его в том, что отдельные методы и функции объединяются в группы и тестируются в группе.
  • Системное тестирование - выполняется на полной системе.
Информация
Автор webmancer Нравится 0
Рейтинг 1 Не нравится 0
Голосов 1 Прочитали 1
Дата 2016-02-11 09:00:00 В избранном 0
Ваша реакция

Только авторизованные пользователи могут участвовать в рейтингах, делать заметки и добавлять в избранное.

Зарегистрироваться

Авторизоваться

На рекомендательном сервисе WEBmancer.Org только зарегистрированные пользователи могут комментировать и оставлять рецензии. Авторизованный пользователь так же может ставить отметки книгам, фильмам и другим постам. Вести учет прочитанных книг и просмотренных фильмов. Добавлять посты в избранное и иметь к ним быстрый доступ.