【软件测试】一篇总结软件测试的基础知识
- 一、基本理论
- 1、什么是软件测试?定义、目的、标准、方向?缺陷包含(Bug定义)
- 2、测试与开发模型?流程?
- 3、测试阶段分类?
- 3、测试用例(粒度、评审)、设计方法
一、基本理论
测试:确保上线质量,协助开发,预防缺陷
发展:技术方向(自动化测试或者架构师)、管理方向(业务精进)
1、什么是软件测试?定义、目的、标准、方向?缺陷包含(Bug定义)
软件测试:使用技术手段检查产品是否符合设计要求、用户使用需求和实现一致性。目的:确保产品质量、发现缺陷
定义:一个过程;目的:是否满足要求和需求;发现缺陷:预期结果和实际结果差别,定位bug
原则:早介入、不能穷尽测试、验证有缺陷;
软件质量:国外ISO、国内GBT
测试方向:功能(界面UI、业务功能、易用性、安装卸载、兼容性(浏览器和操作系统)、)、安全性、性能、可靠性
Bug:程序中的错误,编写 程序的错误
缺陷:开发维护程序的错误和问题、不满足需求文档和用户要求的;(功能问题、不易使用)
缺陷产生:需求阶段(需求文档不合理)、设计阶段编码(代码问题)、运行环境和配置系统问题
缺陷类型:功能、UI、兼容性、数据、易用性、改进意见、架构问题
提交bug或者缺陷:id、标题、类型、严重程度(3、4级:严重影响功能使用)、优先级、所属模块、缺陷详细描述(重现步骤)、处理结果(状态:新建、指派、打开、修复、回归)、附件;
2、测试与开发模型?流程?
测试工作流程:需求文档进行需求分析、然后制定测试计划(模块进度、测试策略、风险评估规避)和方案(测试目标、工具、方法、重点)、针对测试点进行测试用例的设计、测试用例执行、缺陷管理、评估和编写测试报告。
开发模型:
1、瀑布模型(需求分析、概要设计、详细设计、编码测试维护):阶段依赖性、文档驱动质量保证;不适合变动
3、快速原型:搭框架
2、增量:及时反馈和交付,不断迭代增量
4、螺旋开发、迭代开发、敏捷开发()
测试模型:
1、V模型: 基于瀑布模型-然后测试(单元、集成、系统、验收模型)
2、w模型;基于增量模型-针对每个增量版本的集成实施和交付进行测试(单元、集成、系统、验收模型);并行独立
3、测试阶段分类?
1、开发阶段:单元测试(白盒、方法测试)、集成(功能、或者模块之间测试)、系统(整体、黑盒和白盒)、验收交付测试(阿尔法测试、 贝塔测试(内部测试和外部测试))
2、是否覆盖源代码:
黑盒(功能测试(界面UI、业务功能、易用性、安装卸载、兼容性、)、性能测试(响应吞吐、稳定性、负载、压力测试))
白盒(语句、判断、条件覆盖、路径覆盖 )
3、其他测试:
回归测试()、冒烟测试(类似硬件测试,测试基本功能和模块、)
3、测试用例(粒度、评审)、设计方法

用例:用户使用时的案例
测试用例:为了某个目标所设计的输入、前置条件、操作步骤、预期结果:
编号ID(项目_模块_编号)、模块名称(预期结果_测试点)、用例名称、前置条件、输入、操作步骤、预期结果、优先级(核心业务模块、使用频率高、基本功能有关的);真实执行结果、设计者、日期、对应开发人员、测试用例的类型
特点:有效性、可复用、可评估性、管理性;明确性、代表性、简洁性
重点: 关注和理解需求
原则:测试优先级(对程序的重要性和错误的风险)、用尽可能少的测试用例发现最多的错误
评审:同行评审:协作用例设计、用户评审:看需求

等价类划分法: 所有情况无法穷举测试;单个输入条件;针对输入数据的所有可能分为两类,每一类子集合(都是等效的)选出有代表性的测试用例-
确定要求(拆出规则:长度、类型、规则)-划分有效和无效集合-选择一个测试用例执行
1、有效等价类:满足需求的输入数据集合
2、无效等价类:不满足要求的集合测试看程序的处理容错性、健壮性
qq登录
要求:账号6-10位:整数数字、不能以0开头
有效:6位、7位 .....10位(开头不能为0)
无效:小数、字母、字符、0开头、特殊字符,以及组合
边界值:作为等价类划分的补充;输入和输出边界(上点离点内点)最容易导致程序出错
因果图法:列出多个输入条件的各种组合,然后与列出的输出(输出结果)对应
1、恒等:有因有果:取钱-就有打印小票
2、非:有原因就无错误结果、没原因就出现错误结果
3、或、与
约束条件:互斥、包含、屏蔽、唯一、要求
例如ATM机存钱过程:放进去100元、选择按钮存100元,输出存钱成功

因果图转化为判定表或者叫决策表:某些操作依赖于多个逻辑条件的组合
条件桩(输入所有条件)、输出桩(输出所有操作)、条件项、输出项

正交表法(生成正交表的工具allpairs):如果因果图和判定表的输入输出太多了,那么就用正交表挑出代表性的用例;用少量的用例来覆盖
例如京东筛选条件:品牌、分类、cpu等信息
场景法:预设场景的整个流程(操作步骤),事件触发的情景,用于冒烟测试:就是基本功能测试
分为1、基本流、备选流

流程分析法:白盒路径覆盖分析方法、黑盒找出功能的使用流程覆盖所有模块(业务流程)
把系统的某个流程看做是路径,就针对该路径使用路径分析方法设计测试用例
矩阵图--转化为流程图(广度、深度)每个功能所能到达的地方

错误推断法:经验所得