I m new at BDD. Итак, у меня были некоторые вопросы о сценариях? Каковы различия между сценариями BDD и сценарием пользователя? Есть ли явное отличие от обычного «сценария пользователя» или «случая использования», так называемого? Не могли бы вы объяснить больше?Сценарий развития, управляемый поведением (BDD), или сценарий использования пользователя или различия в случае использования?
ответ
Так как вы только что сказали «Сценарии Обычная User», который является немного расплывчатым, я предполагаю, что вы имеете в виду описание пользовательских историй:
В [Роль]
Я хочу [Гол]
Таким образом, что [Результат/Пособие]
Это описание пользовательского рассказа, в котором понадобятся сценарии, описывающие, как пользователь должен вести себя с системой. Это можно сделать разными способами. Одним из них может быть BDD. Теперь BDD особо не определяет, как нужно писать сценарии. Все это определяет, что
- должна быть четкая коммуникация между разработчиками, тестерами и бизнеса
- это сообщение должно быть в удобном формате, который понятен всем
- примеры должны быть использованы в связи указать & четкие требования
Первый пункт гарантирует, что в требованиях не существует двусмысленности, и обратная связь быстро делится между тремя командами. Второй момент гарантирует, что каждый использует язык, который понятен всем, и это не оставляет никакой двусмысленности для всех. Например, тестер не может написать сценарий как
When I drop a file to FTP location, then it's FTP information should be validated and file should be sent
но бизнес может не быть знаком с тем, что FTP/FTP проверка местоположения/информации. Лучше было бы сделать ваши сценарии в Domain Specific Language (DSL), что-то вроде
When a file is dropped in send location, then validate it's credentials and send the file
Одним из способов достижения вышеуказанных двух точек с помощью Огурец языка. Огурец является языком DSL, который имеет синтаксис выглядит следующим образом:
Given [Precondition]
When [Action]
Then [Result]
Расширение на нашем предыдущем примере:
Given user drops file "sample.txt"in "Send File" location
When the credentials for file "sample.txt" are validated
Then the "sample.txt" should be sent to "Receive File" location
Как вы можете видеть, это почти так же, как и в предыдущем примере, за исключением того, что мы имеем использовал пример пользователя, отбрасывающего файл, тем самым значительно уменьшая двусмысленность; также язык, используемый в нетехнических по своей природе, но понятный всем.
То же самое можно было бы написать как Verify that file FTP credentials are valid and fie is sent through FTP
Но здесь мы можем упустить предварительное условие или, возможно, окончательный результат может быть неоднозначным. И язык более технический, поэтому бизнес этого не поймет. И бизнес не представил ни одного примера, чтобы объяснить, чего они действительно хотят, поэтому наши сценарии могут быть не связаны с тем, что действительно хочет бизнес.
Чтобы избежать этой путаницы, BDD рекомендует, чтобы бизнес, тестер и разработчик сидели вместе и записывали функции и сценарии вместе. Это позволяет перекрестные вопросы, примеры и быструю обратную связь.Другим преимуществом этого является то, что при вовлечении бизнеса в создание этих сценариев основное внимание в сценариях будет в большей степени касаться поведения системы, а не ее технического аспекта. Если система такова, что A входит в комнату и B уходит, то независимо от того, какие процессы выполняются в комнате, вход и выход, или поведение такое же. Система не должна ломаться только потому, что кто-то изменил комнату с квадрата на круг. Это изменение процесса, а не изменение поведения.
Также, отметьте это сообщение here.
Просьба продумать несколько примеров на вашем взгляд на «Сценарии BDD» и «сценарий пользователя». Я не уверен в вашем определении «обычный пользовательский сценарий», поэтому я не могу помочь вам. Мне нужно больше примеров или контекста. Возможно, и то, и другое. –