软件测试基础概念和理论(一)

1.1 测试的目的和原则

软件测试测目的

(1)为了找到软件/网站存在的问题(bug、用户体验不好、界面的美观性、功能是否全面)

(2)通过提前找到软件存在问题,可以降低商业风险【省钱】

软件测试的定义

软件测试就是通过人工或者自动化对软件系统进行测试,从而找到预期结果和实际结果的差异

  • 预期结果:在测试之前我们对软件系统所做出的预期结果的设想

  • 实际结果:测试之后的实际结果

1.2、软件测试基本原则

1)软件测试只能证明存在问题,不能证明不存在

2)不能进行穷举测试,应该进行分类测试

3)测试工作应该尽早介入,可以降低修复成本

4)缺陷聚集原则,二八法则

这个现象出现的原因:

(1)负责这个模块的程序员技术水平一般

(2)模块功能功能复杂

5)测试依赖环境(B/S   C/S

B/S架构:Broswer/Server,通过浏览器访问服务

测试B/S架构所准备的三款浏览器:谷歌、火狐、IE【苹果、欧鹏、QQ、360、搜狗】

C/S架构:Client/Server,通过客户端程序访问服务

测试C/S架构准备:PC:(win7、8、10,mac,linux)      手机:(安卓、苹果、鸿蒙)

6)杀虫剂现象

测试人员在经过一段时间后会进入自己的固有的思维意识,很难在测试出其他的bug,这个时候可

以进行交叉测试,就是交换测试人员。

7)不存在缺陷谬论

1.3、软件开发模型(软件的生命周期)

软件测试与软件的开发模式有着紧密的联系,作为一名测试人员,应该充分理解软件的开发模式,

以便找准自己在其中的位置,从而发挥自身的价值

在软件开发的几十年实践中,人们总结了很多软件开发模型用来描述和表示一个复杂的开发过程,

软件开发有三种模式:

瀑布模型            快速原型模型           螺旋模型

1、瀑布模型

软件测试基础概念和理论(一)_第1张图片

第一个阶段:项目立项阶段

  1. 调研:

    • 首先对项目进行可行性研究,通过可行性研究可以判断项目是否挣钱

    • 调研完成后会得到一个可行性调研报告。

    • 由项目负责人来完成

  2. 需求分析:

    • 调研判断项目没问题以后,就可以进行需求分析。

    • 由项目经理完成。

    • 最终会得到一个需求规格说明书。规格书中仅仅是需求大体说明。

第二个阶段:项目开发阶段

  1. 概要设计:

    • 就是将需求规格书中的内容落地。

    • 概要设计完成后,会得概要设计文档。

    • 这个是由经验丰富的前端和的后端程序员。

    • 概要设计文档中会将整个项目分成若干个功能模块,而且会明确说明每个模块中的功能。

  2. 详细设计:

    • 在详细设计中,明确指定了模块具体实现的细节。

    • 整个工作由一线程序员来完成。

    • 最终会得到一个详细设计文档。

  3. 编码:

    • 其实就是程序员写代码。

    • 由程序员完成的。

    • 最终得到的是代码。

  4. 软件测试:

    • 测试软件是否可以正常运行,是否达到了预期的功能。

    • 由测试工程师来完成。

    • 最终会得到测试报告。

第三个阶段:项目运维阶段

  1. 上线,用才能访问

瀑布模型的特点

  • 是以文档驱动,后面所有的工作都是基于前面的文档的内容。

  • 每个阶段执行一次,而且是线性依次进行的

  • 开发模式中,瀑布模型是非常重要的一种

瀑布模型的优点

(1)各个阶段非常清晰

(2)每个人只需要关注自己的阶段 ,分工明确

瀑布模型的缺点
下面的阶段是依赖上面阶段的分析结果的,一旦上面出现错误,那么下面全部都错了
整个流程过分依赖需求分析结果,这种模式不能适应变化频繁的项目
这种模式适合传统项目和行业:银行、保险、建筑

2、快速原型模型

  • 一个项目在很短时间能,就有一个版本上线了,这个版本往往功能不全,而且有bug

  • 在后续的版本中陆续修复bug,并添加完善功能

软件测试基础概念和理论(一)_第2张图片

特点:

  • 快速上线

  • 支持用户参与

优点:

克服了瀑布模型的缺点,减少中间环节,可以及早发现问题并进行修复
缺点:
仅仅适合中小型项目,不适合大型项目

1.4、软件测试模型

测试模型:所谓的模型就是这个行业的人总结出来的测试经验。

1、V模型

  • 这种模型其实就是在前面瀑布模型的基础上进行测试的

  • 这种模型其实也是瀑布模型的变种

  • 根据测试阶段不同,测试也同样分成四个不同的阶段

软件测试基础概念和理论(一)_第3张图片

2、W(双V)模型

这种模式主要是为了解决V型模型存在的问题,解决思路就是测试前移

软件测试基础概念和理论(一)_第4张图片

W型比V型多的部分

  • 集成:每个程序员将自己负责的功能模块合并到一起

  • 实施:将 开发好的软件安装到客户的服务器上

  • 交付:教给用户如何使用软件

静态和动态测试

  • W模型中,对各种的文档进行测试,都是静态测试

  • 对程序进行测试,就是动态测试

V模型 W(双V)模型
优点 整个流程比较清晰,即包含了底层测试,也包含了对高层进行测试 测试工作前移,可以今早发现存在的问题
缺点 本质上还是瀑布模型,因此具有瀑布模型的缺点 对技术和管理能力要求较高

1.5、 软件质量模型

软件测试基础概念和理论(一)_第5张图片

1.6、软件测试分类

1、按照阶段分类

1)单元测试

检测一个单独的模块(程序的最小单位)是否正常运行,是否满足测试用例的要求

2)集成测试(组装测试)

在完成单元测试后,进行集成测试,就是将多个模块组合起来进行检测

3)系统测试

在完成单元测试后进行的测试环节,系统测试就是将软件作为一个整体进行测试,以软件需求说明

作为测试依据

4)验收测试

检查软件是否满足客户的要求,对软件做最后的测试
(1)α 测试【 Alpha 】:阿尔法测试的软件版本内存版本,软件 bug 较多,一般不让用户直接
使用,而是公司内部交流使用。
(2)β 测试【 Beta 】:贝塔测试就是软件的公测版本,目的就是让更多的用户通过使用软件
来发现更多的问题。
(3)γ 测试【 Gamma 】:伽马测试就是软件的正式候选版,这个版本和用户最后使用的正式
版几乎完全一致。

2、按照技术划分(是否查看源码划分)

1)白盒测试

直接读取程序代码,不需要执行程序

2)黑盒测试(数据驱动测试)

直接使用软件,不考虑程序内部结构和代码

例如:输入账号、密码,一点就能登录成功,就表示测试通过

3)灰盒测试

白盒测试和黑盒测试的结合

(1)读取程序代码

(2) 执行程序

3、按照是否运行程序划分

1)静态测试
W 模型中,对各种的文档进行测试,都是静态测试
2)动态测试
对程序进行测试,就是动态测试

4、按照是否自动运行

1)人工测试
所有测试工作,都有测试人员手动进行测试
2)自动化测试
通过 python 开发自动化工具,用工具完成测试工作

5、其他分类

1)冒烟测试

测试软件基础功能是否正常
2)回归测试
在测试工作中,一旦发现 bug ,需要将这个 bug提交给开发,开发修复完成后,需要重新对这些
bug 再次进 行测试
2)随机测试
虽然叫做随机测试,但是不是真的随机
这里的随机其实是重复测试,包括测试之前的测试用例种没有涵盖的部分
4)探索测试

1.7、软件缺陷

缺陷不等于 bug bug 仅仅是缺陷中的很小的一个部分而已
什么是缺陷:只要让测试人员感觉不爽,那么这个就是缺陷

1、软件缺陷判定标准

1)软件未能达到需求规格书中的要求

2)软件的功能超出需求规格书的要求

3)软件出现了需求规格书不允许的错误
4)软件出现了常规错误(需求规格书未明确指定)

2、软件缺陷产生原因【缺陷只能减少,不能完全避免】

1) 对于需求文档等文等文件解释、理解错误【需求说明会】
2)设计文档本身有错误
 
3) 程序代码错误
4) 硬件和软件系统有错
 

3、软件缺陷类型

1)功能错误

软件没有达到需求文档的功能要求,或者功能异常

2)界面错误

软件功能正常,但是界面不好看或者未达到规格说明中的要求

3)兼容性错误
软件和系统中的其他的程序冲突,导致软件无法运行
4)易用性错误
软件用起来不好用
 

你可能感兴趣的:(功能测试)