软件测试的定义和分类

软件测试的定义和分类

一、软件测试定义

1.1. 什么是软件?

软件是计算机程序,程序数据以及有关文档的集合,简单来说,软件=程序+数据+文档

1.2. 软件的分类

1.系统软件:系统软件是生成、准备和执行其他程序所需要的一组文档和数据,比如操作系统、数据库、驱动程序以及系统语言编译环境等
2.应用软件:计算机用户为了解决某些问题而产出的程序或者软件包,比如微信,购物软件等

1.3. 应用软件的架构

1.C/S架构:需要安装客户端
优点:稳定、速度快
缺点:每次都需要更新服务端和客户端
2. B/S架构:不需要安装客户端,网页访问
优点:只需要更新服务端程序

1.4. 软件测试的定义

以人工或自动的手段来运行或者测试某个程序的过程,目的在于检测它是否满足规定的需求,弄清预期结果和实际结果的差别。简单来说就是检查产品是否符合设计的要求,是一个验证和确认的过程

1.5. 软件测试的目的
  1. 以最小的人力、物力和时间成本,找出软件中存在潜在的错误
  2. 检查产品是否符合用户需求
  3. 提高软件质量以及用户体验
1.6. 软件测试的原则
  1. 证明软件中存在缺陷(软件测试实际上是为了证明软件是错误的)
  2. 不能穷尽测试
  3. 测试应该尽早接入测试(一般在需求阶段,测试应该介入测试需求文档)
  4. 28原则(80%的错误会出现在20%的地方,80%的用户只用到20%的功能,测试的重点应该放在重点功能的测试上)
  5. 不存在缺陷谬论
  6. 妥善保存一切文档

二、软件测试的分类

2.1 按测试技术分(是否覆盖源码)

1.白盒测试:对源码的测试,测试人员需要对源码进行测试,包括语句覆盖、判断覆盖、条件覆盖、路径覆盖
2.黑盒测试:对系统进行测试,测试人员看不到程序源码,只关注程序的输入和输出结果
3.灰盒测试:介于黑盒和白盒之间,既需要关注程序的输入输入,也需要了解程序内部具体的实现逻辑,多用于接口测试

2.2 按程序是否运行
  1. 静态测试:不需要运行程序,检查界面、代码以及文档中存在的错误
  2. 动态测试:需要运行程序,输入响应数据,检查预期结果和实际结果的差别
    注意:区分动态还是静态,需要观察数据是否具有流动性
2.3 按测试手段(是否自动化)
  1. 手工测试
  2. 自动化测试
2.4 按测试阶段

1.单元测试:编码之后进行测试,检查程序的类、函数、模块是否正常运行(开发或者白盒测试人员进行)
2. 集成测试:验证模块与模块,接口与接口之间是否正常运行(由开发或者白盒测试人员进行,2-4轮系统测试)
3. 系统测试:系统运行情况下,检查系统完整性,系统配置,输入输出数据等是否满足用户需求
4. 验收测试:软件测试最后一个阶段,由产品或者用户进行
5. 阿尔法测试:也叫内测或者公测,小范围的测试,一般由公司内部人员测试
6. 贝塔测试:软件用户测试,在真实的用户使用环境下执行
7. 伽马测试:由第三方检测公司进行测试

2.5. 按测试内容

1.功能测试:逻辑功能测试
2.性能测试:响应速度、资源利用率的测试
3.界面测试
4.兼容性测试
5.易用性测试
6.安全性测试

2.6. 其他测试

1.回归测试:重复执行之前的测试用例
1)验证之前的版本产生的缺陷是否全部修复
2)确认已修复的缺陷有没有引发新的问题
2.冒烟测试:在对一个版本进行大规模测试之前,先检查基本功能是否都已经实现
3.随机测试(探索性测试/自由测试):测试人员基于一些经验和直觉,发现一些边缘性的问题

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值