-- Виды тестирования по функциоанльности

Функциональное тестирование (Functional testing)

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

Нефункциональное тестирование (Non-functional testing)

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

Тестирование производительности (performance testing)

- тестирование, которое проводится с целью определения, как быстро работает система или её часть под определённой нагрузкой. Также может служить для проверки и подтверждения других атрибутов качества системы, таких как масштабируемость, надёжность и потребление ресурсов. Делится на:
        Нагрузочное тестирование (load testing) - это простейшая форма тестирования производительности. Нагрузочное тестирование обычно проводится для того, чтобы оценить
поведение приложения под заданной ожидаемой нагрузкой. Этой нагрузкой может быть,
например, ожидаемое количество одновременно работающих пользователей приложения,
совершающих заданное число транзакций за интервал времени.

        Стресс-тестирование (stress testing) обычно используется для понимания пределов
пропускной способности приложения. Этот тип тестирования проводится для определения
надёжности системы во время экстремальных или диспропорциональных нагрузок и
отвечает на вопросы о достаточной производительности системы в случае, если текущая
нагрузка сильно превысит ожидаемый максимум.

        Тестирование стабильности (stability/endurance/soak testing) проводится с целью
убедиться в том, что приложение выдерживает ожидаемую нагрузку в течение длительного
времени. При проведении этого вида тестирования осуществляется наблюдение за
потреблением приложением памяти, чтобы выявить потенциальные утечки. Кроме того,
такое тестирование выявляет деградацию производительности, выражающуюся в снижении
скорости обработки информации и/или увеличением времени ответа приложения после
продолжительной работы по сравнению с началом теста.

Тестирование безопасности (security testing)

– это проверка того, что приложение не даёт прав на работу с конкретной информацией пользователям не имеющих для этого доступа. 
Самый распространенный способ тестирования здесь – создание пользователей и групп
пользователей с различным уровнем доступа и последующая попытка работы с той
информацией, которая должна/не должна быть доступна для них. Всех способов взлома кратко
не описать и привести какой-то общий пример не представляется возможным, но для этого
существует масса отдельных статей и книг в интернете. По личному опыту, советую вам
научиться применять следующие атаки на приложения: XSS атака, SQL Injection, DoS and DDoS атака. Для работы с десктопными приложениями и способами их защиты от взлома важно будет ознакомиться с реверсивной инжинерией, дизассемблированием программ и последующим внедрением своего кода в исполняемый файл, работой противоотладочного ПО,
инсталляционных пакетов. Как видите, тестирование безопасности может потребовать от вас
очень серьезной подготовки по части технических знаний в разрабатываемой функциональности.

Тестирование локализации (localization testing)

- это проверка адаптации системы к культурным особенностям какой-то страны. Например, в рамках этого тестирования проверяется корректность формата отображаемых времени и даты (ДД/ММ/ГГ чч:мм:сс), валюты (через точку или запятую, количество цифр после знака) и т.д. Также проверка перевода текстов в приложении на язык какой-то страны. Очень часто тестирование интернационализации подразумевают как часть тестирования локализации, так что этот название вы будете встречать редко.

Тестирование совместимости (compatibility testing)

- это проверка того, что приложение нормально работает на определённых платформах. Чаще всего, в отношении программного обеспечения, – это проверка работы приложения под различными операционными системами. Сюда относится и проверка совместимости с другим программным обеспечением.
Например, вас просят проверить новый сервер приложений, который прослушивает порт 443 на вашем компьютере, чтобы получать входящие сообщения от клиентов. В то же время, на вашем компьютере может быть установлена и запущена программа для общения в интернете – Skype, которая по умолчанию использует тот же порт. Скорее всего вы даже не сможете запустить свой сервер, поскольку необходимый ему порт уже будет занят Skype-ом. Это значит, что эти два продукта несовместимы друг с другом и в отчете о тестировании вы должны будете упомянуть этот факт.

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

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

Тестирование пользовательского интерфейса (UI testing) 

- это проверка внешнего вида приложения. Этот вид проверки выполняется в соответствии с требованиями к приложению.
Здесь требованиями могут выступать заранее подготовленные художниками наброски внешнего вида окна приложения (mock-ups). Сравнивая текущую реализацию с такими набросками вы ищете отличия в дизайне и отчитываетесь о найденных противоречиях. Наличие затребованного и заранее определенного дизайна интерфейса пользователя отличает это тестирование от проверки удобства использования.

Комментариев нет:

Отправить комментарий

Что нужно, чтобы найти первую работу тестировщика ПО Часто задаваемые вопросы на позицию QA Trainee/Junior Теория тестирования. Сод...