软件测试基础概念

软件测试定义:软件测试是在规定的条件下对程序进行操作,以发现程序错误,衡量软件质量,并对其是否能满足设计要求进行评估的过程

软件测试意义:没有经过测试的软件很难在发布之前知道该软件的质量 就好比 ISO 质量认证一样 软件同样也需要质量的保证 这个时候就需要在团队中开展软件测试的工作。在测试的过程发现软件中存在的问题 及时让开发人员得知并修改问题 在即将发布时 从测试报告中得出软件的质量情况。

 

软件测试阶段划分

按照开发阶段分类:单元测试、集成测试、系统测试、验收测试

单元测试:又称模块测试,是对程序中的单个子程序或具独立功能的代码段进行测试的过程

集成测试:集成测试是单元测试的基础上,将通过单元模块组装成系统或子系统,再进行测试,重点是检查模块之间的接口是否正确。

系统测试:系统测试是针对整个产品系统进行的测试,验证系统是否满足了需求规格的定义,以及软件系统的正确性和性能等是否满足其规约所指定的要求

 验收测试:验收测试是部署软件之前的最后一个测试操作。主要突出用户的作用,同时软件开发人员也有一定的参与

     验收测试可以分成 Alpha 测试和 Beta 测试。Alpha 测试是由用户在开发环境下完成的测试,Beta 测试是由用户在用户环境下完成的测试。

 

根据在软件测试工作中对软件代码的可见程度进行的划分:黑盒测试、白盒测试、灰盒测试

黑盒测试:指的是把被测的软件看作是一个黑盒子,我们不去关心盒子里面的结构是什么样子的,只关心软件的输入数据和输出结果。

优点:

1.对于较大的代码单元来说,黑盒测试比白盒测试效率较高。

2.测试人员不需要了解细节,包括特定的编程语言。

3.测试人员和开发人员是彼此独立的。

4.从用户的角度测试,很容易被理解和接受。

5.有助于暴露与任务规格不一致或者有歧义的地方。

6.测试用例可以在需求规格完成之后马上执行。

缺点:

1.测试的只有一小部分,不可能测试全部输入。

2.没有清洁和简明的需求规格说明书,测试用例很难设计。

3.如果测试人员,不被告知开发人员已经执行过的用例,在测试数据上会存在不必要的重复。

4.很多测试路径没有测试到。

5.不能直接对特定程序段进行测试,改程序段可能隐藏更多错误。

6.大部分和研究相关的测试都是直接针对白盒测试的。

白盒测试:指的是把盒子打开,去研究里面的源代码和程序执行结果。

优点:

迫使测试人员去了解软件的实现 检测代码中的每条路径和分支 揭示隐藏在代码中的错误

对代码的测试进行比较彻底

缺点:白盒测试投入较大,成本较高 白盒测试不验证规格的正确性 无法检查代码中遗漏的路径和数据敏感性错误黑盒测试

灰盒测试:灰盒测试关注输出对于输入的正确性,同时也关注内部表现,但这种关注不像白盒那样详细、完整,只是通过一些表征性的现象、事件、标志来判断内部的运行状态,有时候输出是正确的,但内部其实已经错误了,这种情况非常多,如果每次都通过白盒测试来操作,效率会很低,因此需要采取这样的一种灰盒测试的方法。

按照测试点划分:

功能:检查实际的功能是否符合用户的需求,功能测试又可以细分逻辑功能为:测试、界面(UI)测试、易用性测试、安装测试、兼容性测试等

性能:是通过自动化的测试工具模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进行测试。主要有时间性能和空间性能两种

 

原文地址:https://www.cnblogs.com/qqxin/p/11484509.html