场景:
1.注册/登录页面
2.首页/博客列表页
3.博客详情页
4.文章发表页
注册场景
1.表单资源:(静态资源) /register.html(user.css,commom.css)
用户表:
字段:用户名(username,不能重复),昵称(nickname,可重复),头像地址(avatar),git地址(git),密码(password)
需要用户填写五个内容: 用户名(不能重复),昵称(可重复),头像地址,git地址,密码
2.验证资源:(动态资源)/do-register
注册过程:
读取用户提交的信息——将信息插入到数据库中(将密码做hash后保存)——注册成功——把刚注册的用户放入到session中(注册成功,视为登陆成功)——显示注册成功,后面跟个a标签引导用户跳转到首页·
(注册失败——分析原因——用户原因——显示失败,提示用户错误原因——引导回到注册页面重新注册)
如果是系统原因导致的注册失败,直接抛异常
登录场景
1.表单资源:(静态资源)login.html(user.css,commom.css)
2.需要用户填写两个内容: 用户名、密码
登录过程:
读取用户提交的信息——从数据库中查询该用户,如果用户为空(或者密码错误)——显示登录失败,引导用户跳回登录页面,重新登录
读取用户提交的信息——从数据库中查询该用户,如果用户不为空,并且密码正确——把登录的用户放入session中——显示登录成功,后面跟个a标签引导用户跳转到首页·
首页
文章表:
字段:文章id(aid),作者id(uid),文章标题(title),文章内容(content),文章发表日期(published_at),文章分类(type)
需要实现的主要内容:
页面展示(模板技术)
1.获取当前登录用户信息
从session中获取用户信息,如果用户没有登录,则引导用户去登录
2.当前登录用户的文章列表(按倒序排列)
3.获取当前用户发表文章总数
4.获取当前用户发表文章类别总数
使用模板技术最终生成正文
文章详情页
需要实现的主要内容:
1.读取文章id(没有输入aid,或者aid不是数字,报400错误,提示用户输入正确的aid)
2.用户必须处于登录状态(未登录提示回到登录页面进行登录)
3.查询详情页的所有内容(使用模板技术生成)
1)根据aid查询文章信息
aid对应的文章不存在,报404,显示aid对应的文章不存在
2)查询文章总数
3)查询文章类型总数
文章发表页
点击写博客进入
需要实现的主要内容:
1.表单资源页(edit.html)
需要判断用户是否登录,登录后才能使用
2.保存发布的内容(save-article)
需要判断用户是否登录,登录后才能使用
向数据库中插入这条文章信息
重定向到文章详情页
注销
删除session中这条用户信息
重定向到登录页面
博客系统的测试用例:
备注:为了写起来更清晰,分析更具体,使用XMind工具编写测试用例,这里放置截图
BUG:
登录/注册:
- 在上一个用户登录没有退出的情况下,用URL进入注册/登录页面,点击主页和写博客直接进入上一个登录者的首页和写博客页面,正常情况下,应显示跳转到“请先登录再使用,点击此处进行登录”这个页面。
- 注册过程中,什么也不输入,点击注册也注册成功了
- 相应的,登陆时,直接点击登录,显示登录成功
- 在多次密码输入错误的情况下,没有机制防止暴力破解
- 可以多端同时登录一个账号
首页:
- 文章列表页的文章按发表顺序倒叙显示,实际结果是如果日期不同,会按照倒序显示,如果是同一天发表的,则按照正序排列了,实际上,按照需求,全是按照倒序排列的
- 文章在文章列表显示时,没有按照正确的格式显示,将markdown格式也一并显示进去,比如“#”,不太美观
博客编辑页面:
- 点击功能区的图标弹出的弹窗清晰度较差
- 不填写任何内容时,发表成功,预期结果是发表失败
- 不能删除自己写的博客
- 博客文章需求是需要分类的,但是编辑博客页面却没有涉及分类,也就是说文章分类只有一种,分类总数失去了意义