天天看点

软件测试概况

一、概述

1.软件测试定义两面性

首先正常思维:评价一个程序或系统的特性或能力是否达到预期的结果,在设计规定的环境下测试软件的所有功能保证全部通过。

逆向思维:假定软件有错误,找到容易出现错误的地方或系统的薄弱环节,试图破坏系统直至没问题。

2.测试环境

公司项目:开发环境------->测试环境------->生产环境

企业项目:开发环境------->测试环境------->预生产环境------->生产环境

3.软件的分类

C/S(Client/Server),即客户端服务器模式。需要下载客户端才能使用,用户体验好,功能强大,ui效果极佳,但是内存占用大,服务端数据更新客户端必须更新,对设备要求高。

B/S(Brower/Server),即浏览器服务器模型。通过浏览器访问不需要下载客户端,快捷便利,服务器更新数据对于我们没有影响,内存占用小,但是用户体验差,功能不如客户端强大。

3.软件测试分类

软件测试概况

(1)按测试阶段划分:单元测试、集成测试、系统测试、验收测试。

单元测试:单元测试是对软件组成单元进行测试。其目的是检验软件基本组成单位的正确性。测试的对象是软件设计的最小单位:模块。

集成测试:将程序模块采用适当的集成策略组装起来,对系统的接口及集成后的功能进行正确性检测的测试工作。

系统测试:将软件系统看成是一个系统的测试。包括对功能、性能以及软件所运行的软硬件环境进行测试。时间大部分在系统测试执行阶段。

验收测试:验收测试是部署软件之前的最后一个测试操作,它是技术测试室的最后一个阶段,也叫做交付测试,验收测试的目的是保证软件的准备就绪,按照项目合同、任务书、双方约定的验收依据文档,向软件的购买者展示该软件的原始的需求。

(2)按是否覆盖源代码:黑盒测试、白盒测试、灰盒测试。

黑盒测试:也称功能测试,测试中把被测的软件当成一个黑盒子,不关心盒子的内部结构是什么,只关心软件的输入数据与输出数据。

白盒测试:称结构测试,透明盒测试、逻辑驱动测试或基于代码的测试。白盒值的是打开的盒子,去研究里面的源代码和程序结果。

灰盒测试:是介于白盒测试与黑盒测试之间的一种测试,灰盒测试多用于集成测试阶段,不仅关注输出、输入的正确性,同时也关注程序内部的情况。

(3)按是否运行:静态测试、动态测试。

静态测试:是指不运行被测程序本身,仅通过分析或检查源程序的语法、结构、过程、接口等来检查程序的正确性。对需求规格说明书、软件设计说明书、源程序做结构分析、流程图分析、符号执行来找错。

动态测试:是指通过运行被测程序,检查运行结果与预期结果的差异,并分析运行效率、正确性和健壮性等性能。

(4)按是否自动化:人工测试、自动化测试。

人工测试:就是由人去一个一个的输入用例,然后观察结果,和机器测试相对应,属于比较原始但是必须的一个步骤。

自动化测试:就是在预设条件下运行系统或应用程序,评估运行结果,预先条件应包括正常条件和异常条件。简单说自动化测试是把以人为驱动的测试行为转化为机器执行的一种过程。

(5)更多测试方式:冒烟测试、回归测试、随机测试、探索测试等。

冒烟测试:冒烟测试的对象都是每一个新编译的需要正式测试的软件版本,目的是确认软件的基本功能正常,可以进行后续的测试工作,冒烟测试的执行者是版本编译人员。

回归测试:回归测试是指修改了旧代码后,重新进行测试以确认修改没有引入新的错误或导致其他代码产生错误。

随机测试:主要是根据测试者的经验对软件进行功能和性能抽查。对被测软件的一些重要功能进行复测,也包括测试那些当前的测试用例(TestCase)没有覆盖到的部分。

探索测试:探索性测试可以说是一种测试思维技术。它没有很多实际的测试方法、技术和工具,但是却是所有测试人员都应该掌握的一种测试思维方式。探索性强调测试人员的主观能动性,抛弃繁杂的测试计划和测试用例设计过程,强调在碰到问题时及时改变测试策略。 4.工作测试种类

功能测试------>接口测试------>性能测试------>自动化测试

从左到右是难度逐渐增加,根据项目使用的时间先后顺序是2-1-3-4

5.测试流程

(1)项目框架

软件测试概况

(2)具体细化

软件测试概况

项目立项--->需求分析--->需求评审--->测试用列--->用列评审--->冒烟测试--->根据用列来测试--->缺陷报告--->回归测试--->验收测试--->交付