软件测试基础知识---黑盒白盒测试
黑盒测试和白盒测试:
黑盒测试 | 白盒测试 |
等价类划分 | 语句覆盖 |
边界值分析 | 判定覆盖 |
因果图分析 | 条件覆盖 |
错误猜想 | 判定/条件覆盖 |
多重条件覆盖 |
白盒测试:关注测试用例执行的程度或覆盖程序逻辑结构的程度
语句覆盖有很大不足;
判定覆盖或分支覆盖是较强的逻辑覆盖准则,要求必须编写足够的测试用例,使得每一个判断都至少有一个为真和为假的输出结果。(每条分支路径都必须至少遍历一次)。如switch、do-while、if-else语句。
条件覆盖要编写足够的测试用例,以确保将一个判定中的每个条件的所有可能结果至少执行一次。
判定/条件覆盖要求设计出充足的测试用例,将一个判断中的每个条件的所有可能的结果至少执行一次,将每个判断的所有可能的结果至少执行一次,将每个入口点都至少调用一次。
多重条件覆盖要求编写出足够多的测试用例,将一个判断中的所有可能的条件结果的组合,以及所有入口点都至少执行一次。
黑盒测试:关注软件的输入数据和输出结果
等价划分:测试每个等价类的代表性数据等同于测试该类的其他任何数据。也就是说。如果等价类的某个测试用例发现了某个错误,该等价类的其他用例也应该能发现同样的错误。相反,如果测试用例没有发现错误,那么我们可以预计,该等价类的其他测试用例不会出现在其他等价类中。因为等价类是相互交迭的。
等价划分方法设计测试用例主要步骤:
- 确定等价类:有效等价类代表对程序的有效输入,无效等价类代表其他任何可能的输入条件(不正确的输入值)。
- 生成测试用例
边界值分析:边界条件是指输入 和输出等价类中那些恰好处于边界或超过边界、或在边界一下的状态。
边界值分析和等价类划分的一个弱点是未对输入条件的组合进行分析。
因果图:有助于用一个系统的方法选择出一个高效的测试集,还可以指出规格说明的不完整性和不明确之处。
生成测试用例的过程:
- 将规格说明分解为可执行的片段
- 确定规格说明中的因果关系:”因“指一个明确的输入条件或输入条件的等价类;”果“指一个输出条件或系统转换(输入对程序或系统状态的延续影响)
- 分析规格说明的语义内容,并将其转换为连接因果关系的布尔图
- 给图加上注解符号,说明语法或环境的限制而不能联系起来的因和果
- 将因果图转换成一个有限定的判定表
- 给判定表中的列转换为测试用例
错误猜想:列举出可能犯的错误或错误易发情况的清单,然后依据清单来编写测试用例。
附加错题:
(1)项目立项前测试人员不需要提交任何工件。
(2)测试的关键是任何选择测试用例。
(3)α、β、λ常用来表示软件测试过程中的三个阶段,α是第一阶段,一般只供内部测试使用;β是第二个阶段,已经消除了软件中大部分的不完善之处,但仍有可能还存在缺陷和漏洞,一般只提供给特定的用户群来测试使用;λ是第三个阶段,此时产品已经相当成熟,只需在个别地方再做进一步的优化处理即可上市发行。
(4)性能测试检查系统能力的最高实际限度,即软件在一些超负荷情况下的运行情况。
(5)在游戏或软件开发完成的初期,由游戏公司或软件公司发送限定的激活码或账号给玩家,由玩家测试并向游戏公司反馈使用情况和存在的问题,以促进游戏的进一步完善的环节称为内测。
(6)假设我们每天80%的访问集中在20%的时间里(峰值),如果每天有300万的pv,而 我们的单台机器的QPS为58,那么大概需要几台这样的机器:
【QPS计算PV和机器的方式】
QPS统计方式 [一般使用 http_load 进行统计]
QPS = 总请求数 / ( 进程总数 * 请求时间 )
QPS: 单个进程每秒请求服务器的成功次数
单台服务器每天PV计算
公式1:每天总PV = QPS * 3600 * 6
公式2:每天总PV = QPS * 3600 * 8
服务器计算
服务器数量 = ceil( 每天总PV / 单台服务器每天总PV )
【峰值QPS和机器计算公式】
原理:每天80%的访问集中在20%的时间里,这20%时间叫做峰值时间
公式:( 总PV数 * 80% ) / ( 每天秒数 * 20% ) = 峰值时间每秒请求数(QPS)
机器:峰值时间每秒QPS / 单台机器的QPS = 需要的机器
问:每天300w PV 的在单台机器上,这台机器需要多少QPS?
答:( 3000000 * 0.8 ) / (86400 * 0.2 ) = 139 (QPS)
问:如果一台机器的QPS是58,需要几台机器来支持?
答:139 / 58 = 3