8.1 需求分析
最后更新于:2022-04-01 23:34:57
# 需求分析
项目实战《付费课程MVP系统》
## 什么是用户故事?
用户故事是从用户的角度来描述用户渴望得到的功能。一个好的用户故事包括三个要素:
1. 角色:谁要使用这个功能。
2. 活动:需要完成什么样的功能。
3. 商业价值:为什么需要这个功能,这个功能带来什么样的价值。
用户故事通常按照如下的格式来表达:
* 英文: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. 当输入是测试
3. 那么能看到中文测试
场景1:
1. 假如当前是入库
2. 当输入是选择某个货品
3. 那么能完成入库
场景2:
1. 假如当前是入库
2. 当输入是无法选择任何产品
3. 那么能跳转到新建产品界面
## 精简后的需求文档
我们探索的办法
* 使用用户故事描述,需求
* 使用场景来验证并测试
严格执行agile很难,没有scrum master搞不定
## 具体需求
先实现一个MVP(最小可用原型)
### 查看所有课程
* 作为一个,
* 我想要,
* 以便于
场景1
1. 假如当前没有课程
2. 当输入是点击了查看所有课程连接
3. 那么能看到错误提示页面,提示请稍后再来
### 查看课程详情
* 作为一个,
* 我想要,
* 以便于
### 参加免费课程
* 作为一个,
* 我想要,
* 以便于
### 参加付费课程
* 作为一个,
* 我想要,
* 以便于
场景1:支付成功
1. 假如当前支付成功
2. 当输入是钱数>0,并且微信支付成功
3. 那么能看到我的课程里的课程支付信息
场景2:支付失败
1. 假如当前支付失败
2. 当输入钱数《=0,或微信支付失败
3. 那么能看到错误提示页面,提示请返回重试
### 查看我的个人信息
* 作为一个,
* 我想要,
* 以便于
### 使用微信用户登录
* 作为一个,
* 我想要,
* 以便于
### 查看我的课程
* 作为一个,
* 我想要,
* 以便于
### 分享课程详情
* 作为一个,
* 我想要,
* 以便于
';