Use case与user story在不同项目中定义会有一定区别,此处只讨论最大众的定义。

    最基本的区别:
    1. use case是以用例图表示(例描述的是参与者与系统之间的对话,但是这个对话的细节并没有在用例图中表述出来,针对每一个用例我们可以用事件流来描述这一对话的细节内容。
    如在ATM系统中的”提款”用例可以用事件流表述如下:
    1. 用户插入银行卡 2. 输入密码 3. 输入提款金额 4. 提取现金 5. 退出系统,取回银行卡.
    描述的是用户一次进入这个系统的涉及根本数据变动最小目的);

    2.用户业务流可能更偏写
    (查询算是一次用例,但有时候也不会归纳到用例中,包含数据变动的最小目的, 但业务流不会描述查询.);
    user story是以一句话表示(笛卡尔积法分析我们如何正确使用Use Story?)。

    最基本的共同点:帮助阅读者明白该软件应该完成什么事,促进利益相关者交流合作。
    在实际使用时这两者无高下之分,只分使用场合。


    User story在维基百科上的定义:
    In software development and product management, a user story is an informal, natural language description of one or more features of a software system.

    User story有其固定格式,其中应用最广的为:
    As a , I want so that .
    E.g. As a PO, I want to change privacy policy for the China version of the App so that local policies are updated for local market.

    不过实际使用时有的公司也不会遵从这个格式,只要能把意思表达清楚即可。【个人观点】

    user story只有简单的需求描述,而非详细的需求规范。
    所以因其简单易懂的特点,user story适用于需求探索阶段,也就是sprint plainning阶段与用户讨论需求时使用。

    关于role:并且使用user story时,role不只有终端用户一个角色,比如还包括backend team、PO等等。测试人员在设计case时需要把自己转换成多个角色来设计case并确保其覆盖场景。

    关于粒度:在敏捷开发中user story的粒度一般较小,一个业务场景的备选流有时也能成为一个user story。

    关于关注点:user story不会涉及系统内部的东西,主要关注业务用例而非系统用例。


    Use case的定义为:
    A generalized description of a set of interactions between the system and one or more actors, where an actor is either a user or another system.
    可以看出use case的关注点在于系统用例,即更适合系统设计与开发团队使用。