Здравей,
Добър въпрос, задаван на интервюта и си заслужава да се разбере разликата и да се знае кое какво е.
Use case представлява действията, които са нужни да бъдат извършени, за да се постигне или не някаква цел. Един use case има няколко path-а, тоест няколко пътеки, които могат да бъдат избрани от всеки юзър по всяко време. Често се бъркат и use case с use case scenario (сценария за use кейс-а). Use case scenario-то представлява един path/една пътека от use case-a, тоест use case-a се състои от един или повече use case сценарии.
Пример за 1 use кейс може да бъде това:
http://istqbexamcertification.com/wp-content/uploads/2011/12/Use-case-testing-example2.jpg
На картинката са изобразени във формата на таблица успешните и неуспешните сценарии на един банкомат и пин кодът на картата на клиента.
Взаимодействието е между клиентът и системата (А:actor и S:System).
От стъпка 1 до 5 – това са успешните сценарии, показващи, че картата и пина са валидни и позволява на клиента да си влезе в акаунта. В extensions (разширенията), обаче, има 3 други, които са неуспешните – 2а,4a и 4b.
Ако направим use case тестване на този пример, ние ще трябва да имаме един тест за успешния сценарий (success scenario) и по 1 тест за всеки extension. Тук можем да дадем на 4b extension-а по-голям приоритет от колкото на 4a от гледна точка на сигурността.
Системните изисквания също могат да бъдат представени като комплект или сет от use кейсове. Този подход би ни улеснил включването на потребителите към requirements gathering-а , т.е. събирането на изисквания.
Относно сравнението м/у use и test cases.
Колегата Даниел е дал какво е тест кейс във форума тук и сега ще ги сравним.
Use case
Use case-овете се правят от бизнес аналитика.
Test case
Тест case-овете се правят от тест инженера, а в малките компании може и от аналитика на качеството или т.н. quality analyst.
Use case
Use кейсовете не могат да се приготвят, ако са базирани на тест кейсовете, тоест use case-овете не произхождат от тест кейсовете.
Test case
Тест кейсовете могат да се приготвят, ако са базирани на use кейсовете, тоест test case-овете произхождат от use кейсовете.
Use case
Tой описва стъпка по стъпка инструкциите, тоест показва как да ползваме една функционалност.
Test case
Tой проверява дали средствата на функционалността са такива, каквито са показани в use case-а.
Use case
Не може да бъде изпълнен, той е само проектиран.
Test case
Първо се проектира, а после се изпълнява.
Use case
Произлиза от Business requirement specification, т.е. Спецификациите на Бизнес Изискванията.
Test case
Произлиза от use case-а.
Use case
Представлява подробен образ на потребителските изисквания.
Test case
Не се представя под формата на диаграми, само се документира под формата на таблица, а в някои големи компании документирани в някои тест кейс мениджмънт туулове.
Use case
Той е доументация, която винаги изобразява потокът от случаи/изходи на едно приложение.
Test case
Той е документ, който винаги съдържа в себе си действие, случай/изход и очакван резултат от някакъв специфичен фийчър на едно приложение.
С какво биха били полезни на практика:
Use case-овете могат да открият дефекти свързани с интеграцията, тоест да помогнат в integration testing-а, например дефекти породени от несъвместимостта на различните компоненти. В случая actor-а или действащото лице може да бъде нещо,с което системата си взаимодейства, например комуникационна връзка (communication link) или подсистема (sub-system).
И не на последно място, use case-овете представят потоците от действия в една система базирана на честата си употреба. Това позволява на тест кейсовете, изготвени от use кейсовете изключително лесно да открият дефекти докато системата е в реалните си условия (тоест дефектите, на които потребителите най-вероятно биха се натъкнали, ползвайки системата за пръв път).
Да обобщим:
Use case-a ни показва как хората, взаимодействайки си със системата, могат да постигнат дадена цел.
Test case-a проверява дали целта съответства на тази с инструкцийте на use case-а или не.