单元测试是软件测试的最基础环节。
单元测试是对软件中的基本组成单元进行的测试,如一个模块、一个过程等等。它是软件动态测试的最基本的部分,也是最重要的部分之一,其目的是检验软件基本组成单位的正确性。
单元测试是软件测试的最基础环节。
单元测试是对软件中的基本组成单元进行的测试,如一个模块、一个过程等等。它是软件动态测试的最基本的部分,也是最重要的部分之一,其目的是检验软件基本组成单位的正确性。
导致软件缺陷的最大原因是软件需求规格说明书。
因为软件缺陷产生的原因有很多,典型的原因如下:
各种来源导致缺陷会广泛分布在软件开发的各个阶段,需求规格说明书、软件设计、代码中都可以看到缺陷的身影。特别是由于需求的变化和人们对文档的轻视,导致需求规格说明书中的缺陷通常会占缺陷总数一半还多。
边界测试中所选择的输入测试数据不一定是有效数据。
边界测试的测试用例选择原则:
所以说,边界测试输入的测试数据是略大于略小于边界值,但这个数据并不一定是有效的。
验收测试是部署软件之前的最后一个测试操作。在软件产品完成了单元测试、集成测试和系统测试之后,产品发布之前所进行的软件测试活动。它是技术测试的最后一个阶段,也称为交付测试。验收测试的目的是确保软件准备就绪,并且可以让最终用户将其用于执行软件的既定功能和任务。
验收测试是以用户为主的测试,软件开发人员和QA(质量保证)人员也应该参加。由用户参加设计测试用例,使用用户界面输入测试数据,并分析测试的输出结果。一般使用实际数据进行测试。
白盒测试的条件覆盖标准强于判定覆盖(错)
条件覆盖:每个复合判定表达式的每个简单判定条件的取真和取假情况至少执行一次;
判定覆盖:又称为分支覆盖,其含义是保证程序中每个判定节点的取真和取假分支至少执行一次 。
条件覆盖不一定强于判定覆盖。条件覆盖在通常情况下是强于判定覆盖的,因为条件覆盖使判定表达式中每个条件都取到了两个不同的结果,判定覆盖却只关心整个判定表达似的值。但是,也有可能有相反的情况,条件覆盖虽然把每个简单判定条件都取到了真假两个结果,但是可能判定表达式始终只取了一个值。
如果条件覆盖中我们选取了两个测试用例:
在上述两组测试用例下:虽然满足了条件覆盖(每个简单判定条件的真假都取到了),但是因为最终整个判定表达是都是真,导致条件覆盖下永远只取到了真值,而如果是判定覆盖将会真值假值都取到。这两组测试用例就只满足了条件覆盖标准并不满足判定覆盖标准。
性能测试的范围很广,可分为常规性能测试、压力测试、负载测试、可靠性测试、大数据量测试等。
常规性能测试:软件在正常的软硬件环境下进行,不向其施加任何压力的性能测试。这里所说的正常环境一般指用户实际使用的普通环境,并模拟生产运行的业务压力。
压力测试(Stress Testing):是指不断地给被测系统增加压力,直到被测系统被压垮,从而确定系统能承受的最大压力。它实际上是通过对系统不断施压,来确定系统瓶颈或不能接受用户请求的性能点,以获得系统能提供的最大服务级别。换句话说,压力测试就是为了发现什么条件下系统性能变得不可接受。
负载测试(Load Testing):通常是让被测系统在其能忍受的压力极限范围内(或临界状态下)连续运行,来测试系统的稳定性。其目的是找到系统的处理极限,为系统调优提供依据。
可靠性测试(Reliability Testing):在给被测系统加载一定业务压力的情况下,使系统运行一段时间,以此来测试系统是否稳定。
举个栗子~(该例子来自于《软件测试技术基础》):
假设张三很轻松就可以扛一袋米,扛两袋米很吃力,最多能扛三袋米,则: