基础任务
经过讨论,我们小组选择了百词斩作为基础软件产品,扇贝单词作为其竞品。
PSP 表
PSP2.1 | PSP阶段 | 预估耗时(分钟) | 实际耗时(分钟) |
---|---|---|---|
Planning | 计划 | 20 | 20 |
·Estimate | ·估计这个任务需要多少时间 | 10 | 30 |
Testing Design | ·测试设计 | 30 | 30 |
·Analysis | ·需求和测试需求分析 | 60 | 70 |
·Design Test Cases | ·设计测试用例 | 40 | 30 |
Testing Environment | · 搭建测试环境(安装测试工具、管理测试工具等相关运行和支撑软件) | 40 | 40 |
Testing Implementation | ·测试实施 | 60 | 60 |
·Test | ·执行测试 | 40 | 40 |
Reporting | ·报告 | 60 | 70 |
·Test Report | ·测试报告 | 60 | 60 |
·PostMortem &Process Improvement Plan | ·事后总结,并提出过程改进计划 | 30 | 30 |
·合计 | 450 | 480 |
功能模块图
我负责画出如下百词斩的功能模块划分图:
下图是李露阳同学负责画的扇贝单词的功能模块划分图:
测试说明
其中,我负责做对比测试的功能模块有 两款软件的 冷启动/背单词 模块,百词斩 的 圈子 和相应的 扇贝单词 的 发现 模块。
测试原理和依据
1 边界值测试
产生的原因
- 经过长期的测试工作经验表明,在输入 域的边界或边界附近,常常会发现大量缺陷
- 边界值测试倾向于选择系统边界或边界 附近的数据来设计测试用例
如何设计边界值测试
在边界以及边界附近的邻域内选择所有的测试数据,构成测试用例。
2 等价类测试
如何划分等价类
有效等价类
- 输入域中一组有意义的数据的集合
- 有效等价类被用于检验系统指定功能和性能 能否正确实现
无效等价类
- 输入域中一组无意义的数据的集合
- 无效等价类被用于检验系统的容错性
基于系统实现的等价划分——从程序员实现系统的角度出发,多关注接 口
基于用户需求的等价划分——从功能和业务处理机制角度出发,多关 注隐含系统内部处理流程
3 场景测试方法测试
从场景设计测试用例:
- 找到输入条件
- 判断是否有效条件
- 判断是否触发条件
- 需要取哪些测试数据
- 得到系统预期输出
4. 软件使用场景图
冷启动场景图
背单词场景图
场景细化:
缺陷清单
- 百词斩冷启动部分内容显示不正常(iPhone X)
- 扇贝单词的单词详情页滑动不够流畅(小米 6)
测试用例清单
根据该功能模块划分图,设计出如下测试用例:
- (百词斩/扇贝单词)iPhone X 冷启动
- (百词斩/扇贝单词)iPhone 8 Plus 冷启动
- (百词斩/扇贝单词)iPhone 6 冷启动
- (百词斩/扇贝单词)小米 6 冷启动
- (百词斩)背单词——查特定词
- (扇贝单词)背单词——查特定词
- (百词斩)背单词——开始背单词——斩/提示/发音
- (扇贝单词)背单词——开始背单词
- (百词斩)背单词——下载离线单词包
- (扇贝单词) 背单词——离线单词书
- (百词斩) 背单词——更改背词计划
- (扇贝单词) 背单词——改变正在学习的单词书
- (百词斩) 背单词——单词列表
- (扇贝单词) 背单词——查看正在学习的单词书
- (百词斩)圈子——发现——百词斩小班
- (扇贝单词)发现——自习室/小组
- (百词斩)圈子——好友——添加好友
- (百词斩)圈子——好友——动态
- (扇贝单词)发现——同桌
- (扇贝单词)发现——七周攻克四六级
部分测试截图
百词斩冷启动,在较新的 iPhone X 机型上出现了一个 bug,图片中的百次斩水印和单词的部分内容没有正常显示,当然也不排除这是某种 feature。
扇贝单词冷启动:首先显示一片空白,然后是一个带广告链接的图片,非常容易点击到该链接,然后才会进入软件:
查词界面截图:
测试管理工具及使用截图
我们小组使用的是老师给出的排名第二的测试管理工具 Jira,原因主要是排名第一的禅道不支持 macOS 系统。
我使用的版本是 7.9.0 for macOS,下载地址是 https://www.atlassian.com/software/jira。
使用截图如下:
选择基本开发方法
测试用例导出
缺陷导出
导出为 word:
结论说明
综合结论是,百词斩的功能更为人性化,而扇贝单词的界面的交互更简洁,可以根据个人喜好来选择,对于我个人而言,更加喜欢百词斩。以下是详细说明
冷启动
每次打开软件,百词斩都使用了一个单词,和用来诠释单词的图片来进行进入软件的过渡。而扇贝单词首先显示一片空白,然后是一个带广告链接的图片,非常容易点击到该链
接,然后才会进入软件。
可见在打开百词斩的碎片时间中,我们还可以复习一个单词,但打开扇贝单词的这一点时间对于对于其推广的课程不感兴趣,只想安安静静地背个单词的用户,就被浪费了。就这一点看,百词斩更加为用户着想,而扇贝单词作为商家,启动界面加入广告也无可厚非,但是误触之后,还要花费半天时间加载购买界面,而不是直接进入背词界面,的确是不太好的用户体验。
背单词
在背单词这个大功能下,两款软件有着略微不同的各项子功能:
- 查词,百词斩的查词联想给出了更多的备选项,以便即使用户输错了一两个字母,也能更快地找到想找的单词,而扇贝单词只给出较少的完全匹配的备选项。
- 背单词,可以看到,这两款软件在背单词的时候,都会有一些没有必要的动画效果,单词一多,这些动画效果就会占用不少时间,感觉会浪费时间。
百词斩和扇贝单词对于不认识或者不熟悉的单词,都有给出提示的选项。但是扇贝单词首先给出的是英文句子,而百次斩在显示单词的时候就会同时显示英文例句,点击需要提示的选项,就会弹出中文解释,再次点击,两者都会显示英文解释,这一点对于有一定英语基础的学习者有不错的帮助,但是对于几乎没有英语基础的学习者而言,并没有太大的帮助。
扇贝单词往往只能选择下一个,按照软件设置,它可能会在后面再次出现,而百词斩,选择了斩选项之后就可以不用再看这个词,更加个性化,而且节省时间。
圈子/发现
即这两款软件中的轻量级社交功能,目的是寻找一起背单词的小伙伴,一起学习,共同进步。在百词斩的圈子中,添加好友的选项比较丰富和直接,而且可以直接根据用户名进行搜索和添加,而扇贝单词需要进行一系列性别/期望等的设定,而且还要绑定微信,对于不经常使用微信的年轻用户很不友好,而且过程很繁琐,可能好奇点进这个功能后,在设定的过程中,因为多了这么几个选项就不太想设定了。
扩展任务:用户调研和可用信测试
百度云下载:链接:https://pan.baidu.com/s/1WxunCSPqy5NsUc3t5Qg3tw 密码:cpbw
高级任务:专题测试
我们小组选择的专题是 GUI 界面测试
核心思想
从人机交互的角度,考虑可用性、易用性。确保 GUI 能够协助用户能够快速找到想要的功能,GUI 能够完整正确地显示信息。
基于百词斩,选用的老师推荐的 Appium 作为测试工具。由于我们测试的是移动端应用,而且手上没有源代码,所以没有可以用的测试脚本。
视频见毕博平台。
定性和定量的测试评论也已提交到毕博平台。
工作感受
我在高级任务中主要负责测试用户界面,即 GUI,结合测试,以及曾经学习过的人机交互、软件体系结构知识,对软件 GUI 作出定性、定量的评判。我个人认为单单测试一个软件,只能得出比较直观、感性的定性评判,要“货比三家”,也就是用老师所介绍的对比测试,才能更加客观地对其进行定量的打分。
就百词斩而言,除了冷启动时,偶尔单词或者其发音的某些部分显示不全,其 GUI 的美术设计以及交互设计都比较不错,更加具体的结论,可见提交到毕博的定量评论。
工作
35%
3 次实践作业的感受
- 第一次的作业多次变更需求,让我深切地体会到了需求变更给软件开发带来的麻烦。在以后的实际开发过程中,也肯定会经常遇到这种情况,我看到微博/知乎上的一些前辈对于这个的经验是——先做靠谱的需求,当然,有时也并不知道什么才是靠谱的需求。那就先搭一些框架,等需求完全确定,也非常容易扩充和修改。所以,代码的可修改性/可维护性十分重要。
- 第二次作业是小组作业,我们小组学习并掌握了使用 Gradle 进行项目的管理,感觉十分方便。使用 git 合并代码时,各自 clone 到本地运行时,出现了一些问题,主要是由于操作系统的不同和开发环境的配置不同引起的,后来想了办法解决。我们是使用完全去中心化的每个组员都能 push 的方法,事实证明,这样会给合并代码带来许多麻烦,觉得以后还是用 Pull/Request 更加便于集中管理。更加熟悉小组协作以及协作管理工具的使用。
- 第三次作业是对比较成熟的软件产品进行测试,使用边界值/等价类/场景法这些方法来对软件进行测试,可以看到被测软件虽然说都有些微的瑕疵,但总体而言,已经比较完善。扩展任务也引领我们转变思维,不是从开发者的角度出发,而是更加多地从用户的角度来思考问题,测试软件的易用性。高级任务让我们学会了怎样定性和定量地去评判软件的某个方面。系统地学到了在软件开发之外,开发者还应该关注的东西。