文章目录提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
- 前言
- 一、软件测试的目的与定义
- 二、软件研发模型
- 2.1可简单了解的模型
- 瀑布模型
- V模型
- W模型
- 快速模型
- X模型
- 螺旋模型
- 2.2需要重点记忆和了解模型
- 迭代开发
- 敏捷开发
- 三.软件的分类
- 3.1按照阶段划分:单元测试-集成测试-系统测试-验收测试
- 3.2按照技术划分:黑盒测试,白盒测试,灰盒测试
- 3.3 按照是否运行程序划分
- 3.4 其他测试
- 总结
前言
提示:以下是本篇文章正文内容,下面案例可供参考
一、软件测试的目的与定义定义:在规定的条件下操作程序, 发现缺陷,评估软件质量
目的:尽可能多 地发现软件的缺陷,预防缺陷,对软件的质量进行评估, 以提高软件的质量
测试的对象和范围:程序,文档和数据
测试的风险:进度风险,质量风险,人员风险,成本风险,变更风险
流程:计划–>需求分析–>设计–>编码–>测试–>运行和维护
优点:
有利于大型软件研发过程中人员的组织和管理
有利于开发方法和工具的使用
提高了软件的质量和开发效率
缺点:线性化的开发模型,不怎么灵活
流程:用户需求–>需求分析–>概要设计–>详细设计–>编码–>单元测试–>集成测试–>系统测试–>验收测试
优点:
软件测试分为若干个阶段,更能提高软件的质量
软件测试和开发级别一一对应
缺点:
忽略了软件测试的对象不仅是程序,还包括文档
验收测试是最后阶段,需求阶段的问题只能到验收测试才能发现
流程:用户需求(用户需求验收测试设计)–>需求分析(系统测试设计)–>概要设计(集成测试的设计)–>详细设计(单元测试的设计)–>编码(单元测试)–>集成测试(集成)–>系统测试(实施)–>验收测试(交付)
优点:
W模型,又称双V模型,测试活动和开发活动同步进行
软件测试的对象不仅仅是程序,还包括文档
尽早测试可以降低开发成本
缺点:
无法迭代(相对的,不是绝对的)
又称原型定义,非线性化的研发模型,主要是适用于小公司,客户到了最后才知道软
件的最终模样,先做成一个demo(模型或者样本),给客户进行产品的预演。
最早引入 探索性测试 的模型
软件分为几个片区,然后集成在一起形成最终的软件
非线性化的研发模型
引入了 风险管理 ,进行评估
每次只设计和实现产品的一部分,通过逐步完成的方法叫做 迭代开发 ,每次设计和实
现一个阶段叫做 迭代 。
优点:
降低需求变更的成本
得到早期的用户反馈
持续的集成和测试
敏捷开发以 用户需求进化 为核心,采用迭代,循序渐进的方法进行软件开发
敏捷开发的 核心价值观 :
个体交互 重于 过程和工具(个体交互主要指的是人与人之间的沟通)
可用的软件 重于 完备的文档
客户协作 重于 合同谈判
响应变化 重于 遵循计划
优点:
敏捷开发确实是项目进入实质开发的阶段,用户可以很快看到一个基线架构版的产
品,敏捷注重市场快速反应能力。
缺点:
敏捷注重人员的沟通,忽略文档的重要性,若是项目人员流动太大,又给维护带来
不少难度,特别是项目中存在新手较多时,老员工比较累
单元测试:
对软件中的 最小可测单元 进行检查和验证:如java中的类,C语言中的函数,UI页面中
的窗口等
单元测试的依据: 详细设计
谁测试:90%是开发人员测试,因为必须有代码的阅读能力
单元测试能够发现80%左右的缺陷
单元测试工具:java中的junit,python语言中的pytest,unittest
单元测试 侧重检查程序内部结构,逻辑控制和异常处理
集成测试:
在单元测试的基础上,把模块组装成为系统或者子系统,然后进行测试,又称 联合测
试,组装测试
集成测试的依据: 概要设计
谁来做:软件测试工程师
侧重检查模块与模块之间及接口传递数据的正确性
分类:
非增量式集成,又称 一次性集成
增量式集成:
自顶向下增量式集成需要编写: 测试桩
自底向上增量式集成需要编写: 驱动程序
系统测试:
将软件,硬件,网络等设备连接系统进行测试
依据: 需求规格说明书 (产品经理编写的需求文档)
分类(或范围):
功能测试 :测试软件的功能是否正常实现
性能测试 :测试系统所消耗的时间和资源
压力测试 :测试系统在什么情况下会达到极限
容量测试 :测试系统最大的访问用户数
安全测试 :验证系统是否容易被攻击
可用性测试 :验证系统使用是否方便
安装测试 :安装和卸载
配置测试 :测试系统软件和硬件的最优配置
异常测试 :检查系统对于异常情况下的处理
备份测试 :系统的数据备份
健壮性测试 :用于测试系统出现故障时,能否自动恢复或者忽略故障继续运行
文档测试 :测试帮助文档
在线帮助测试 :联系产品的售后客服
网络测试 :不同网络下的使用情况,5G,4G,3G,2G,WIFI
稳定性测试 :软件长时间运行,系统能否正常运行
GUI测试 :界面测试
验收测试
依据: 用户需求 ,需要用户参与
分类:
正式验收测试
非正式验收测试
α测试(阿尔法测试)和β测试(贝塔测试)
阿尔法测试和贝塔测试的区别:
阿尔法测试是由 公司内部人员 测试,贝塔测试是由 典型用户 测试
阿尔法测试 遇到bug可以控制 ,贝塔测试 遇到bug不可控制
阿尔法测试使用的是 测试环境 ,贝塔测试使用的是 现网环境,又称线上环境、公网
环境、生产环境
阿尔法测试 发现问题能够及时修复 ,贝塔测试 需要统一收集然后集中修复
黑盒测试 :不关注软件内部逻辑结构,只关注输入和输出,关注功能和性能,适用
于 系统测试和验收测试
白盒测试 :与黑盒测试相反,适用于 单元测试
灰盒测试 :介于白盒和黑盒之间,适用于 集成测试、接口测试
动态测试 :运行被测试软件
静态测试 :静态查看文档,或者进行代码走查、代码审查
- 兼容性测试 :将软件运行在不同的设备上,保证软件在各种设备上都能够提供正常
的服务,如:web测试不同的浏览器,app测试不同型号的手机。 - 冒烟测试 :又称BVT测试或者预测试,在正式测试之前,抽取项目中基本流程用例
(占用例总数的 10% 左右),全部执行通过。如果冒烟测试不通过,项目直接打回。
冒烟测试之前需要搭建测试环境,测试时间半天至一天。 - 回归测试 :执行上个版本的测试用例,查看bug是否修复,或者修复的bug是否引入
新的问题。
以上就是今天要讲的内容,本文仅仅简单介绍了软件测试的定义,模型和分类,让大家对软件测试有个大致的印象,了解一下软件测试的一些技术名称,黑盒,白盒和灰盒测试的原理等



