Разработчик должен провести первоначальное тестирование, чтобы мы знали, что код, который мы кодировали, будет работать так, как ожидается, в соответствии с требованиями, которые мы получили. Таким образом, мы выполнили обычное тестирование, а также написали модульные тесты для написанного нами кода.
Следующий шаг - работа QAs, чтобы выяснить, что разработчики не видят, когда мы пишем код. Разработчик думает на более высоком уровне, но пользователь может не думать на том же уровне. Когда разработчик тестирует свою часть и ему нужно ввести какой-то текст в текстовое поле, он всегда может ввести полную строку, думая, что пользователь также сделает это. Может быть, пользователь тоже может это сделать, но случайным образом, когда он вводит в текст специальный символ, такой как% & $ ^, и это нарушает работу приложения, это плохо выглядит для конечного пользователя. Разработчик не может и не будет думать обо всех возможностях, которые могут возникнуть, потому что он не обучен так мыслить. Когда дело доходит до QA (тестера), они всегда думают о том, что может сделать пользователь, чтобы взломать это приложение и попробовать все глупости в книге, а не о глупых пользователях, но мы не должны ничего оставлять на волю случая.
Теперь мы также должны понимать, что в целом одновременно выполняется более одного произведения, и оба будут идти в производство. Разработчик может протестировать только свою часть и думать, что она работает нормально, но необходимо провести общее регрессионное тестирование для всех фрагментов, которые выдвигаются, а также выяснить, что комбинация двух различных частей может сломать приложение, и это делает тоже не очень хорошо выглядит. Мы также должны рассмотреть сценарии нагрузочного тестирования и другие вещи, с которыми тестеры знакомы больше.
Наконец, мы должны пройти UAT (User Acceptance Test), чтобы увидеть, соответствует ли то, что мы сделали, ожидаемым. Как правило, хотя требования проходят через BA, последний человек может не совсем точно знать, как он выглядит, и он / она может подумать, что это не то, что они ожидали, или они могут захотеть добавить что-то еще, чтобы он выглядел лучше, или по какой-то причине они могут отказаться от целая часть, поскольку они думают, что часть не пойдет с уже доступной функциональностью.
Как объяснено выше, они очень важны и не могут быть выполнены одним разработчиком и абсолютно необходимы для нормальной работы приложения. Руководство может сказать, что это консервативный подход, но это лучший подход. Мы можем внести некоторые изменения в вышесказанное, но не можем избежать в целом.