测试对象是本项目——物联网应用平台,主要测试点如下:
在已经规定好的条件下对本项目进行测试,目的在于通过测试去发现软件中程序的错误或者是BUG,衡量软件的质量,然后对软件是否满足最初的要求或者初衷做出一个正确的判断。
采取黑盒测试的方法,对各模块的基本功能进行测试,包含用户管理模块、设备管理模块、设备数据可视化模块等。
表2-1 客户端软件配置
项目 | 说明 |
---|---|
浏览器 | Google Chrome, Microsoft Edge, Mozilla Firefox, Safari, Opera, Internet Explorer |
数据库 | MySQL Ver 8.0.23-0 Ubuntu0.20.04.4 for Linux on x86_64 ((Ubuntu)) |
测试数据 | 由测试团队(个人)设计 |
表2-2 服务器1硬件配置
项目 | 信息 |
---|---|
服务器 | 阿里云 |
处理器 | Intel® Xeon® Platinum 8163 CPU @ 2.50GHz |
核数 | 4 |
内存 | 8GB RAM |
缓存 | 33792KB |
硬盘 | 40GB SSD |
网络 | 5 Mbps |
操作系统 | Ubuntu 20.04.1 LTS (GNU/Linux 5.4.0-31-generic x86_64) |
地址大小 | 46 bits physical, 48 bits virtual |
数据库 | MySQL Ver 8.0.23-0 Ubuntu0.20.04.4 for Linux on x86_64 ((Ubuntu)) |
表2-3 服务器2硬件配置
项目 | 信息 |
---|---|
服务器 | 天翼云 |
处理器 | Intel® Xeon® CPU E5-2680 v4 @ 2.40GHz |
核数 | 1 |
内存 | 2GB RAM |
缓存 | 35840 KB |
硬盘 | 40GB SSD |
网络 | 1 Mbps |
操作系统 | Ubuntu 20.04.2 LTS (GNU/Linux 5.4.0-72-generic x86_64) |
地址大小 | 46 bits physical, 48 bits virtual |
数据库 | MySQL Ver 8.0.23-0 Ubuntu0.20.04.4 for Linux on x86_64 ((Ubuntu)) |
表2-4 服务器3硬件配置
项目 | 信息 |
---|---|
服务器 | 个人工控机H81U |
处理器 | Intel® Core™ i5-4210U CPU @ 1.70GHz |
核数 | 2 |
内存 | 8GB RAM |
缓存 | 3072 KB |
硬盘 | 128GB SSD |
网络 | 100 Mbps |
操作系统 | Ubuntu 20.04.2 LTS (GNU/Linux 5.8.0-53-generic x86_64) |
地址大小 | 46 bits physical, 48 bits virtual |
数据库 | MySQL Ver 8.0.23-0 Ubuntu0.20.04.4 for Linux on x86_64 ((Ubuntu)) |
表2-5 个人客户端硬件配置
项目 | 信息 |
---|---|
供应商 | LENOVO |
操作系统 | 系统一:Windows 10 Pro 64-bit (10.0, Build 19042) 系统二:Ubuntu 20.04.1 LTS (GNU/Linux 5.8.0-31-generic x86_64) |
系统模型 | 20LBA01KCD |
BIOS版本 | N27ET32W (1.27 ) (type: UEFI) |
处理器 | Intel® Core™ i5-8350U CPU @ 1.70GHz (8 CPUs), ~1.9GHz |
内存 | 20.00 GB RAM |
硬盘 | 512 GB SSD 256 GB SSD 1.0 TB HDD (Samsung) 2.0 TB HDD (Newsmy) 1.0 TB HDD (West Digital) |
显卡 | Intel® UHD Graphics 620 NVIDIA Quadro P500 |
显示器 | 名称:Wide viewing angle & High density FlexView Display 1920x1080 分辨率(刷新频率):1920 x 1080§ (59.977Hz) 名称:Generic PnP MonitorAOC2701 分辨率(刷新频率):1920 x 1080§ (60.000Hz) 名称:Generic PnP Monitor DELL U2518D 分辨率(刷新频率):2560 x 1440§ (59.951Hz) |
网络 | Microsoft ATSC Network Provider,0x00200000,0,1,MSDvbNP.ax,10.00.18362.0001Microsoft DVBC Network Provider,0x00200000,0,1,MSDvbNP.ax,10.00.18362.0001Microsoft DVBS Network Provider,0x00200000,0,1,MSDvbNP.ax,10.00.18362.0001Microsoft DVBT Network Provider,0x00200000,0,1,MSDvbNP.ax,10.00.18362.0001Microsoft Network Provider,0x00200000,0,1,MSNP.ax,10.00.18362.0001 |
鼠标 | Logitech M330 |
键盘 | MOTOSPEED GK89 |
物联网应用平台版本v1.0.0_beta
测试报告版本v1.0
静态方法是指不运行被测程序本身,仅通过分析或检查源程序的语法、结构、过程、接口等来检查程序的正确性。静态方法通过程序静态特性的分析,找出欠缺和可疑之处,例如不匹配的参数、不适当的循环嵌套和分支嵌套、不允许的递归、未使用过的变量、空指针的引用和可疑的计算等。静态测试结果可用于进一步的查错,并为测试用例选取提供指导。
动态方法是指动态测试是通过运行软件来检验软件的动态行为和运行结果的正确性。通过运行被测程序,检查运行结果与预期结果的差异,并分析运行效率和健壮性等性能,这种方法由三部分组成:构造测试实例、执行程序、分析程序的输出结果。
黑盒测试是通过测试来检测每个功能是否都能正常使用。在测试中,把程序看作一个不能打开的黑盒子,在完全不考虑程序内部结构和内部特性的情况下,在程序接口进行测试,它只检查程序功能是否按照需求规格说明书的规定正常使用,程序是否能适当地接收输入数据而产生正确的输出信息。黑盒测试着眼于程序外部结构,不考虑内部逻辑结构,主要针对软件界面和软件功能进行测试。其以用户的角度,从输入数据与输出数据的对应关系出发进行测试,如果外部特性本身设计有问题或规格说明的规定有误,用黑盒测试方法是发现不了的。
白盒测试又称结构测试、透明盒测试、逻辑驱动测试或基于代码的测试。白盒测试是一种测试用例设计方法,盒子指的是被测试的软件,白盒指的是盒子是可视的,即清楚盒子内部的东西以及里面是如何运作的。"白盒"法全面了解程序内部逻辑结构、对所有逻辑路径进行测试。"白盒"法是穷举路径测试。在使用这一方案时,测试者必须检查程序的内部结构,从检查程序的逻辑着手,得出测试数据。
灰盒测试,是介于白盒测试与黑盒测试之间的一种测试,多用于集成测试阶段,不仅关注输出、输入的正确性,同时也关注程序内部的情况。灰盒测试不像白盒那样详细、完整,但又比黑盒测试更关注程序的内部逻辑,常常是通过一些表征性的现象、事件、标志来判断内部的运行状态。
手动测试是由人去一个一个的输入用例,然后观察结果,和机器测试相对应,属于比较原始但是必须的一个步骤。
自动化测试是把以人为驱动的测试行为转化为机器执行的一种过程。通常,在设计了测试用例并通过评审之后,由测试人员根据测试用例中描述的规程一步步执行测试,得到实际结果与期望结果的比较。在此过程中节省了人力、时间或硬件资源,提高了测试效率。
等价类划分法将程序所有可能的输入数据(有效的和无效的)划分成若干个等价类。然后从每个部分中选取具有代表性的数据当做测试用例进行合理的分类,测试用例由有效等价类和无效等价类的代表组成,从而保证测试用例具有完整性和代表性。利用这一方法设计测试用例可以不考虑程序的内部结构,以需求规格说明书为依据,选择适当的典型子集,认真分析和推敲说明书的各项需求,特别是功能需求,尽可能多地发现错误。等价类划分法是一种系统性的确定要输入的测试条件的方法。
由于等价类是在需求规格说明书的基础上进行划分的,并且等价类划分不仅可以用来确定测试用例中的数据的输入输出的精确取值范围,也可以用来准备中间值、状态和与时间相关的数据以及接口参数等,所以等价类可以用在系统测试、集成测试和组件测试中,在有明确的条件和限制的情况下,利用等价类划分技术可以设计出完备的测试用例。这种方法可以减少设计一些不必要的测试用例,因为这种测试用例一般使用相同的等价类数据,从而使测试对象得到同样的反映行为。等价类划分的方法分为两个主要的步骤,划分等价类型和设计测试用例。
边界值分析法就是对输入或输出的边界值进行测试的一种黑盒测试方法。通常边界值分析法是作为对等价类划分法的补充,这种情况下,其测试用例来自等价类的边界。
大量的错误是发生在输入或输出范围的边界上,而不是发生在输入输出范围的内部。因此针对各种边界情况设计测试用例,可以查出更多的错误。
边界值测试与等价划分的区别如下:
表4-1 物联网应用平台测试用例设计
用例名称 | 测试编号 | 测试数据 | 预期结果 | 实际结果 |
---|---|---|---|---|
用户登录 | USR-01-01 | “email”: “[email protected]” “password”: “123456” “remember”: true | 登录成功 | PASS |
USR-01-02 | “email”: “[email protected]” “password”: “123” “remember”: true | 密码错误 | PASS | |
USR-01-03 | “email”: “[email protected]” “password”: “123456” “remember”: true | 用户名不存在 | PASS | |
USR-01-04 | 暂停后端 | 提示出错 | PASS | |
用户注册 | USR-02-01 | “email”: “[email protected]” “password”: “123456” “user_name”: “ZJU_SLM” “auth_code”: “123456” | 注册成功 | PASS |
USR-02-02 | “email”: “[email protected]” “password”: “123456” “user_name”: “ZJU_SLM” “auth_code”: “错误验证码” | 验证码错误 | PASS | |
USR-02-03 | 暂停后端 | 提示出错 | PASS | |
用户 忘记密码 | USR-03-01 | “email”: “[email protected]” “auth_code”: “256984” “password”: “123456” | 修改成功 | PASS |
USR-03-02 | “email”: “[email protected]” “auth_code”: “256984” “password”: “错误验证码” | 验证码错误 | PASS | |
USR-03-03 | 暂停后端 | 提示出错 | PASS | |
发送 验证码 | USR-04-01 | “email”: “[email protected]” “type”: 1 | 发送成功 | PASS |
USR-04-02 | “email”: “[email protected]” “type”: 1 | 用户已存在或不存在 | PASS | |
USR-04-03 | 暂停后端 | 提示出错 | PASS | |
获取用户基本信息 | USR-05-01 | “email”: “[email protected]” | 获取成功 | PASS |
USR-05-02 | 暂停后端 | 提示出错 | PASS | |
上传头像 | USR-06-01 | 头像图片的字节流 | 上传成功 | FAIL DF-01 |
USR-06-02 | 暂停后端 | 提示出错 | PASS | |
用户反馈 | USR-07-01 | “subject”: “xxxxxx” “content”: “xxxxxxxxxxxxx” | PASS | |
USR-07-02 | 暂停后端 | 提示出错 | PASS | |
修改 用户信息 | USR-08-01 | “email”: “[email protected]” “user_name”: “ZJU_SLM” “name”: “沈乐明” “gender”: 1 “phone”: “15381145750” “address”: “浙江省 杭州市” “work_school”: “浙江大学 网络空间安全学院” “description”: “# Software Engineering, College of Computer Science and Technology, Zhejiang University” | 修改成功 | PASS |
USR-08-02 | 暂停后端 | 提示出错 | PASS | |
修改密码 | USR-09-01 | “type”: 0 “email”: “[email protected]” “old_password”: “123456” “new_password”: “123” “auth_code”: “123456” | 修改成功 | PASS |
USR-09-02 | “type”: 0 “email”: “[email protected]” “old_password”: “错误旧密码” “new_password”: “123” “auth_code”: “123456” | 旧密码错误 | PASS | |
USR-09-03 | “type”: 1 “email”: “[email protected]” “old_password”: “123456” “new_password”: “123” “auth_code”: “错误验证码” | 验证码错误 | PASS | |
USR-09-04 | 暂停后端 | 提示出错 | PASS | |
修改绑定手机号 | USR-10-01 | “old_phone”: “15381145750” “new_phone”: “123456” “email”: “[email protected]” | 修改成功 | PASS |
USR-10-02 | “old_phone”: “错误旧手机号” “new_phone”: “123456” “email”: “[email protected]” | 旧手机号错误 | PASS | |
USR-10-03 | 暂停后端 | 提示出错 | PASS | |
获取用户设备种类及数量 | DEV-01-01 | “email”: “[email protected]” | 获取成功 | PASS |
DEV-01-02 | 暂停后端 | 提示出错 | PASS | |
查询设备是否存在 | DEV-02-01 | “device_id”: “device0101” | 查询成功 | PASS |
DEV-02-02 | “device_id”: “错误设备ID” | 设备不存在 | PASS | |
DEV-02-03 | “device_id”: “已被占用设备ID” | 设备已被占用 | PASS | |
DEV-02-04 | 暂停后端 | 提示出错 | PASS | |
添加设备 | DEV-03-01 | “email”: “[email protected]” “device_id”: “device0101” “device_name”: “沈乐明的北斗导航卫星” | 添加成功 | PASS |
DEV-03-02 | “email”: “[email protected]” “device_id”: "已被占用设备ID " “device_name”: “沈乐明的北斗导航卫星” | 设备已被占用 | PASS | |
DEV-03-03 | 暂停后端 | 提示出错 | PASS | |
移除设备 | DEV-04-01 | “email”: “[email protected]” “password”: “123456”, “device_id”: “device0001” | 移除成功 | PASS |
DEV-04-02 | “email”: “[email protected]”, “password”: “错误密码”, “device_id”: “device0001” | 身份认证失败 | PASS | |
DEV-04-03 | 暂停后端 | 提示出错 | PASS | |
获取 某设备 详细信息 | DEV-05-01 | “device_id”: “device0001” | 获取成功 | PASS |
DEV-05-02 | “device_id”: “错误设备ID” | 设备不存在 | PASS | |
DEV-05-03 | 暂停后端 | 提示出错 | PASS | |
修改某 设备信息 | DEV-06-01 | “device_id”: “device0001” “device_name”: “沈乐明的ECS主机” “device_description”: “# 于2021年5月1日购买” | 修改成功 | PASS |
DEV-06-02 | 暂停后端 | 提示出错 | PASS | |
获取某 设备累计数据信息 | DEV-07-01 | 无 | 获取成功 | PASS |
DEV-07-02 | 暂停后端 | 提示出错 | PASS | |
获取某 设备历史位置信息 | DEV-08-01 | “device_id”: “device0001” | 获取成功 | PASS |
DEV-08-02 | 暂停后端 | 提示出错 | PASS | |
获取个人所有设备ID列表 | STATS-01-01 | “email”: “[email protected]” | 获取成功 | FAIL DF-02 |
STATS-01-02 | 暂停后端 | 提示出错 | PASS | |
获取网站统计信息 | STATS-02-01 | “email”: “[email protected]” | 获取成功 | PASS |
STATS-02-02 | 暂停后端 | 提示出错 | PASS |
表5-1 测试用例执行情况
测试模块 | 总用例数 | 计划用例 | 执行用例 | 通过 | 失败 | 不可用 | 未计划 |
---|---|---|---|---|---|---|---|
用户模块 | 10 | 10 | 10 | 9 | 1 | 0 | 0 |
设备管理模块 | 8 | 8 | 8 | 8 | 0 | 0 | 0 |
数据可视化模块 | 2 | 2 | 2 | 1 | 1 | 0 | 0 |
表6-1 缺陷摘要
缺陷编号 | 优先级 | 严重性 | 分类 | 摘要 | 处理状况 |
---|---|---|---|---|---|
DF-01 | 中 | 小错误 | 用户 | 当用户上传除了JPEG格式以外的图像时,由于后端直接通过写JPEG字节流的方式导致其他格式的图像不可用 | 已修正 |
DF-02 | 中 | 小错误 | 数据可视化 | 当前端伪造一个HTTP请求,并且用户名不存在时会导致后端的异常,从而无法正常返回获取状态 | 已修正 |
对软件需求本身认识的不清晰,或者甲方对产品的需求特性的理解总结有偏差,或者测试人员对软件需求认知不准确,都会导致最终开发出的产品不是用户真正需要的,不符合用户实际对功能的需求。此外,需求变更后,测试用例的不及时更新也会导致测试风险。
测试人员在测试的过程中所使用的测试环境,不一定符合用户在实际使用时的真实环境,即使原则上要求两者完全一致,但实际上这样的模拟与用户不同场景下的使用存在一定的偏差,这样就存在了一定的测试环境风险,由于软件的某些功能只有在特定的条件下(包括硬件、网络、操作系统、flash插件、WebGL、WebSocket和软件的不同版本)才会发生缺陷,因此测试环境的不完全性会导致测试风险的产生。
表8-1 后续处理措施
缺陷编号 | 缺陷描述 | 后续处理措施 |
---|---|---|
DF-01 | 当用户上传除了JPEG格式以外的图像时,由于后端直接通过写JPEG字节流的方式导致其他格式的图像不可用 | 在前端发送HTTP请求之前,对用户上传的头像文件进行检查,如果不是JPEG格式的图像则提示要求重新上传 |
DF-02 | 当前端伪造一个HTTP请求,并且用户名不存在时会导致后端的异常,从而无法正常返回获取状态 | 在后端HTTP请求处理的相应部分增加用户名认证异常捕捉功能 |