这是一篇软工课程博客html
项目 | 内容 |
---|---|
课程:北航-2020-春-软件工程 | 博客园班级博客 |
做业要求 | Beta阶段测试报告 |
咱们在这个课程的目标是 | 测试项目 |
这个做业在哪一个具体方面帮助咱们实现目标 | 制定测试规则,总结测试结果 |
关于本组 | 【敏杰开发团队介绍】 |
关于选题 | 【知识路书项目介绍】 |
2020年5月29日至2020年6月4日前端
矩阵项 | |
---|---|
平台 | PC端或MAC端web浏览器 |
硬件 | PC端或MAC端 |
浏览器类型 | 主流web浏览器:Chrome、Safari |
分组 | 姓名 | 任务 | 发现bug | bug是否已修复 | 是否经过测试 |
---|---|---|---|---|---|
前端 | ljy | 引入tag标签 | tag标签与后端对接有误,未正确使用后端api | 是 | 是 |
- | 批量导出bibtex | 无 | 是 | ||
- | 文献阅读计划:已读 未读 | 应该有已读、未读、进行中三个状态 | 是 | 是 | |
- | 面包屑改进crumb+动态路由 | 层级有误 | 是 | 是 | |
- | 随笔编辑器 | 无 | 是 | ||
- | yzn | 路书管理的卡片布局 | 在firefox浏览器上的适配问题 | 否 | 是 |
- | 卡片布局 | 无 | 是 | ||
- | 卡片布局浮窗显示 | 在google浏览器上适配问题 | 是 | 是 | |
- | zwx | 拖拽方式添加节点 | 无 | 是 | |
- | alias解决过长的文献名 | 无 | 是 | ||
- | 随笔相关 | 随笔编辑器api未更新 | 是 | 是 | |
- | ym | 批量导出bibtex | 无 | 是 | |
- | 多选与删除 | 无 | 是 | ||
- | 引入filter | api未更新 | 是 | 是 | |
- | cc | 曲线链接 | 文献节点的曲线链接不保存 | 是 | 是 |
- | 用户自定义结点颜色 | 无 | 是 | 是 |
常见场景一:登录web
常见场景二:文献管理django
文献管理
,进入文献管理界面修改
,想要删除能够点击删除
常见场景三:路书管理json
路书管理
,跳转至路书管理界面查看
进入路书阅览器,点击修改
进入路书编辑起,点击删除
进行删除常见场景四:路书编辑后端
新建路书
或点击已有路书的编辑
,进入路书编辑界面标题
和描述
旁边的修改图标
修改标题或修改描述Save Roadmap
按钮或使用键盘快捷键保存常见场景五:随笔编辑api
常见场景六:路书阅览/随笔阅览浏览器
查看
,进入路书阅览界面Read Only
按钮切换到阅览界面场景 | 测试是否经过 |
---|---|
场景一 | 经过 |
场景二 | 经过 |
场景三 | 经过 |
场景四 | 经过 |
场景五 | 经过 |
场景六 | 经过 |
序号 | bug描述 | 是否解决 |
---|---|---|
1 | tag标签与后端对接有误,未正确使用后端api | 是 |
2 | 文献阅读计划:已读,未读。应该有已读、未读、进行中三个状态 | 是 |
3 | 面包屑改进crumb+动态路由:层级有误 | 是 |
4 | 路书管理的卡片布局,在firefox浏览器上的适配问题 | 是 |
5 | 卡片布局浮窗显示,在google浏览器上适配问题 | 是 |
6 | 随笔相关,随笔编辑器api未更新 | 是 |
7 | 引入filter,api未更新 | 是 |
8 | 曲线链接,文献节点的曲线链接不保存 | 是 |
因为后端咱们采用的是一整套规定好的Restful api, 所以对于api的每个数据请求的方式, 均可以使用现代化的单元测试工具来进行。
在后端的测试中, 咱们使用django rest测试框架来编写单元测试, 使用coverage工具来检测代码分支覆盖率, 用coverage report检测测试不完善的地方, 进行补充, 最后代码覆盖率达到99%.
测试的样例代码以下markdown
class ModelTest(APITestCase): def setUp(self): self.client = APIClient() data = { "password": "minjie", "username": "zzy" } response = self.client.post("/api/users/", data, format='json') self.assertEqual(response.status_code, status.HTTP_201_CREATED) def test_user_model(self): reponse = self.client.get("/api/users/", format='json') # get token data = { "password": "minjie", "username": "zzy" } response = self.client.post("/api/login/", data, format='json') self.assertEqual(response.status_code, status.HTTP_200_OK) user_token = json.loads(response.content)['token'] self.client.credentials(HTTP_AUTHORIZATION='JWT ' + user_token) reponse = self.client.get("/api/users/", format='json') self.assertEqual(response.status_code, status.HTTP_200_OK)