需求分析
项目实战《付费课程MVP系统》
什么是用户故事?
用户故事是从用户的角度来描述用户渴望得到的功能。一个好的用户故事包括三个要素:
- 角色:谁要使用这个功能。
- 活动:需要完成什么样的功能。
- 商业价值:为什么需要这个功能,这个功能带来什么样的价值。
用户故事通常按照如下的格式来表达:
- 英文:As a
, I want to , so that . - 中文:作为一个<角色>, 我想要<活动>, 以便于<商业价值>
- 举例:作为一个“网站管理员”,我想要“统计每天有多少人访问了我的网站”,以便于“我的赞助商了解我的网站会给他们带来什么收益。”
需要注意的是用户故事不能够使用技术语言来描述,要使用用户可以理解的业务语言来描述
场景
cucumber里的步骤定义
Given /^当前是(.*)/ do |action|
@action= action
end
When /^输入是(.*)/ do |subject|
@subject = subject
end
Then /^能看到(.*)/ do |greeting|
if greeting != "#{@action}#{@subject}"
raise "期望看到<" + greeting + ">,实际看到<" + "#{@action}#{@subject}>"
end
end
场景:
- 假如当前是中文
- 当输入是测试
- 那么能看到中文测试
场景1:
- 假如当前是入库
- 当输入是选择某个货品
- 那么能完成入库
场景2:
- 假如当前是入库
- 当输入是无法选择任何产品
- 那么能跳转到新建产品界面
精简后的需求文档
我们探索的办法
- 使用用户故事描述,需求
- 使用场景来验证并测试
严格执行agile很难,没有scrum master搞不定
具体需求
先实现一个MVP(最小可用原型)
查看所有课程
- 作为一个<普通用户>,
- 我想要<查看所有课程>,
- 以便于<我从所有课程中,找到自己想听的课程>
场景1
- 假如当前没有课程
- 当输入是点击了查看所有课程连接
- 那么能看到错误提示页面,提示请稍后再来
查看课程详情
- 作为一个<普通用户>,
- 我想要<查看课程详情>,
- 以便于<我可以了解课程具体内容,和讲师是谁,什么时间开讲,是否需要付费参加>
参加免费课程
- 作为一个<普通用户>,
- 我想要<参加免费课程>,
- 以便于<我可以不用花钱,就可以听课>
参加付费课程
- 作为一个<普通用户>,
- 我想要<参加付费课程>,
- 以便于<我可以听更好的课>
场景1:支付成功
- 假如当前支付成功
- 当输入是钱数>0,并且微信支付成功
- 那么能看到我的课程里的课程支付信息
场景2:支付失败
- 假如当前支付失败
- 当输入钱数《=0,或微信支付失败
- 那么能看到错误提示页面,提示请返回重试
查看我的个人信息
- 作为一个<普通用户>,
- 我想要<查看我的个人信息>,
- 以便于<我能看到我的个人信息、课程等>
使用微信用户登录
- 作为一个<普通用户>,
- 我想要<使用微信用户登录>,
- 以便于<我能不必输入任何信息,就能登录,使用该系统功能>
查看我的课程
- 作为一个<普通用户>,
- 我想要<查看我的课程>,
- 以便于<我能找到那些我参加的课程>
分享课程详情
- 作为一个<主办方>,
- 我想要<分享课程详情>,
- 以便于<我能推广课程,使更多人知道课程,并参与>