为了二月换工作做准备,把学习软件测试的知识都记录下来,方便自己以后复习,也方便大家浏览。
1. 开发模型——瀑布模型
需求——设计——编码——实现——软件测试——完成——维护
改进:测试要的等所有的开发完成了才开始,需要预留很多时间,而且如果有很大的问题,就容易影响项目上线,而且也不好改。(越早发现问题修改成本越低),每个阶段都融入小的迭代。
2. 开发快速原型模型
实现一个基本原型,让用户对原型进行评价,逐步调整,使其满足用户最终需求。
优点:适合不能确定需求的软件。
缺点:不适合开发大型系统,因为容易归西,改到后面就有很大的问题了。
3. 测试 V 模型
需求分析、概要分析、详细设计、编码、单元测试(单一系统模块)、集成测试(所有模块)、系统测试、验收测试
4. 验收测试分为:
内测版(alpha)内部交流版本,可能存在很多 bug,不建议用户安装
公测版(beta)面向所有用户,通过用户的反馈再去修改细节,可以省钱。
候选版(Gamma),差不多就是正式版本
改进:自上而下逐步求精,每个阶段分工明确,便于整体项目可控,但是实际工作中,需求经常变,导致 V 步骤反复执行,费事费力,每个步骤都可以进行小的迭代工作
5. W模型(开发一个 V ,测试一个 V 组合起来的模型:W 模型也叫做 双 V 模型)
改进:测试伴随整个开发周期,需求和设计同样要测试,更早介入测试,可以更早发现缺陷,方便项目整体管理。
6. 黑盒测试
又称数据驱动测试,完全不考虑从内部机构和特色,只注重软件测试的功能需求(不看代码)
分类:
a. 功能测试:逻辑功能测试、界面测试、易用性测试、安装测试、兼容性测试
b. 性能测试(工资高):时间性能、空间性能、一致性能、稳定性、负载测试、压力测试
7. 白盒测试
研究程序结构和源代码
8. 随机测试
针对重要功能,新增加的功能,特殊情况,以前发现过重大 bug 的模块进行二次测试,也叫做探索测试,它可以结合回归调试来使用。
9. 软件测试分类
a、按阶段划分:单元测试、集成测试、系统测试
b、是否覆盖代码:白盒测试、黑盒测试(功能测试、性能测试)
c、是否运行:静态测试(不运行程序)、动态测试(运行程序)
d、其他:回归测试、冒烟测试、随机测试、验收测试
e、是否自动化:人工测试、自动化测试
10. 测试用例:测什么、怎么测
11. 等价类划分法
控制变量法,把所有类都分出来,取一个代表测试
思考步骤:确定有效等价类和无效等价类——有效等价类划分(题目条件,注意边界值)——无效等价类(有效等价类的补集,注意考虑中文、英文、特殊符号、空格、空)
⚠️:考虑输入长度、类型、组成规则、是否为空、是否区分大小写、是否重复、空格