功能测试 - SoftwareEngineeringPractise/Medo GitHub Wiki

API功能测试列表

编号 功能名称 功能描述 输入/需要 输出/结果 发现问题 测试结果 测试人
1 注册 输入注册要求填写信息,注册一个账号,将信息正确填入数据库 username√用户名;tel电话号码;email√; password√;code√ token 访问接口,没有response 不通过 sun
2 登录 按要求填写账户信息,如果正确,登录;不正确,不登陆并给出相应提示 - - - 通过 sun
3 登出 登出 token 是否成功登出的信息 不管token有效无效,都返回了200未登录 不通过 sun
4 用户信息 在登录状态下,得到某用户的公开基本信息 - - - 通过 sun
5 修改用户名 在登录状态下,修改自己的用户名,合乎规则且不与已存在的用户名重复 - - - 不通过 sun
6 修改密码 在登录状态下,在符合条件下,修改自己的密码 - - - - sun
7 修改手机号 在登录状态下,在符合条件下,修改自己的手机号
8 修改邮箱 在登录状态下,在符合条件下,修改自己的邮箱,并且需要再次通过验证
9 发布公告 在登录状态下,发布公告 - - - 不通过 sun
10 公告详情 查看某一id的公告的完整内容 - - 超时,Unhandled promise rejection 不通过 sun
11 最新公告
12 分类公告
13 用户公告
14 关注人的公告
15 实验室信息 登录状态下,获取id对应的实验室信息
16 编辑实验室信息 在登录状态下,身份认证为导师,编写实验室信息 - - 这个接口缺失 不通过
17 添加评价 其他用户对某身份为导师的用户的评价
18 评价 在登录状态下,对某一身份为导师的用户进行评价
19 关注 在登录状态下,关注某一id的用户 - - - 不通过 sun
20 取消关注 在登录状态下,取消一个已关注用户的关注 - - - 不通过 sun
21 我的关注 在登录状态下,得到我关注的人的列表
22 收藏 在登录状态下,收藏一篇公告 - - - 不通过 sun
23 取消收藏 在登录状态下,取消一篇已收藏公告的收藏 - - - 不通过 sun
24 我的收藏 在登录状态下,得到我收藏的公告的列表
25 搜索用户
26 搜索学校
27 搜索院系
28 显示公告分类

WX API 简要说明

以下API 的BASEURL为 http://serveip:serverport/api/wx,使用都需要将下面的相对路径加上该前缀作为访问接口

返回JSON 格式为{meta:{code:, message}, data:} code为0说明正常返回结果,data为返回的数据

token 是指header上设定 Authorization 为认证时返回的 token


1.注册

功能测试设计

输入条件 有效等价类 无效等价类
code 有效 过期或者无法识别
username 符合规则且不在数据库中 不符合规则或与数据库中已有的用户名重复
password 符合规则 不符合规则
tel 符合规则或为空 不符合规则
email 符合规则 不符合规则

测试用例设计

编号 输入/需要 预期结果 实验结果 测试结果 测试人
1.1 {code:获取的code,username:未注册的符合规则的用户名,password:非空的符合规则的用户名,tel:符合规则的电话号码,email:符合规则的邮箱} 注册成功,返回token Could not get any response 不通过 sun
1.2 {code:空,username:未注册的符合规则的用户名,password:非空的符合规则的用户名,tel:符合规则的电话号码,email:符合规则的邮箱} 注册失败,返回错误信息 Could not get any response 不通过 sun
1.3 {code:使用过的code,username:未注册的符合规则的用户名,password:非空的符合规则的用户名,tel:符合规则的电话号码,email:符合规则的邮箱} 注册失败,返回错误信息 Could not get any response 不通过 sun
1.4 {code:随机字符串,username:未注册的符合规则的用户名,password:非空的符合规则的用户名,tel:符合规则的电话号码,email:符合规则的邮箱} 注册失败,返回错误信息 Could not get any response 不通过 sun
1.5 {code:获取的code,username:已注册的符合规则的用户名,password:非空的符合规则的用户名,tel:符合规则的电话号码,email:符合规则的邮箱} 注册失败,返回错误信息 Could not get any response 不通过 sun
1.6 {code:获取的code,username:空,password:非空的符合规则的用户名,tel:符合规则的电话号码,email:符合规则的邮箱}
1.7 {code:获取的code,username:长度为5的用户名,password:非空的符合规则的用户名,tel:符合规则的电话号码,email:符合规则的邮箱}
1.8 {code:获取的code,username:已注册的符合规则的用户名,password:非空的符合规则的用户名,tel:符合规则的电话号码,email:符合规则的邮箱}

1.9| 1.10| 1.11|


2.登录

功能测试设计

输入条件 有效等价类 无效等价类
code 有效刚生成 过期的无效的
username 在数据库中 不在数据库中
password 与数据库中对应的密码一致 不一致

测试用例设计

编号 输入/需要 预期结果 实验结果 测试结果 测试人
2.1 {code:从小程序开发上获取一个code,username:已注册用户名,password:对应的密码} 登录成功并返回token 登录成功并返回token 通过 sun
2.2 {code:空,username:已注册用户名,password:对应的密码} 登录失败,返回错误信息 "code": 1,"message": "invalid code, hints: [ req_id: CFnmta04032279 ]",登录失败 通过 sun
2.2 {code:随机字符串,username:已注册用户名,password:对应的密码} 登录失败,返回错误信息 "code": 1,"message": "invalid code, hints: [ req_id: jJh5Ua05022277 ]",登录失败 通过 sun
2.3 {code:已使用过的code,username:已注册用户名,password:对应的密码} 登录失败返回错误信息 "code": 1, "message": "code been used, hints: [ req_id: aXLvuA05912165 ]" 通过 sun
2.4 {code:从小程序开发上获取一个code,username:未注册用户名,password:随机密码} 登录失败,返回错误信息 "code": 1, "message": "用户名或密码不正确" 通过 sun
2.5 {code:从小程序开发上获取一个code,username:已注册用户名,password:错误的密码} 登录失败,返回错误信息 "code": 1,"message": "用户名或密码不正确" 通过 sun

3. 登出

功能测试设计

输入条件 有效等价类 无效等价类
token 未过期的能在redis中找到的token 不能在redis中查询到的token

测试用例设计

编号 输入/需要 预期结果 实验结果 测试结果 测试人
3.1 有效的token 登出成功,返回成功信息 "code": 1,"message": "您没有登陆!" 不通过 sun
3.2 token:空 登出失败,返回:未登录 {"code": 1,"message": "您没有登陆!"} 通过 sun
3.3 过期的token 登出失败,返回:未登录或登录状态过期 { "code": 1,"message": "您没有登陆!"} 通过 sun

4.用户信息

127.0.0.1:3000/api/wx/users/me/info 127.0.0.1:3000/api/wx/users/id/info

{ "meta": { "code": 0, "message": "返回用户信息5c23372c3297c54a2c9a19cd" }, "data": { "username": "sun", "email": "[email protected]", "avatarUrl": "/public/imgs/avatar.jpg", "bgUrl": "/public/imgs/bg.jpg", "tel": "17600973501", "motto": "黄河之水天上来", "isadmin": true, "verified": true, "status": "1", "weiXin": { "unionId": "", "_id": "5c2378113297c54a2c9a1a42", "openId": "owQR45J4HGU8ts7wq_n_GcYNGoYU" }, "userInfo": { "role": "Visitor", "gender": "undefined", "description": "", "school": "", "department": "", "institute": null, "_id": "5c23372c3297c54a2c9a19ce", "__v": 0, "userId": "5c23372c3297c54a2c9a19cd" }, "messages": [], "comment": [], "__v": 0 } }

功能测试设计

输入条件 有效等价类 无效等价类
id 存在于数据库中的id或者me 空或不在数据库中的id
token 有效的token 无效的token或空

测试用例设计

编号 输入/需要 预期结果 实验结果 测试结果 测试人
4.1 token:当前用户有效的token,id:me 返回当前用户(我)的信息 正确返回了“我”用户信息 通过 sun
4.2 token:当前用户有效的token,id:另一个用户的id 返回该id用户的信息 正确返回了id用户的信息 通过 sun
4.3 token:当前用户有效的token,id:当前用户的token 返回当前用户(我)的信息 正确返回了“我”用户信息 通过 sun
4.4 token:空,id:me 401 Unauthorized 401 Unauthorized 通过 sun
4.5 token:无效的token,id:一个用户的id 401 Unauthorized 401 Unauthorized 通过 sun
4.6 token:当前用户有效的token,id:不存在的id 404 没有找到这个用户 404 "code": 2,"message": "没有该用户!" 通过 sun

5.修改用户名

PUT 127.0.0.1:3000/api/wx/users/me/name?name=<修改的用户名> { "meta": { "code": 0, "message": "sucess" }, "data": { "user": { "username": "sun", "password": "123456",=======>不应该出现 "email": "[email protected]", "avatarUrl": "/public/imgs/avatar.jpg", "bgUrl": "/public/imgs/bg.jpg", "tel": "17600973501", "motto": "黄河之水天上来", "isadmin": true, "verified": true, "status": "1", "weiXin": { "unionId": "", "_id": "5c2378113297c54a2c9a1a42", "openId": "owQR45J4HGU8ts7wq_n_GcYNGoYU" }, "userInfo": "5c23372c3297c54a2c9a19ce", ==================================================>下面的都不应该出现 "messages": [], "comment": [], "_id": "5c23372c3297c54a2c9a19cd", "salt": "626e11889f684b9a07a65daf3589248a", "hash": "ebc68cbf41ff05ab56ea45ac37ab590e1baeced21d526c0e7a75daecde24af3cc8912661a4a35421f75a661f146358063389ba39d69db8f6ca44eb260a17708fecc60cbc30fe45c989398fc36c683a6f06bc1b7349f0f7e845ba915c5babf9558b93a6cb88338f2b0f435d93be2df1b78e20cedcffc28c9b4ed6882ec2b94176db31237470c5b5e2e875f0595ff0e10d43d0f369d34791c2c6fc804799f929e16a8831940b05da7914ee77e79128b31eecb087d3cad64fd6ed1de502c3143179f32c5abb44f4a72e552e85cff9843c44366196251a4ad27101ade6b20c004f2a8e309f6bb913c23b448a347acadb2c4cd487046844c0266140356e360fcea1ca570190021e695a4110f669072507ee29146d609bd51775f2f45f31395c5bbd722aa1a6fc31b242241684407d5964074699a6a9e7d7b8e2109f7e3ac4901860beab1a1e063f1790ab2837882014d65b7382f4ede78711a61b27ba365cccc7fb252974aaa27cb7900177cbcc4ad64f01c60584a0bca7dd52b7ba26a547772ff6866023f84cb10049b598943b287792aee4d24d9bf5d9ae8cc6dd04bbb7d47ab7953f2c577527052c778dcb50a266e4d477ff74eace1d39bb26b148cb7ee2311d88fed351c04fee84c9538f991b2b4caa5098d7b026bc0668959ab1859e89ac2a24024e930744838d6e148a693c0f9a542cc343aec018fc8bb8a7d508f04f66d49b", "__v": 0 } } }

功能测试设计

输入条件 有效等价类 无效等价类
token 有效token 无效或空的token
name 符合规则的username,且不与数据库中的除自己以外的用户名重复 不符合规则的username,或与其他用户的用户名重复

测试用例设计

编号 输入/需要 预期结果 实验结果 测试结果 测试人
5.1 token:有效,name:原先的用户名(即未修改) 修改成功,返回信息以及更新后的用户简要信息 "code": 2,"message": "该用户名已经被占用!" 不通过 sun
5.2 token:有效,name:新的不重复的符合规则的用户名 修改成功,返回信息以及更新后的用户简要信息 200,显示修改成功,实际上没有正确修改 不通过 sun
5.3 token:有效,name:空 修改失败,返回错误信息 200,修改成功,实际上没有任何修改 不通过 sun
5.4 token:有效,name:与其他用户重复的用户名 修改失败,返回错误信息:用户名已经占用 400, "code": 2,"message": "该用户名已经被占用!" 通过 sun
5.5 token:有效,name:新的不重复的但是不符合规则的用户名 修改失败,返回错误信息:用户名不合规则 200,修改成功,但是实际上数据库中数据没有任何修改 不通过 sun
5.6 token:空,name:新的不重复的符合规则的用户名 401,Unauthorized 401,Unauthorized 通过 sun
5.7 token:无效,name:新的不重复的符合规则的用户名 401,Unauthorized 401,Unauthorized 通过 sun

6.修改密码

功能测试设计

输入条件 有效等价类 无效等价类

测试用例设计

编号 输入/需要 预期结果 实验结果 测试结果 测试人

7. 修改手机号

功能测试设计

输入条件 有效等价类 无效等价类

测试用例设计

编号 输入/需要 预期结果 实验结果 测试结果 测试人

8.修改邮箱

功能测试设计

输入条件 有效等价类 无效等价类

测试用例设计

编号 输入/需要 预期结果 实验结果 测试结果 测试人

9.发布公告

POST 127.0.0.1:3000/api/wx/content/post

功能测试设计

输入条件 有效等价类 无效等价类
token 有效 空或无效
title 非空限定字数以内的字符串 空或超过字数的字符串
category 已定义的类别的id 空或非已定义类别的id
description 限定字数以内的字符串,或者空 超过字数的字符串
content 非空限定字数以内的字符串 空或超过字数的字符串

测试用例设计

编号 输入/需要 预期结果 实验结果 测试结果 测试人
9.1 token:空,title:"title1",category:"5c238c91aa73e50ff06d115a",description:"i am description",content:"一二三四五" 401,Unauthorized 401,Unauthorized 通过 sun
9.2 token:无效,title:"title1",category:"5c238c91aa73e50ff06d115a",description:"i am description",content:"一二三四五" 401,Unauthorized 401,Unauthorized 通过 sun
9.3 token:有效,title:"",category:"5c238c91aa73e50ff06d115a",description:"i am description",content:"一二三四五" 发布失败,未输入标题 200, "code": 1,"message": "提交成功!",并且存入数据库 不通过 sun
9.4 token:有效,title:刚超过字数的标题,category:"5c238c91aa73e50ff06d115a",description:"i am description",content:"一二三四五" 发布失败,标题不合规则
9.5 token:有效,title:"title2",category:"",description:"i am description",content:"一二三四五" 发布失败,未选定分类 "code": 1, "message": "提交成功!" 不通过 sun
9.6 token:有效,title:"title2",category:"sere2swq54t"(无效的id),description:"i am description",content:"一二三四五" 发布失败,没有找到这个分类 "code": 1,"message": "提交成功!" 不通过 sun
9。7 token:有效,title:"title2",category:"5c238c91aa73e50ff06d115a"(有效的category 的id),description:"i am description",content:"一二三四五" 发布成功,且能正确地存进数据库 发布成功,且能正确地存进数据库 通过 sun
9.8 token:有效,title:"title2",category:"5c238c91aa73e50ff06d115a"(有效的category 的id),description:"",content:"一二三四五" 发布成功,且能正确地存进数据库 "code": 1,"message": "提交成功!" 不通过 sun
9.9 token:有效,title:"title2",category:"5c238c91aa73e50ff06d115a"(有效的category 的id),description:超出字数的字符串,content:"一二三四五" 发布失败,description字数超限
9.10 token:有效,title:"title2",category:"5c238c91aa73e50ff06d115a"(有效的category 的id),description:"dex",content:"" 发布失败,content不能为空 "code": 1,"message": "提交成功!" 不通过 sun

10.公告详情

127.0.0.1:3000/api/wx/views?contentid=

功能测试设计

输入条件 有效等价类 无效等价类
notice的id 非空,存在 空,不存在

测试用例设计

编号 输入/需要 预期结果 实验结果 测试结果 测试人
10.1 id:空 404 超时,后台显示(node:20052) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 2): ReferenceError: marked is not defined 不通过 sun
10.2 id:不存在 404 超时,后台显示(node:20052) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 2): ReferenceError: marked is not defined 不通过 sun
10.3 id:有效 返回该公告的详细信息,包括作者的基本资料,notice的title,description,content,category 超时,后台显示(node:20052) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 2): ReferenceError: marked is not defined 不通过 sun

15.实验室信息

127.0.0.1:3000/api/wx/labs/【id/me】/info

功能测试设计

输入条件 有效等价类 无效等价类
token 有效 空,无效
id 存在的用户id 空或不存在的用户id

测试用例设计

编号 输入/需要 预期结果 实验结果 测试结果 测试人
15.1 token:空,id:me 401,Unauthorized 401,Unauthorized 通过 sun
15.2 token:无效,id:me 401,Unauthorized 401,Unauthorized 通过 sun
15.3 token:有效,id:me
15.4 token:有效,id:当前用户(我)的用户id
15.5 token:有效,id:另一个用户的用户id
15.6 token:有效,id:不存在的用户id 404,没有该用户 404,"message": "Cast to ObjectId failed for value "45678fghhiuoi86y" at path "_id" for model "user"", 不通过 sun

--

⚠️ **GitHub.com Fallback** ⚠️