1、概念
什么是软件测试:
使用人工和自动手段来运行或测试某个系统的过程,其目的在于检验它是否满足规定的需求或是弄清预期结果与实际结果的差距。
两个依据:需求,测试用例
两种方法:手动,自动
一个对比:预期结果和实际结果的对比
2、软件测试的意义和价值
测试不仅要发现问题,尽早发现问题
测试意义:
初期:尽量发现多 bug
中期:尽量早发现 bug
后期:预防 bug(后期→统计分析→bug 产生原因→方案→实施)
软件测试基本流程图:
2、测试过程
内部测试三大阶段
外部测试:
使用验收测试的原因
1. 内部测试只能模拟用户使用却不能代替用户使用
2. 由于专业不同业务背景不同无法模拟用户使用的习惯
3. 测试人员和用户对产品的理解可能不同
验收测试:(在系统测试之后)
α测试:由用户组织一部分人在开发环境下来对产品进行测试 如网游的内侧
β测试:所有系统使用者都可以参加的测试(在实际使用环境下) 如网游的公测
回归测试:
回归测试可以发生在任何一个阶段
分为完全恢复和选择回归
3、测试方法
黑白灰测试对象图
4、软件质量
什么是软件质量
质量:确定一个实体的特性满足需求的程度
内部质量:软件研发过程中,评价的软件质量
外部质量:软件上市后,用户评价的质量
过程质量:评价软件研发中每个过程的质量
软件质量的三个层次
⑴流程质量,领导关注 ⑵产品质量 测试工程师关注 ⑶使用质量 用户关注
质量要素:
质量铁三角 :技术 流程 组织
1)技术: ①人的技术
②工具的技术
2)组织:支持(对技术的支持)
3)流程:有规律的步骤
6 大特性 7 27 个子特性 O ISO 国际标准组织 CMM/CMMI ( Capability maturity model)能力程度模型
CMMI 把企业分为 5 5 个等级
过程能力等级 特点
1. 初始级 软件过程是无序的,有时甚至是混乱的,对过程几乎没有定义,成功取决
于个人努力。管理是反应式的。
2. 可管理级 建立了基本的项目管理过程来跟踪费用、进度和功能特性。制定了必要的
过程纪律,能重复早先类似应用项目取得的成功经验。
3. 已定义级 已将软件管理和工程两方面的过程文档化、标准化,并综合成该组织的标
准软件过程。所有项目均使用经批准、剪裁的标准软件过程来开发和维护
软件,软件产品的生产在整个软件过程是可见的。
4. 已管理级 分析对软件过程和产品质量的详细度量数据,对软件过程和产品都有定量
的理解与控制。管理有一个做出结论的客观依据,管理能够在定量的范围
内预测性能。
5. 优化管理级 过程的量化反馈和先进的新思想、新技术促使过程持续不断改进。
5、缺陷管理
5.1 缺陷管理目的:
1. 证明测试工作
2. 监控开发修复 bug
3. 分析原因
5.2 缺陷管理工具:
1. 开源:bugfree、禅道
2. 商业:Jira、QC、Test Direct
5.3 描述 bug :(g bug 报告模板)
1. 编号(如:bug_001,唯一识别)
2. 标题(简洁,表述清晰,不超出 30 个字)
3. 描述步骤: ①步骤(清晰)
②预期结果
③实际结果
4. 附件:①图片
②日志
5. 状态: ①new:新提交的
②open:开发打开缺陷
③fixed:开发修复缺陷
④closed:测试关闭缺陷
⑤Reopen:修复不成功,重新打开
6. 严重程度:①致命:系统崩溃
②严重:导致多功能同时失效
③一般:导致一个功能失效
④轻微:界面错误,不影响使用
⑤建议:提出更好的解决办法
7. 优先级:bug 修复的顺序(低、中、高,严重的问题不一定优先级高,根据技术上和影响上
来定义优先级
5.4 缺陷跟踪
6、用例设计
系统测试-黑盒 测试方法(功能测试)
设计方法分类:11中
6.1 等价类
逻辑覆盖率(路径覆盖):每个路径都测试到,每个路径只设计 1 个用例(跑 1 次)
等价:如果,有 多个输入,都跑相同的路径(处理方式相同),只需要测试 一个输入,将这
多个输入称为“等价”的输入;
等价类的划分:有效等价类、无效等价类(可以继续向下划分子类)
等价划分依据:精确:对输入的处理(条件、路径)是否相同,相同即等价
黑盒:按字符集的通用划分(ASCII:数字、字母、符号、空格、空;
GB:半角、全角、汉字)
用例设计原则:有效等价类:一对多
无效等价类:一对一(方便确定是哪个无效产生的错误)
如:
有效等价类:字母开头(26 个字母开头) —— 只测 1 个
无效等价类:数字开头无效(10 个数字开头)—— 只测 1 个
下划线结尾无效(1 种情况) —— 只测 1 个
6.2 边界值
边界最容易出现问题,因此测试的时候尽可能考虑边界情况;
如:[10,100]
上点:10, 100 取两边
内点:50 取中间
离点: 9 9 , 101 和上点相反(互为有效)
总结 :
上点肯定是边界
离点在闭区间外部,开区间内部(闭外开内)
6.3 判定表
目的:测试多个条件的组合
特点:
如果条件是并列关系:笛卡尔积【全排列组合】(1 个条件、2 个条件组合、3 个、4 个)
如果条件有逻辑顺序:考虑组合的合并问题
合并的风险:
如果被合并的多个组合,处理方式不同,不应该合并
生成测试用例:
原则:每个组合(列)生成一个用例
优点:充分(包括了所有的组合)
缺点:条件数多,组合的数量多(成本高)(<=5)
有效组合用例共:8 个
6.4 正交试验
目的:给判定表去重
特点:两两组合(充分——没有重复、没有遗漏)
优点:相对于判定表,组合数量大大减少
缺点:风险:只考虑了两两组合
经验:如果任何两个值的组合不出问题,那么任何多个值的组合出问题的可能性小
Allpairs 工具
在 cmd 中输入命令: allpairs.exe test.txt > ta.txt
6.5 流程分析
方法:绘制业务(程序)的流程图,以“逻辑覆盖率”的方式设计测试用例。
6.6 状态迁移
6.6.1 例题:网上购物
状态:提交、确认、待付款、已发货、已取消
方法:1、列出所有的“状态”;
2、画出所有状态之间的“转换”关系
3、遍历所有“路径”,每个路径对应一个用例
6.7 等价类边界值练习
6.7.1 163 注册输入用户名
1. 测试需求分析
内容:字母、数字、下划线
长度:[6,16]
约束:字母开头
不能下划线结尾
2. 等价类划分
3. 设计用例
原则:有效等价类:用一个输入尽可能多的覆盖【1 对多】
无效等价类:用一个输入只覆盖 1 个无效等价类【1 对 1】