软件测试

软件测试基础

()软件的实现
(1)**编码**:编程就是把软件设计结果翻译成用某种程序设计语言书写的程序,是
对设计的进一步具体化。
(2)**测试**:程序的质量主要取决于软在这里插入代码片件设计的质量。软件测试
是保证软件质量的关键步骤,是对软件规格说明、设计和编码的最后复审。
()软件测试准则
所有测试都应该能追溯到用户需求;
应该远在测试开始之前就制定出测试计划;
应该从“小规模”测试开始,并逐步进行“大规模”测试;
充分注意测试中的群集现象;
测试无法显示系统所有潜在的缺陷;
穷举测试是不可能的;
为了达到最佳的测试效果,应该由独立的第三方从事测试工作。  
质量为何重要(这还用问?)
^低质量的软件更难于维护和支持
^^用户抱怨更多,需要更多人手来做客服
^^不断给软件打补丁
^^安排额外的发布  (Vx.1)
^低质量的软件导致法律问题 – 用户会告你
^低质量的软件会降低公司声誉,很难挽回
^因果关系:
^^低质量的产品-->公司的市场份额降低,声誉降低-->股票掉价-->员工薪资福利
降低
软件测试方法
**白盒测试**:又称结构测试,把程序看成装在一个透明的白盒子里,测试者完全
知道程序的结构和处理算法。这种方法按照程序内部的逻辑测试程序,检测程序中
的主要执行通路是否都能按预定要求正确工作。
**黑盒测试**:又称功能测试,把程序看成一个黑盒子,完全不考虑程序的内部
结构和处理过程。黑盒测试是在程序接口进行的测试,只检测程序功能是否能按照
规格说明书的规定正常使用,程序是否能适当地接受输入数据并产生正确的输出
信息,程序运行过程中能否保持外部信息(如数据库或文件)地完整性。
测试步骤
大型软件系统通常由若干个子系统组成,每个子系统又由许多模块组成,因此,大型
软件系统的测试过程基本上由**模块测试、子系统测试、系统测试、验收测试、平行
运行**等五个步骤组成。

单元测试

1.单元测试(Unit Testing)是对软件中的最小可测试单元进行检查和验证。
2.单元测试集中检测软件设计的最小单元——模块。
3.单元测试和编码属于软件过程的同一个阶段。
4.在源程序代码通过编译程序的语法检查后,可以用详细设计描述作指南,对重要
的执行通路进行测试,以便发现模块内部的错误。
5.可以应用人工测试和计算机测试这样两种不同类型的测试方法,完成单元测试工
作。
6.单元测试主要使用白盒测试技术,而且对多个模块的测试可以并行地进行。

在这里插入图片描述

1.模块接口:
(1)对模块接口进行测试时主要检查以下几个方面:
参数的数目、次序、属性或单位系统与变元是否一致;
是否修改了只作输入用的变元;
全局变量的定义和用法在各个模块中是否一致。
2.局部结构数据:
(1)对于模块来说,局部数据结构是常见的错误来源。应该仔细设计测试方案,以便
发现局部**数据说明、初始化、默认值**等方面的错误。
3.边界条件
(1)边界测试是单元测试中最后的也可能是最重要的任务。
(2)软件常常在它的边界上失效,例如,处理n元数组的第n个元素时,或做到i次
循环中的第i次重复时,往往会发生错误。
(3)使用刚好小于、刚好等于和刚好大于最小值或最大值的数据结构、控制量和数据
值的测试方案,非常可能发现软件中的错误。
4.独立路径
(1)由于通常不可能进行穷尽测试。因此,在单元测试期间选择最有代表性、最可能
发现错误的执行路径进行测试是十分关键的。应该设计测试方案用来发现由于**错误
的计算、不正确的比较或不适当的控制流**而造成的错误。
5.出错处理:
       好的设计应该能预见出现错误的条件,并且设置适当的处理错误。不仅应该
在程序中包含出错处理,而且应该认真测试这种通路。评价出错处理应该着重测试
一些可能发生的错误。
(1)对错误的描述是难以理解的;
(2)记下的错误与实际遇到的错误不同;
(3)在对错误进行处理之前,错误条件已经引起系统干预;
(4)对错误的处理不正确;
(5)描述错误的信息不足以帮助确定造成错误的位置。
代码审查
    代码检查是指由审查小组正式对源程序进行人工测试。它是一种非常有效的程序
    验证技术,对于典型的程序来说,可以查出30%70%的逻辑设计错误和编码错
    误。审查小组最好由下述4人组成。
(1) 组长,应该是一个很有能力的程序员,而且没有直接参与这项工程;
(2) 程序的设计者;
(3) 程序的编写者;
(4) 程序的测试者。
计算机测试
模块不是一个独立的程序,因此必须为每个单元测试开发驱动软件和()存根软件。
驱动程序是一个“主程序”,它接收测试数据,把这些数据传送给被测试的模块,并且
输出有关的结果。
存根程序代替被测试的模块所调用的模块,它使用被它代替的模块的接口,可能做最
少量的数据操作,输出对入口的检验或操作结果,并且把控制归还给调用它的模块。
单元测试质量
1.测试通过率是指在测试过程中执行通过的测试用例所占比例,单元测试通常要求测
试用例通过率达到100%2.测试覆盖率是用来度量测试完整性的一个手段,通过覆盖率数据,可以了解测试是
否充分以及弱点在哪里。代码覆盖率是单元测试的一个衡量标准,但也不能一味地去
追求覆盖率。

白盒测试技术

1.通常把测试数据和预期的输出结果称为测试用例。
2.不同的测试数据发现程序错误的能力差别很大,为了提高测试效率降低测试成本,
应该选用高效的测试数据。因为不可能进行穷尽的测试,所以选用少量“最有效的”测
试数据,做到尽可能完备的测试就更重要了。
3.设计测试方案的基本目标是,确定一组最可能发现某个错误或某类错误的测试数
据。已经研究出许多设计测试数据的技术,这些技术各有优缺点;同一种技术在不同
的应用场合效果可能相差很大,因此,通常需要联合使用多种设计测试数据的技术。

※ 白盒测试的优点有: 1)帮助软件测试人员增大代码的覆盖率,提高代码的质
量,发现代码中隐藏的问题。

※ 白盒测试的缺点有: 2)程序运行会有很多不同的路径,不可能测试所有的运行
路径;测试基于代码,只能测试开发人 员做的对不对,而不能知道设计的正确与
否,可能会漏掉一些功能需求;系统庞大时,测试开销 会非常大。
  逻辑覆盖 ---- 是以程序内部的逻辑结构为基础的设计测试用例的技术。
     (1) 语句覆盖       (2)判定覆盖
     (3)条件覆盖        (4)判定/条件覆盖
     (5)条件组合覆盖    (6)点覆盖
     (7)边覆盖          (8)路径覆盖

在这里插入图片描述

黑盒测试技术

1.黑盒测试着重测试软件功能。黑盒测试并不能取代白盒测试,它是与白盒测试互补
的测试方法,它很可能发现白盒测试不易发现的其他类型的错误。
2.黑盒测试力图发现下述类型的错误: ①功能不正确或遗漏了功能; ②界面错误; 
③数据结构错误或外部数据库访问错误; ④性能错误; ⑤初始化和终止错误。
3.黑盒测试技术:等价划分法、边界值分析法、错误推测法、因果图法等。

※ 黑盒测试的优点有: 1)比较简单,不需要了解程序内部的代码及实现; 2)与
软件的内部实现无关; 3)从用户角度出发,能很容易的知道用户会用到哪些功能,
会遇到哪些问题; 4)基于软件开发文档,所以也能知道软件实现了文档中的哪些功
能; 5)在做软件自动化测试时较为方便。

※ 黑盒测试的缺点有: 1)不可能覆盖所有的代码,覆盖率较低,大概只能达到总
代码量的 30%2)自动化测试的复用性较低。
 1.等价类划分法(等价分配)
   
     把所有可能的输入数据(有效的和无效的)划分成若干个等价的子集(称为等价类别
或等价区间), 使得每个子集中的一个典型值在测试中的作用与这一子集中所有其它
值的作用相同. 
     等价类别或等价区间是指测试相同目标或者暴露相同软件缺陷的一组测试用例
如何划分等价类?
有效等价类(合理等价类)
无效等价类(不合理等价类)
划分等价类的标准:
覆盖
不相交
代表性
2.边界值分析法
边界值分析法与等价类划分法区别
(1)边界值分析不是从某等价类中随便挑一个作为代表,而是使这个等价类的每个
边界都要作为测试条件。
(2)边界值分析不仅考虑输入条件,还要考虑输出空间产生的测试情况
3.错误推测法(error guessing)
  根据经验、直觉和预感来进行测试
一定要考虑建立处理下列等价类:
缺省值
空白
空值
零值
无输入条件
在已经找到软件缺陷的地方再找找
4.因果图法
    因果图适合于描述对于多种输入条件的组合,相应产生多个动作的形式来设计
    测试用例。
     因果图方法最终生成的是判定表。
  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值