软件测试知识点总结【mooc基础教程】
第一节课 软件测试概要
1、什么是软件测试?
IEEE定义:使用人工或者自动的【手段】来运行或者测量软件系统的过程,以检验软件系统是否满足【 规定的要求 】,并找出与预期结果之间的【差异】
2、软件测试测试对象
六个:软件需求、软件概要设计、软件详细设计、软件运行环境、可运行程序、软件源代码
3、软件测试五大要素
质量 人员 资源 流程 技术
两大目标:提高测试覆盖率 提高测试效率
4、软件测试遵循的原则
测试显示缺陷的存在,但不能系统不存在缺陷.
穷尽测试是不可能的,应设定及时终止的条件
测试应尽早进行(ps.后期发现Bug修复成本高).
缺陷具备群集特性(ps.发现问题越多的模块表示越多的Bug没被发现).
测试的杀虫剂悖论
测试的二八原则
测试活动依赖测试背景
第二节课 软件测试的分类
1、按照测试阶段分类:
单元测试(优点:尽早发现缺陷 有利于重构 简化集成 文档 用于设计
缺点:不能够覆盖所有路径 投入很大
单元测试框架:Xunit nunit CppUnit PhpUnit)
集成测试(技术角度测试 实施方案 :big Bang 自顶向下 自底向上 核心系统集成 高频集成)
系统测试 (业务角度测试 重要 关注点:系统本身的使用 系统之间的联通 系统在不同压力下的表现 在真实环境下的表现)
验收测试(用户验收测试 运行验收测试 合同和规范验收测试 alpha测试 beta测试 )
2、按照测试手段分类
可见度:黑盒测试 (缺点:覆盖率低,只有40%不到,复用率低,维护成本较高
关注:是否有不正确或者遗漏的功能、正确的接受和输出结果
数据结构或者外部访问错误、性能是否满足要求
系统测试阶段使用黑盒测试方法比较多
黑盒测试方法:等价类划分法 边界值分析法 错误推测法 因果图法
正交实验分析法 状态迁移图法 流程分析法)
白盒测试 (优点:迫使测试人员了解软件实现原理、检测代码中的每条分支和路径、
提示隐藏在代码中的错误、对代码的测试比较彻底
缺点:昂贵、无法检测代码中遗漏的路径和数据敏感性错误、
不能直接验证需求的正确性
测试方法:代码检测法 静态结构分析法 静态质量度量法 逻辑覆盖法
基本路径检测法)
状态:静态测试
动态测试
(区别:汽车测试 发动和检测油箱)
执行方式:手工测试
自动化测试(单元测试、接口测试、性能测试等是自动化测试)
按照测试类型分类:
性能测试:负载测试 压力测试 稳定性测试
安全测试:防御
渗透测试:模拟恶意攻击
兼容性测试:软件本身的兼容 不同平台下的兼容性 软件对运行设备的兼容性
文档测试 注意要点 完整性 正确性 一致性 易理解性 易浏览性
可靠性测试:软件可靠性 硬件可靠性
易用性测试
本地化测试
部署测试
按 软件测试模式:
软件测试模式:瀑布模型、敏捷测试、基于脚本的测试、基于风险的测试、探索性测试等
软件测试模型:V模型 W模型 X模型 H模型
敏捷测试:客户角度测试 迭代测试新功能,不强调测试阶段 尽早测试 持续反馈 预防缺陷
基于脚本的测试(SBT)
探索性测试(ET) 完全抛开测试脚本的测试
基于风险的测试(RBT) 质量风险 管理风险
基于模型的测试(MBT)
面试重点:
回归测试:
Monkey测试:
冒烟测试
A/B测试
总结: