top of page

Тестирование на отказ и восстановление устройства IoT

Вы когда-нибудь слышали, как кто-то говорил: «Мы не можем это проверить - это вне нашей компетенции»? Такие фразы иногда звучат в командах, но именно это помогает посмотреть на сложившуюся ситуацию под другим углом.

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


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


Рассмотрим тему на примере компании, которая разрабатывала новый встроенный продукт, он был своего рода революционным в интернет-индустрии (IoT), и наиболее важной частью этого был разработанный алгоритм.

До этого времени тестировщики в компании использовали только функциональное тестирование, но алгоритм нового продукта невозможно было протестировать только с помощью него.

Коренная проблема была в отсутствии общих возможностей тестирования. У тестировщиков не было никакого механизма или навыка для проверки этого алгоритма. Вот тогда и начался квест.


Изучение исходного кода


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

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

Тогда стало понятно, что отладчик можно использовать в качестве инструмента тестирования для проверки правильности алгоритма.

Важно помнить, что вы не должны каждый раз проводить тестирование по шаблону. Цель состоит в том, чтобы протестировать продукт, используя любые средства. Даже если придется ввести ошибку в код.

Анализ граничных значений в действии

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

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


Демонстрация ценности тестирования


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

Это был риск, который мы приняли: мы делали ставку на поиск актуальных проблем в алгоритме. Как только мы нашли несколько, проект был привлечен в центр внимания. Он был хорошо принят, и все видели в нем четкую ценность. С тех пор он является неотъемлемой частью процесса тестирования продукта.

Задача тестировщика - проверить

Роль тестировщика заключается в обеспечении надлежащего тестирования продукта. Эта мера должна учитывать скорее не то, что мы можем проверить, а то, что нужно проверить.


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

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

 

28 июня/2018

176 переглядів

Блог о тестировании и всём, что может быть полезно тестировщику

bottom of page