Что такое Тестирование в ИТ?
- Категория: Что такое?
- – Автор: Игорь (Администратор)
Процесс создания программ в ИТ непрерывно связан с таким процессом как тестирование. Даже если программу пишет один человек, то ему всё равно необходимо проверить своё творение перед тем, как приложением будут пользоваться другие. Собственно, о том, что представляет собой тестирование, а так же о ряде нюансов, и пойдёт речь в данном обзоре.
Тестирование это
Тестирование - это проверка соответствия реальных и ожидаемых результатов поведения программного продукта, которая проводится на конечном наборе тестов.
Почему программы нужно тестировать? Потому что если этого не делать, то вполне вероятно, что пользователи программы (веб-сайта, системы и т.п.) будут сталкиваться с разного рода ошибками. И тут возникает как минимум два момента. Во-первых, пользователям такое не нравится. Во-вторых, если по прежнему не проводить тестирование, то такой подход легко может привести к бесконечным правкам кода, особенно если система большая. Тут важно понимать, что порой исправление ошибок может приводить к их увеличению. Где-то что-то подправили, но так как ничего не проверили, то из-за этой правки где-то что-то "отвалилось" в другом месте. Поправили в другом месте, ещё что-то "отвалилось" и так далее. В общем, тестирование это крайне важное действие.
Основные уровни тестирования
Рассмотрим основные уровни тестирования:
1. Компонентное или модульное тестирование - это когда тестируется отдельная часть программы, обычно самая минимальная и неотделимая. Скажем, отдельная функция, класс и прочее.
2. Интеграционное тестирование - это когда тестируется взаимодействие отдельных компонентов, подсистем или систем. Стоит отметить, что чем больше взаимосвязей, тем сложнее может быть такое тестирование.
3. Системное тестирование - это проверка того, что система соответствует необходимым требованиям. При этом существует два подхода, которые периодически совмещаются. Альфа-тестирование это когда тестирование происходит за счёт собственных сил. И бета-тестирование это когда предварительная версия программы даётся отдельным реальным пользователям "поковыряться". Как не сложно догадаться, бета обычно происходит после альфы. Если говорить о том, зачем нужно бета-тестирование, то дело в том, что всегда существует возможность не учесть какие-либо факторы. И лучше, если пользователи их обнаружат в ранних стадиях, чем потом, когда приложение уже будет в релизе.
Так же вам может быть интересен обзор Что такое Программирование?
Виды и методы тестирования
Рассмотрим несколько известных видов и методов тестирования.
По объекту тестирования:
1. Функциональное тестирование - это проверка того, что программы выполняют необходимые действия.
2. Тестирование производительности - это тестирование, которое позволяет выявить как быстро функционирует система под разной нагрузкой. Этот вид тестирования также подразумевает: нагрузочное тестирование (проверка системы в моменты пиковой нагрузки) и стресс-тест (проверка поведения системы в случаях, если превышаются допустимые пределы нормального функционирования).
3. Конфигурационное тестирование - это проверка того, что система функционирует при разных аппаратных и программных конфигурациях системы. Например, разные операционные системы, поддерживаемые драйвера, разные сборки компьютеров и так далее.
4. Тестирование системы на удобство использования - это проверка того, что системой удобно пользоваться. Суть в том, что приложение может выполнять свои функции, т.е. формально программа корректно действует, но при этом, например, от пользователя может требоваться слишком много лишних действий. Удобно ли такое? Вряд ли.
5. Тестирование безопасности - это проверка того, что программа (система, веб-сайт и т.д.) устойчива к различным видам взлома.
6. Тестирование локализации - это проверка того, что программное обеспечение адаптировано к культуре другой страны. Самый простой пример: слова в разных языках могут банально быть разной длины, поэтому после переключения локализации некоторые тексты могут перестать влезать в элементы интерфейса. Но этим данное тестирование не ограничивается. Например, могут быть иные стандарты, касающиеся форматов дат, времени, цифр и прочего.
По степени автоматизации:
1. Ручное тестирование - это те проверки, которые осуществляется только человеком (обычно моделирование и имитация действий пользователей). Кстати, это также касается и бета-тестирования, когда пользователи "жмакают" программу собственными "лапками".
2. Автоматическое тестирование - это такое тестирование, которое подразумевает, что проверки выполняются в полностью автоматическом режиме. Например, если функция складывает числа, то можно заранее задать несколько примеров и настроить автоматическую проверку того, что функция продолжает корректно складывать числа. Наличие человека в данном случае не особо-то нужно.
3. Автоматизированное тестирование - это тестирование, при котором часть действий выполняются какой-то программой, а часть человеком. Например, макросы (обзор программ). С помощью них можно быстро вставлять однотипные данные, что сокращает необходимое время для тестирования. Скажем, если для ввода данных в форму человек тратит 1 минуту и таких формочек нужно проверить 10 штук, то человек потратит 10 минут. Если с помощью макросов он будет вводить данные за 1 секунду, то человек потратит 10 секунд (время для переключения между формочками и т.д. не учитывается). Разница очевидна.
Тестирование программ: несколько советов
Вообще существует немало полноценной информации о том, как необходимо осуществлять тестирование. И уместить её в одном обзоре просто нереально. Но вот несколько советов, которые могут быть полезными:
1. Производите промежуточное тестирование программ. Суть в том, что чем раньше вы обнаружите ошибки, тем меньше может потребоваться времени для их исправления. Простой абстрактный аналог из жизни. Это как собирать мебель. Представьте, что вы не вкрутили какой-нибудь винтик (или ещё чего) и обнаружили это уже только после полной сборки. Это означает, что, возможно, вам нужно будет либо частично, либо полностью разобрать мебель. А если бы вы сразу проверяли, то этого бы и не потребовалось.
2. По мере создания приложения, создавайте чек-листы (а вообще лучше документацию). Дело в том, что в момент, когда вы создаёте какую-то часть программы, проще учесть все нюансы этой части, чем когда вы уже переделали десяток других компонентов приложения.
3. Тестирование это монотонность и рутина, и это нужно сразу учитывать. Например, если вы уставший, то заниматься тестированием это не самая лучшая затея. Монотонность и рутина легко могут привести к дефокусировке внимания, а значит к пропуску ошибок.
4. Не пытайтесь оттестировать всё, что только возможно. Помните, что ошибки всегда могут быть. Это не значит, что тесты не должны быть объёмным, речь о том, что чрезмерное тестирование может "пожирать" время и силы, но при этом не гарантировать результат. Даже если вы оттестируете каждую мелочь, всё равно будет существовать вероятность, что в программе где-то ошибки.
5. Старайтесь смотреть на программу (веб-сайт, систему и т.д.) глазами пользователя, когда занимаетесь тестированием. Абстрактный пример для понимания зачем это нужно. Можно просто вводить данные в разные формочки и только проверять соответствие результатов, а можно заметить какие-то неудобные вещи и обратить на них внимание. Не сложно догадаться, что во втором случае и система может стать лучше, и пользоваться приложением будет удобнее.
Также вам могут быть интересны обзоры Почему тестирование это куча времени? и ещё Почему в ИТ мелочи могут требовать много времени и сил?
Понравилась заметка? Тогда время подписываться в социальных сетях и делать репосты!
☕ Понравился обзор? Поделитесь с друзьями!