软件测试理论(测试分类,缺陷,测试用例)

一、CS和BS软件架构

        CS即客户端-服务器架构BS即浏览器-服务器架构的区别总结:

效率:

        c/s:效率高,某些内容已经安装在系统中了;

        b/s:每次都要都要加载最新的数据;

升级:

        b/s:无缝升级;

        c/s:删除旧版本在安装新版本;

安全:

        c/s:更安全,需要安装、注册、登录;

        b/s:有浏览器即可使用,安全程度低;

开发成本:

        b/s:成本低;

        c/s:需要不同的系统要不同的开发人员,成本高;

二、语言发展史

  1. 机器语言、机器码(0和1);计算机底层能识别

  2. 汇编语言:最接近机器码的语言,依然晦涩难懂,比其它高级语言运行速度快

  3. 高级语言:C、PHP、Java、python等

三、为什么不让开发自己测试

  1. 思维定式

  2. 测试力度

  3. 关注度

四、软件测试的分类

软件测试理论(测试分类,缺陷,测试用例)_第1张图片

五、按开发阶段划分

1. 单元测试:

        单元测试是对软件中的基本组成单位进行的测试。目的是检验软件基本组成单位的正确性;

2. 集成测试:

        也叫组装测试,通常在单元测试的基础上,将所有程序模块进行有序的,递增的测试;

        集成测试是在软件系统集成过程中所进行的测试。目的是检查软件单位之间的接口是否正确;

3. 系统测试:

        系统测试是对已经集成好的软件系统进行彻底的测试,以验证软件系统的正确性和性能等是否满足其规约所指定的要求;

4. 验收测试:

        (1)α测试:Alpha是内测版本,通常只在软件开发者内部交流,或忠实的粉丝之间发布,该版本软件的bug较多,普通用户最好不要安装

        (2)β测试:Beta是公测版本,是对所有用户开放的测试版本,免费发布,因为里面还有存在一些bug。

        (3)γ测试:Gamma版本就是正式发布的候选版本。

六、按是否查看代码划分

1. 黑盒测试:

        黑盒测试也称功能测试,只关心它的功能,不关心它内部实现的逻辑代码

        黑盒测试包括:等价类、因果图、边界值、猜错法、随机数法、测试用例覆盖、输入覆盖、输出覆盖

2. 白盒测试:

        白盒测试也称结构测试,只关心它的代码实现逻辑,不关心它的功能。

        接口测试也是白盒测试的一种。

        白盒测试包括:语句覆盖、判定覆盖(分支覆盖)、条件覆盖、判定/条件覆盖、组合覆盖、路径覆盖;

3. 灰盒测试:

        灰盒测试是介于黑盒测试和白盒测试之间的一种测试方法,既关心输入输出的正确性,又关心程序内部的情况。

        灰盒测试多用于集成测试阶段

七、按是否运行分类

  1. 静态测试:指不实际运行被测软件,而只是静态地检查程序代码、界面或者文档中肯存在的错误过程。

  2. 动态测试:指实际运行被测程序,输入相应的测试数据,检查实际输出结果和预期结果是否相符的过程。

八、按是否手工执行

1. 手工测试:

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

总结优缺点:

        优点:自动化无法替代探索性测试,发散思维类无既定结果的测试。

        缺点:执行效率慢,量大易错。

2. 自动化测试:

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

九、测试策略

1. 冒烟测试:

        是指在对一个新版本进行系统大规模的测试之前,先验证一下软件的基本功能是否实现,是否具备可测性。

2. 回归测试:

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

3. 随机测试:

        是指测试中的所有输入数据都是随机生成的,其目的是模拟用户的真实操作,并发现一些边缘性错误。

4. 探索性测试:

        探索性测试可以说是一种测试思维技术。它没有很多实际的测试方法、技术和工具,但是却是所有测试人员都应该掌握的一种测试思维方式。

十、缺陷

        软件缺陷:是指软件或程序中存在各种问题及错误;导致软件产品在某程度上不能满足用户的需求。

十一、软件缺陷的判定标准

  1. 软件未达到需求规格说明书中标明的功能。

  2. 软件出现了需求规格说明书指明不会出现错误的地方。

  3. 软件的功能超出了需求规格说明书指明的范围。

  4. 软件未达到需求规格说明书虽未指明但应该达到的目标。

  5. 软件测试人员认为软件难以理解,不宜使用,运行速度慢,或者最终用户体验不好。

简单说就是,未达到需求、未达到常识性

十二、软件缺陷产生的原因

软件缺陷产生是不可避免的,造成软件缺陷产生的原因主要归纳如下:

  1. 需求解释、记录或者定义错误。

  2. 设计文档说明存在错误或者拼写错误。

  3. 编码说明、程序有误。

  4. 硬件或者软件系统上存在错误。

十三、软件缺陷的类型

  1. 功能错误

  2. 界面错误

  3. 兼容性缺陷

  4. 易用性问题

  5. 改进建议

十四、软件测试的定义

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

        人工和自动化手段来进行测试,目的是找到预期结果和实际结果之间的差异。

十五、软件测试的目的

        用最少的人力、物力、财力,找到软件中的问题并修复,从而降低商业风险。

十六、测试原则

  1. 只能证明软件存在问题,不能证明不存在问题

  2. 不能进行穷尽(穷举)测试,应该分类别测试

  3. 测试工作要尽早的介入,降低修复成本

  4. 缺陷存在集群现象,二八原则:20%的模块中存在80%的缺陷

  5. 测试依赖环境(系统、浏览器)

  6. 杀虫剂现象

  7. 不存在缺陷谬论

十七、测试用例

定义:是为特定的目的而设计的一组测试输入、执行条件和预期结果的文档。测什么?怎么测?

十八、测试用例八大要素

软件测试用例的基本要素包括用例编号、用例标题、测试项目、用例级别、预置条件、测试输入、执行步骤、预期结果

你可能感兴趣的