【软件测试】单元测试是软件测试的最基础环节

单元测试是软件测试的最基础环节。

单元测试是对软件中的基本组成单元进行的测试,如一个模块、一个过程等等。它是软件动态测试的最基本的部分,也是最重要的部分之一,其目的是检验软件基本组成单位的正确性。

【软件测试】导致软件缺陷的最大原因是软件需求规格说明书

导致软件缺陷的最大原因是软件需求规格说明书。

因为软件缺陷产生的原因有很多,典型的原因如下:

  • 软件本身的复杂性
  • 开发人员的问题
  • 需求的变化
  • 进度的压力
  • 对文档不重视
  • 沟通不畅
  • 偏差的累积

各种来源导致缺陷会广泛分布在软件开发的各个阶段,需求规格说明书、软件设计、代码中都可以看到缺陷的身影。特别是由于需求的变化和人们对文档的轻视,导致需求规格说明书中的缺陷通常会占缺陷总数一半还多。

【软件测试】边界测试中所选择的输入测试数据一定是有效数据(错)

边界测试中所选择的输入测试数据不一定是有效数据。

边界测试的测试用例选择原则:

  • 如果输入条件规定了值的范围,则应该取刚达到这个范围的边界值,以及刚刚超过这个范围边界的值作为测试输入数据;
  • 如果输入条件规定了值的个数,则用最大个数、最小个数、比最大个数多1格、比最小个数少1个的数做为测试数据;
  • 如果程序的规格说明给出的输入域或输出域是有序集合(如有序表、顺序文件等),则应选取集合的第一个和最后一个元素作为测试用例;
  • 如果程序用了一个内部结构,应该选取这个内部数据结构的边界值作为测试用例;
  • 分析规格说明,找出其他可能的边界条件。

所以说,边界测试输入的测试数据是略大于略小于边界值,但这个数据并不一定是有效的。

【软件测试】验收测试是以最终用户为主的测试

验收测试是部署软件之前的最后一个测试操作。在软件产品完成了单元测试、集成测试和系统测试之后,产品发布之前所进行的软件测试活动。它是技术测试的最后一个阶段,也称为交付测试。验收测试的目的是确保软件准备就绪,并且可以让最终用户将其用于执行软件的既定功能和任务。

验收测试是以用户为主的测试,软件开发人员和QA(质量保证)人员也应该参加。由用户参加设计测试用例,使用用户界面输入测试数据,并分析测试的输出结果。一般使用实际数据进行测试。

【软件测试】白盒测试的条件覆盖标准强于判定覆盖(错)

白盒测试的条件覆盖标准强于判定覆盖(错)

条件覆盖:每个复合判定表达式的每个简单判定条件的取真和取假情况至少执行一次;

判定覆盖:又称为分支覆盖,其含义是保证程序中每个判定节点的取真和取假分支至少执行一次 。

条件覆盖不一定强于判定覆盖。条件覆盖在通常情况下是强于判定覆盖的,因为条件覆盖使判定表达式中每个条件都取到了两个不同的结果,判定覆盖却只关心整个判定表达似的值。但是,也有可能有相反的情况,条件覆盖虽然把每个简单判定条件都取到了真假两个结果,但是可能判定表达式始终只取了一个值。

举个栗子~比如,一个复合条件为 A==2 || B > 1

如果条件覆盖中我们选取了两个测试用例:

  • A=2,B=0(A为真,B为假,总的结果为真)
  • A=0,B=2(A为假,B为真,总的结果为真)

在上述两组测试用例下:虽然满足了条件覆盖(每个简单判定条件的真假都取到了),但是因为最终整个判定表达是都是真,导致条件覆盖下永远只取到了真值,而如果是判定覆盖将会真值假值都取到。这两组测试用例就只满足了条件覆盖标准并不满足判定覆盖标准。

【软件测试】常规性能测试、压力测试、负载测试、可靠性测试

性能测试的范围很广,可分为常规性能测试、压力测试、负载测试、可靠性测试、大数据量测试等。

常规性能测试:软件在正常的软硬件环境下进行,不向其施加任何压力的性能测试。这里所说的正常环境一般指用户实际使用的普通环境,并模拟生产运行的业务压力。

压力测试(Stress Testing):是指不断地给被测系统增加压力,直到被测系统被压垮,从而确定系统能承受的最大压力。它实际上是通过对系统不断施压,来确定系统瓶颈或不能接受用户请求的性能点,以获得系统能提供的最大服务级别。换句话说,压力测试就是为了发现什么条件下系统性能变得不可接受。

负载测试(Load Testing):通常是让被测系统在其能忍受的压力极限范围内(或临界状态下)连续运行,来测试系统的稳定性。其目的是找到系统的处理极限,为系统调优提供依据。

可靠性测试(Reliability Testing):在给被测系统加载一定业务压力的情况下,使系统运行一段时间,以此来测试系统是否稳定。

举个栗子~(该例子来自于《软件测试技术基础》):

假设张三很轻松就可以扛一袋米,扛两袋米很吃力,最多能扛三袋米,则:

  • 常规性能测试:让张三扛1袋米。
  • 压力测试:让张三扛1袋米、2袋米、3袋米、4袋米,直至其被压垮,并得出结论,张三最多只能扛3袋米。
  • 负载测试:让张三扛2袋米,然后去操场跑圈,看他多久能累倒。
  • 可靠性测试:让张三扛1袋米,然后去操场跑圈,看他多久能累倒。