Site icon AppTractor

Тестирование приложений: распространенные причины отказа

Разработчик Джеймс Джеффери разобрал популярные причины отказа — почему разработчики не проводят тестирование приложений.

Давным-давно я ненавидел тестирование приложений. Оно не казалось мне важным и я не видел в этом цели. Тестирование казалось огромной тратой времени и денег. За всю мою карьеры никто не объяснил мне, почему и как я должен проводить тестирование. Я придумывал кучу причин для своего нежелания учиться, как и многие другие разработчики. Но я постепенно пришел к этим знаниями.

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

Все работает идеально. Зачем проводить тесты?

Я никогда не встречал программиста, создающего идеальный код, и не думаю, что такой человек существует. Возьмем, к примеру, крупнейшие технологические компании мира: Google, Facebook, Rockstar, Sony и др. Они нанимают лучших разработчиков мира, но и они пишут небезопасный код.

Мой ответ тем, кто считает свой код идеальным: Откуда вы это знаете? Вы его тестировали? Можете ли вы протестировать код и доказать, что он работает идеально?

Но я не знаю, что тестировать!

Протестируйте всё, кроме стороннего кода, который должен поставляться с собственными тестами.

Я приведу цитату из этого ответа на StackExchange:

  1. Тестируйте всё, что можете. Так вы поймете, что код перестал работать после внесения определенных изменений (в этом заключается самое большое преимущество автоматического юнит-тестирования).
  2. Тестируйте исключительные ситуации для сложного кода, в котором могут быть ошибки.
  3. Когда вы находите баг, напишите тест-кейс для него перед исправлением.
  4. Добавляйте тесты для исключительных ситуаций для менее важного кода, если у вас есть время.

Когда вы только начинаете программировать, может быть непонятно, с чего начинать тестирование приложений. Я всегда советую начинать с юнит-тестирования, интеграционного тестирования и регрессионного тестирования.

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

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

Тестирование приложений может быть сложным и непонятным

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

Как только вы научитесь тестировать и начнете чувствовать себя при этом комфортно, вы поймете, что это довольно просто! Возьмите хорошую книгу. Почитайте документацию. Обсудите с другими разработчиками в IRC/Slack/Discord и т.д.

Тестирование приложений увеличивает время разработки

С последней отговоркой связано распространенное заблуждение. Любой, кто только начинает тестировать, столкнется со сложностями. Будет некомфортно, и это нормально. На ранних стадиях это займет много времени. Продолжайте учиться, и постепенно вам станет проще. Главное здесь — сделать тестирование частью процесса разработки, чтобы оно стало привычкой.

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

Рекомендуемое чтение

Если вы начинающий разработчик или хотите узнать больше, я советую следующие книги, которые выбрал из своей библиотеки. Они фантастические!

 

Exit mobile version