软件测试 —— B / 测试用例
🌈个人主页:慢了半拍
🔥 创作专栏:《算法分析》 | 《无味生》 |《C语言》 | 《C练习解析》|《C++讲解》|《软件测试》|《Linux》|《数据结构》|《计组》
🏆我的格言:一切只是时间问题。
一、测试用例
测试用例(Test Case)是为了实施测试而向被测试的系统提供的⼀组集合,这组集合包含:测试环境、操作步骤、测试数据、预期结果等要素
笔试的时候编写测试用例题,需要按照excel表格的方式来答题 (会涉及到测试用例的要素)
而面试的时候回答测试用例题,按照思维导图的方式(不会涉及到测试用例的要素)
工作中,测试用例的设计并不是越多越好,而是能够达到更大的功能覆盖率则是更好的
学习中,测试用例的设计一定是越多越好的!!!考察大家的思维发散能力如何!
二、设计测试用例的万能公式
2.1 常规思考+逆向思维+发散性思维
2.2 万能公式
功能测试+界面测试+性能测试+兼容性测试+易用性测试+安全测试
功能测试:
◦ 查找其他相关文档,来帮助理解所要测试的产品需要完成的目标;
◦ 尽量多参加项目组内的会议,比如需求讨论、设计讨论、计划讨论等,能够加深对产品的理
解;
◦ 召集相关人员,对你整理的结果进行讨论,通过评审后,这份文档就可以作为依据来设计你
的case了;
◦ 如果是⼀款已经上线的产品,可以多使用产品,有不懂的问产品经理;
◦ 也可以去看历史bug,可以了解到⼀些需要关注的东西
界面测试:
◦ 整体界⾯测试界⾯的实现与设计图要求⼀致。
◦ 界⾯元素测试
▪ 控件操作验证
性能测试:
性能测试和功能测试的区别是:功能测试检查软件是否做了,⽽性能测试测试软件做的好不好。
兼容性测试:
软件是部署在硬件系统之上,并依赖所需要的软件环境。如QQ可以在PC端打开,也可以在移动端打开;移动端又分为IOS系统和Android系统,且市面上手机又有不同的品牌、不同的机型、不同的版本。软件是否能够在不同的环境下正确运行需要测试人员进行验证。
问题:既然市⾯上有众多版本的机器,那么在执⾏兼容性测试时难道所有的机型都需要全⾯覆盖吗?
选取标准:
• 优先选择使⽤当前产品top级别的机型进⾏测试实际在企业中,后台是可以获取到使⽤产品的机型,并以报表的形式统计在后台,供产品⼈员或其他⼈员制定策略参考。
• 选择主流的浏览器、机型进行测试
易用性测试:
易用性测试的标准是检查产品是否具备简单易上⼿的属性。假如测试⼈员从来没有安装或使⽤过该产品,作为⼀个新用户,对当前产品是否能够快速适⽤产品的使⽤流程
安全测试:
安全测试和性能测试⼀样都是比较大的领域。常见的安全问题如:
隐私数据明文显示。
参数未强校验导致SQL注入。
越权:普通用户也可以执行管理员权限的操作。
除了万能公式之外,还有⼀个⽐较常⽤的测试类型:弱⽹测试、安装卸载测试
弱网测试:
弱网测试的目的就是尽可能保证用户体验,关注的关键点包括:
• 页面响应时间是否可以接受,关注包括热启动、冷启动时间、页面切换、前后台切换、首字时间,首屏时间等。
• 页面呈现是否完成⼀致。
• 超时文案是否符合定义,异常信息是否显示正常。
• 是否有超时重连。
• 安全角度:是否会发生dns劫持、登陆ip更换频繁、单点登陆异常等。
• 大流量事件风险:是否会在弱网下进行更新apk包、下载文件等大流量动作。
弱⽹需要借助⼯具来构造弱⽹,这⾥推荐使⽤fiddler
1)fiddler配置代理
2)fiddler进⾏抓包(桌⾯/移动端)
3)fiddler如何构造弱⽹条件
设置的数字越大,传输速率越慢
安装卸载测试:
针对需要进行部署的软件,除了软件功能外,我们还需要关注软件的能够成功安装和卸载
三、设计测试用例的方法
3.1 基于需求的设计方法
基于需求的设计方法也是总的设计测试用例的方法,在工作中,我们需要参考需求文档产品规格说明书来设计测试用例。
测试人员接到需求之后,要对需求进行分析和验证,从合理的需求中进⼀步分析细化需求,从细化的需求中找出测试点,根据这些测试点再去设计测试用例。
3.2 具体的设计方法
3.2.1 等价类
• 有效等价类:对于程序的规格说明书是合理的、有意义的输⼊数据构成的集合,利⽤有效等价类验证程序是否实现了规格说明中所规定的功能和性能
• 无效等价类:根据需求说明书,不满⾜需求的集合。
3.2.2 边界值
边界值分析法就是对输入或输出的边界值进行测试的⼀种黑盒测试方法。通常边界值分析法是作为对等价类划分法的补充,这种情况下,其测试用例来自等价类的边界。
3.2.3 正交法
3.2.4 判定表法
3.2.5 场景法
同⼀事件不同的触发顺序和处理结果就形成事件流,场景主要包括4种主要的类型:正常的用例场景,备选的用例场景,异常的用例场景,假定推测的场景。
3.2.6 错误猜测法
3.3 用例练习