Перенесено из темы:
по предложению @Ayia
А вот интересную тему затронули на счет автоматизации мануальных тестов. Конечно, тут многое чего зависит от проекта, процесса, заказчика и самого автоматизатора, в общем, как это называют «от контекста». Но, я вот считаю, что строить автоматизацию на основе мануальных тестов – это в большинстве случаев не эффективно.
И тут я изложу то, что я видел в своей практике, но, конечно же, ваш опыт может отличаться, и я готов дискуссировать на эту тему.
Итак, начнем о качестве мануальных тестов.
Количество ручных сценариев должно всегда расти. Правильно ли это?
С точки зрения вида сверху-вниз, все идет очень хорошо. Каждый спринт, количество сценариев увеличивается. Тестировщики пишут новые сценарии. Месяц назад было 300, сейчас уже 400… через пол года будет уже 800… По сути, это создает ситуацию, когда ненужные сценарии нельзя удалять. Следовательно, увеличивается процент шлака: вместо того, чтобы удалять ненужные тест-кейсы (те, которые не приносят пользы), их наоборот увеличивают и… принимается решение автоматизировать этот шлак, вместо того, чтобы его вывести. Тогда метрика один тест в час, превращается в метрику один шлокотест в час.
И на противовес: автоматизировать лучше те сценарии, которые оказывают наибольшее влияние на продукт.
На меня очень повлияла вот эта презентация (я видел еще старую версию). В ней высказываются идеи, как выявить те участки продукта, которые действительно важны, и нуждаются в автоматизации:
How to Narrow Down What to Test
На своем проекте, я провел небольшое исследование и для себя выявил, что именно самые простые тест-кейсы находят наибольшее количество багов. Именно позитивные CRUD сценарии.
Но, этот показатель может зависит от специфики проекта. Собственно, у меня как-раз по большей части – CRUD приложение.
Очень полезно посчитать статистику по баг-трекеру по критичным и серьёзным багам. Именно эти области и нуждаются в автоматизации.
Кроме того, если это возможно, то лучше поставить себе первоочередную техническую цель по покрытию кода приложения. Мне помогли инструменты для C#/.NET – OpenCover; Для JavaScript – JSCover. Именно благодаря им я понял, что при помощи очень простых сценариев можно покрыть до ~80% кода (70-80%%). А это – обеспечит очень классное смоук тестирование, которое быстро находит JavaScript ошибки и крэши сервера.
Автоматизированные тесты должны писаться по мануальным, чтобы мы знали, что делают авто-тесты. Действительно, ли это так?
Кто согласен с тем, что самая большая польза от мануальных тестов, это по сути то, что они позволяют понять, что-же все таки делает автоматизация?
Действительно, проблема с тем, чтобы объяснить, что-же все таки делает автоматизация – существует по сей день, и еще нет такого решения, которое бы устраивало всех.
А решение, залинковать мануальный тест к автоматизированному – это, как бы, универсальное. И доступно практически всем, даже если ваши мануальные тесты – в Excel, а автоматизация – на QTP. Тут, мы умалчиваем, что при таком подходе – возникает проблема синхронизации: либо мануальный сценарий изменится, а автоматизированный нет – либо наоборот.
Я упомянул, что нет такого решения, которое бы устроило всех… Но, это не значит, что решений нет вовсе. Но, об этом – позже.
А пока, хотелось бы поделится еще одним докладом, прозвучавшим в бородатом 2010-м, на конференции SQA Days:
Автоматизация тестирования модели разграничения прав доступа к функционалу
Если кратко, то вначале, команда создала чисто автоматизированный сценарий, без «мануального» аналога. Но, в итоге, они столкнулись с проблемой, что как работает код автоматизации стало сложно понять, и им пришлось писать мануальные сценарии для того, чтобы объяснить, как работает автоматизация.
А почему бы не генерировать мануальные сценарии из кода автоматизации?
По сравнению с бородатым 2010-м, сейчас уже такие подходы на слуху у многих. Да, есть свои проблемы… но кто говорил, что это простой путь?
Есть известный все Cucumber, который позволяет писать тесты на языке… хм… приближенном к понятному.
Но, на основе этого инструмента, появился Relish https://www.relishapp.com и сейчас, те же люди работают над https://cucumber.pro
И для меня, генерация мануальных тестов на основе автоматизации – интересна, и я работаю над ее воплощением.
Тут я описал очень простой пример, как это может работать, с выводом текста в консоль, но никто не мешает использовать такой подход и для генерации файлов с мануальными сценариями:
How to Create an App from Scratch | AppMaster
И вот самый важный вопрос: действительно ли нам необходимы мануальные сценарии для того, чтобы строить автоматизацию? Стоит ли нам привязывать мунуальный и авто тест, как один-к-одному?