Категории
Тестирование. Основные принципы и соглашения.
Здесь тестирование подразумевается именно как тестирование программного обеспечения. Естественно, ведь я все-таки разработчик... Чтобы не читать последующую простыню текста, можно просто послушать доклад моего коллеги - Сергея Яковлева, который выступал с докладом "Тестирование. Основные принципы и соглашения." В своем выступлении Сергей рассказывает в основном о модульном тестировании (unit-тесты).
Тестирование программного обеспечения - это процесс исследования или испытания программного продукта и у него обычно есть 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 только зарегистрированные пользователи могут комментировать и оставлять рецензии. Авторизованный пользователь так же может ставить отметки книгам, фильмам и другим постам. Вести учет прочитанных книг и просмотренных фильмов. Добавлять посты в избранное и иметь к ним быстрый доступ.