测试理论1---黑盒测试、白盒测试、灰盒测试
黑盒测试 黑盒测试又名为功能测试,主要目的是发现软件设计的需求或者是软件设计规格说明书中的错误缺陷。软件的开发具有特定性,一般都是为了某种具体特定功能开发的,软件功能的描述依赖于在软件需求阶段的需求规格说明书的分析,软件在设计过程中被分成了一个或者是多个功能,保证这些功能能够正常运行的就是软件测试,从而进一步满足用户的需求与需要。黑盒测试与白盒测试相反,软件设计程序被看做一个打不开的盒子,盒子里的程序代码测试人员不能看到,只能看到软件或者是某些模块的简单功能描述,这种测试方法主要是验证软件或者是功能的实现度。
黑盒测试的测试方法
(一)等价类划分法
等价类划分法是一种典型的、重要的黑盒测试方法,它将程序所有可能的输入数据划分为若干个等价类。然后从每个部分中选取具有代表性的数据当做测试用例。测试用例由有效等价类和无效等价类的代表数据组成,从而保证测试用例具有完整性和代表性。使用该方法设计测试用例主要有两个步骤:(1)确定等价类;(2)生成测试用例。
(二)边界值分析法
边界值分析法是对程序输入或输出的边界值进行测试的一种黑盒测试方法。实际的测试工作证明,考虑了边界条件的测试用例比那些没有考虑边界条件的测试用例具有更高的测试回报率。这里所说的边界条件,是指输入和输入等价类中那些恰好处于边界、或超过边界、或在边界以下的状态。
(三)因果图法
因果图法也是较常用的一种黑盒测试方法,是一种简化了的逻辑图。因果图能直观地表明输入条件和输出动作之间的因果关系,能帮助测试人员把注意力集中到与程序功能有关的输入组合上。因果图法是一种适合于描述对于多种输入条件组合的测试方法,根据输入条件的组合、约束关系和输出条件的因果关系,分析输入条件的各种组合情况,从而设计测试用例的方法,它适合于检查程序输入条件的各种组合情况。
(四)错误推测法
错误推测法是基于以往的经验和直觉,参照以往的软件系统出现的错误,推测当前被测程序中可能存在的缺陷和错误,有针对性地设计测试用例。
黑盒测试可以发现以下几类错误:
1、是否有不正确或遗漏的功能?
2、在接口上,输入是否能正确的接受?能否输出正确的结果?
3、是否有数据结构错误或外部信息(例如数据文件)访问错误?
4、性能上是否能够满足要求?
5、是否有初始化或终止性错误?
白盒测试 白盒测试又名为结构测试,主要目的是发现软件程序编码过程中的错误。白盒测试下,软件程序被看做是一个打开的盒子,盒子里有测试软件的源程序,还能够分析盒子内部的结构,所以这种测试方法能够全面地测试程序代码结构。
白盒测试的方法
(一)程序结构分析
根据源代码可以首先绘制程序的流程图,然后根据流程图分析程序的结构。
(二)逻辑覆盖方测试
根据程序的内部结构,对所有的路径进行测试,是一种穷举路径的测试方法。
(三)基本路径测试
根据程序的逻辑判断,分析程序中的路径,再进行用例的设计。
白盒测试步骤
第一步:撰写测试计划。根据需求说明书,制定软件测试的进度,确定人员、范围、技术、风险等,形成测试计划或测试方案。
第二步:撰写测试用例。根据源代码及其分析,按照一定规范化的方法进行软件结构划分,并进行测试用例的设计,形成测试用例表。
第三步:执行测试用例。按照之前写好的测试用例,进行系统测试的执行,并且记录测试结果,形成缺陷表和缺陷报告。
第四步:撰写测试总结。将前期的测试工作做总结,分析用例的数量、发现的高、中、低缺陷数,评价本系统,形成完整的总结报告。
白盒测试的目的
1、对程序模块的所有独立的执行路径至少测试一遍。
2、对所有的逻辑判定,取“真”与取“假”的两种情况都能至少测一遍。
3、在循环的边界和运行的界限内执行循环体。
4、测试内部数据结构的有效性,等等。
灰盒测试 是介于白盒测试与黑盒测试之间的一种测试,灰盒测试多用于集成测试阶段,不仅关注输出、输入的正确性,同时也关注程序内部的情况。灰盒测试不像白盒那样详细、完整,但又比黑盒测试更关注程序的内部逻辑,常常是通过一些表征性的现象、事件、标志来判断内部的运行状态。
备注:该文是本人在遇到笔试面试时,所总结的一些理论知识,当作笔记,希望对你们有帮助。
题目:即适用于黑盒测试,也适用于白盒测试的测试方法(边界值法)