软件测试是在软件投入生产性运行之前,对软件需求分析、设计规格说明和编码的最终复审,是软件质量控制的关键步骤。
软件开发过程是一个自顶向下、逐步细化的过程,而测试过程则是依相反的顺序安排的自底向上、逐步集成的过程。
一、白盒测试与黑盒测试
黑盒测试:已知产品的功能设计规格,可以通过测试证明每个实现了的功能是否符合要求。
白盒测试:已知产品的内部工作过程,可以通过测试证明每种内部操作是否符合设计规格要求,所有内部成分是否已经过检查。
软件测试有一个致命的缺陷,即测试的不完全、不彻底性。
二、白盒测试的测试用例设计
逻辑覆盖是以程序内部的逻辑结构为基础的设计测试用例 的技术,它属于白盒测试
逻辑覆盖又可分为: 语句覆盖 判定覆盖 判定—条件覆盖 条件组合覆盖 路径覆盖
程序段实例
语句覆盖就是设计若干个测试用例,运行被测程序,使得每一可执行语句至少执行一次。语句覆盖是最弱的逻辑覆盖标准。
判定覆盖就是设计若干个测试用例,运行被测程序,使得程序中每个判断的取真分支和取假分支至少经历一次。判定覆盖又称为分支覆盖。
条件覆盖就是设计若干个测试用例,运行被测程序,使得程序中每个判断的每个条件的可能取值至少执行一次。
判定-条件覆盖就是设计足够的测试用例,使得判断中 每个条件的所有可能取值至少执行一次,同时每个判断本身 的所有可能判断结果至少执行一次
条件组合覆盖就是设计足够的测试用例,运行被测程序,使得每个判断的所有可能的条件取值组合至少执行一次。
路径测试是设计足够的测试用例,覆盖程序中所有可能的 路径。若仍以最初的图为例,则可以选择如下的一组测试 用例,覆盖该程序段的全部路径。
基本路径测试是在程序控制流图的基础上,通过分析控制构造的环路复杂性,导出基本可执行路 径集合,从而设计测试用例的方法
三、黑盒测试的测试用例设计
等价类划分是一种典型的黑盒测试方法,也是一种非常实用的重要测试方法,它是用来解决如何选择适当的子集,使其尽可能多地发现错误。
所谓等价类是指某个输入域的子集合。在该子集合中,各个输入数据对于揭露程序中的错误都是等效的,并合理地假定:测试某等价类的代表值等价于对这一类其他值的测试。
等价类的划分有两种不同的情况:
(1)有效等价类:是指对于程序的规格说明来说,是合理的、有意义的输入数据构成的集合。利用它,可以检验程序是否实现了规格说明预先规定的功能和性能。
(2)无效等价类:是指对于程序的规格说明来说,是不合理的、无意义的输入数据构成的集合。程序员主要利用这一类测试用例检查程序中功能和性能的实现是否有不符合规格说明要求的地方。 在设计测试用例时,要同时考虑有效等价类和无效等价类的设计。
边界值分析也是一种黑盒测试方法,是对等价类划分方法的补充。人们从长期的测试工作经验中得知,大量的错误是发生在输入或输出范围的边界上,而不是在输入范围的内部。 这里所说的边界是指,相当于输入等价类和输出等价类而言,稍高于其边界值及稍低于其边界值的一些特定情况。
四、绵薄之力
最后分享自己总结的软件测试学习资料和路线,包括测试理论、Linux基础、MySQL基础、Web测试、接口测试、App测试、Python基础、Selenium相关、性能测试、LordRunner相关等,点击文末小卡片免费领取
资源获取方式: