1、什么是软件测试
使用技术手段(人工和自动)来验证软件是否满足需求。
2、软件测试的目的
为找到软件中的代码或业务逻辑问题并修复,从而降低商业风险。
3、测试分类
(1)按测试阶段划分
● 单元测试:针对代码进行测试(又称白盒测试)
● 集成测试:主要针对模块与模块之间或系统与系统之间的接口进行验证(又称接口测试)
● 系统测试:将软件系统看成是一个系统的测试。包括对功能、性能以及软件所运行的软硬件环境进行测试。
● 验收测试:包括内测(α) 公测(β)
(2)按代码可见度划分
● 黑盒测试:看不见代码,针对程序功能进行测试
● 灰盒测试:看见部分代码,针对程序接口进行测试
● 白盒测试:看见全部代码,针对源代码进行测试
4、软件开发的生命周期
需求分析、计划、设计、编码、测试、运营维护
5、软件测试的生命周期
需求分析 测试计划 测试设计、开发 执行测试 测试评估
6、软件测试流程
需求分析 编写计划 编写用例 执行用例 缺陷管理 测试报告
7、软件测试的两个模型
(1)V模型
◆ 特点:明确的标注了测试过程中存在的不同类型的测试,并且清楚的描述了这些测试阶段和开发过程期间各阶段的对应关系。
◆ 局限性:仅仅把测试作为在编码之后的一个阶段,未在需求阶段就进入测试。
(2)W模型
◆ 特点:测试的对象不仅是程序,需求、设计等同样要测试,测试与开发是同步进行的;有利于尽早地全面的发现问题。
◆ 局限性:需求、设计、编码等活动被视为串行的;测试和开发活动也保持着一种线性的前后关系,上一阶段完全结束,才可正式开始下一个阶段工作。无法支持敏捷开发模式。对于当前软件开发复杂多变的情况,W模型并不能解除测试管理面临着困惑。
8、什么是测试用例
为测试项目而设计的执行文档
9、测试用例的目的
① 防止漏测
② 作为实施测试的标准
10、测试用例的八大要素
① 用例编号 ② 用例标题 ③ 项目\模块 ④ 前置条件 ⑤ 优先级 ⑥ 测试步骤 ⑦ 测试数据 ⑧ 预期结果
11、设计用例方法
(1)等价类划分
① 解决穷举问题(如:页面级的输入框类测试)
② 步骤 : ● 明确需求
● 确定有效和无效等价类
● 提取数据编写用例
(2)边界值分析
① 解决边界值限制问题
② 步骤 : ● 明确需求
● 确定有效和无效等价类
● 确定边界范围值
● 提取数据编写用例
(3)判定表法
① 定义:是一种以表格形式表达多条件逻辑判断的工具
② 解决多条件依赖问题
③ 步骤 : ● 明确需求
● 画出判定表
● 根据规则编写测试用例
(4)场景法
① 概念:用流程图描述用户的使用场景,然后通过覆盖流程图路径来设计测试用例
② 解决业务测试点覆盖问题
③ 步骤 : ● 明确需求
● 画出流程图
● 根据流程图设计测试用例
12、质量模型(测试考虑方向)
功能性、性能、兼容性、安全性、界面、易用性
bug(缺陷)
(1)含义:软件使用过程中所出现的问题
(2)判定标准:少功能、多功能、功能错误、不易使用等。
(3)产生原因:①需求描述错误; ②设计文档有错误:③代码出现错误;④软硬件系统有故障
(4)生命周期:
发现bug→ 提交bug→ 指派bug→ 确认bug→ 修复bug→ 回归验证bug→ 关闭bug
(5)bug状态:①New:新建;②Open:打开;③Closed:关闭;④Postpond:延期
(6)bug严重级别:
①崩溃级别:阻碍开发或测试工作的问题;造成系统崩溃、死机、死循环,导致数据库数据丢失,与数据库连接错误,主要功能丧失,基本模块缺失等问题。
②严重级别:系统主要功能部分丧失、数据库保存调用错误、用户数据丢失,一级功能菜单不能使用但是不影响其他功能的测试。功能设计与需求严重不符,模块无法启动或调用,程序重启、自动退出,关联程序间调用冲突,安全问题、稳定性等。
③一般级别:功能没有完全实现但是不影响使用,不会影响系统稳定性。
④次要级别:建议类问题,不影响操作功能的执行,可以优化性能的方案等。
(7)编写bug八要素
① 缺陷编号 ② 缺陷标题 ③ 缺陷状态 ④ 严重程度 ⑤ 优先级 ⑥ 所属模块 ⑦ 缺陷描述 ⑧ 附件(日志、截图)
(8)如何区分前端bug还是后端bug
① 如果是界面或兼容性的错误则为前端bug
② 如果是功能错误,则需要通过抓包查看请求和响应的数据区分,若是请求数据出现错误则为前端bug,反之为后端bug。
13、get和post的区别
(1)get:参数在url中显示,请求速度快,提交的内容长度有限制;
(2)post:请求更安全,参数在body中,请求发送的数据更大等。