Прошлым летом я начал искать работу на рынке вычислительной техники. В феврале я получу степень по компьютерным наукам (по крайней мере, я так думаю сейчас) и начал искать работу инженера-компьютерщика.

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

"Хорошо, проблема решена, но я не вижу тестов, куда их поместить?".

На этот вопрос я ответил:

"Я не разрабатывал никаких тестов, я не изучал их на своей степени".

Это невероятно, вам не кажется? Что-то столь же важное, как тестирование, требуется от меня на каждом собеседовании, и я не имею об этом ни малейшего представления, потому что меня учат в университете (если вы хотите узнать, чему я научился в университете, посмотрите мою статью: «4 года работы с компьютером Научная степень за 5 минут». Вам понравится).

По этой причине я написал эту статью, чтобы дать вам простое руководство, которое мне хотелось бы получить перед моими первыми собеседованиями. Краткое, ясное и простое для понимания руководство, описывающее основы тестирования.

Ты хочешь избежать того, что случилось со мной? Тогда давайте начнем.

Тестирование? Что такое тестирование?

Если поискать в Интернете, можно найти несколько сложных определений тестирования. Однако, только наблюдая за словом, можно было представить его значение. Простое определение, которое мне нравится, это…

Тестирование в индустрии программного обеспечения — это процесс проверки того, соответствует ли разработанное нами программное обеспечение ожидаемым требованиям и не содержит ли оно ошибок или багов.

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

Почему мы должны изучать тестирование?

Представьте, что вы покупаете новую микроволновку, но при запуске она не работает. Вы идете в магазин и сообщаете о проблеме. Человек в магазине говорит вам, что он не вернет вам деньги, потому что вы просите микроволновую печь, а не указанную рабочую микроволновую печь. Разве это не будет неприятно?

Конечно будет! И это потому, что вам не нужно запрашивать работающую микроволновую печь, рабочая и безошибочная — это минимум, на который следует рассчитывать при покупке продукта. По этим причинам важно узнать о тестировании и протестировать программное обеспечение, которое мы разрабатываем.

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

Теперь вы понимаете, почему это важно? Идеальный! Но… Как мы можем сделать этот процесс?

Как мы можем протестировать нашу сеть, приложение…?

Бьюсь об заклад, вы сейчас думаете, что для тестирования вашего приложения вам нужно вручную попробовать все входные данные и всю комбинаторику, которая есть в вашем программном обеспечении. Но мне жаль говорить вам об этом, но… Вы ошибаетесь. Если вы не хотите тратить все свое время на ручную и ужасную повторяющуюся работу, ручные тесты вам не подходят.

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

Код, который мы должны написать для создания наших тестов, будет меняться в зависимости от используемого языка программирования. Как правило, существует несколько библиотек или фреймворков для создания автоматических тестов для нашей программы. Я рекомендую вам поискать в Интернете что-то вроде: testing in JavaScript».

В любом случае, здесь у вас есть несколько ресурсов:

Опять же, держу пари, что сейчас вы думаете примерно так:

"Хорошо, я собираюсь автоматизировать свой тест, но в каком порядке я должен следовать? В моем приложении есть API, графический интерфейс, логин и множество интересных функций…».

На этот вопрос нет абсолютного ответа, но есть некоторые методологии, разработанные для обеспечения «правильного» порядка в процессе тестирования. Например, общеизвестным способом проведения нашего теста является следование Тестовой пирамиде.

Тестовая пирамида

Тестовая пирамида — это графическая метафора, введенная Майком Коном в его книге "Succeeding with Agile" для обозначения порядка и важности, которые мы должны учитывать при кодировании наших тестов. Тем не менее, это не идеальная формула. Есть много людей, которые изо всех сил пытаются правильно применить эту пирамиду на практике.

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

Последние мысли

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

Способ написания наших тестов будет зависеть от языка, который мы собираемся использовать. Но мы знаем, что будем разрабатывать автоматические тесты, используя методологию, предназначенную для придания процессу логического порядка. Тестирование — важная часть нашей роли как разработчиков программного обеспечения, и мы должны придавать ему должное значение. Мне нравится подход, который позволяет не утомлять процесс тестирования: думать о том, как я могу сломать только что созданное программное обеспечение.

Знали ли вы о тестировании раньше? Вы пишете тесты на работе?

Выводы 👋

Спасибо! Большое спасибо за прочтение статьи. Хотелось бы узнать ваше мнение по этому поводу, так что не пишите в комментариях, чувак, я вас прочитаю.

В свою очередь, если эта статья помогла вам вспомнить, вы можете похлопать в ладоши и поделиться ею со своими товарищами. И не забудьте подписаться на меня, если не хотите пропустить ни одну из моих статей.

Об авторе🤓

Две мои страсти — технологии и общение, поэтому я использую любую возможность, чтобы поговорить или написать о технологиях.

Хотите подключиться? 📲

📩 [email protected]

📸Инстаграм

💼LinkedIn

📹 Ютуб

🐦Твиттер

Спасибо! ❣️