- 测试人员要求:
1、懂技术 2、懂代码 (确定代码出现的问题)3、精通测试 4、懂运维
软件测试的定义:
使用人工或者自动的手段来运行或测试某个系统的过程
目的检验软件产品是符合用户实际需求
弄清预期结果和实际结果的差别(实际结果与预期结果(用户的要求)的不同就是缺陷)
目的:
以最小的人力、物力、时间,尽可能找出错误和缺陷。
- 测试的原则:
1、证明软件中存在缺陷
2、穷尽测试是不可能的(原因输入数据的组合是无穷无尽的),所以缺陷被遗漏的可能性永远存在。
3、测试应该尽早介入(减少错误的产生)
4、28原则(80%的用户只用20%的功能,80%的缺陷都出现在20%的地方)
5、妥善保存一切文档(方便回归测试和复用测试用例)
6、所有的程序必有缺陷(不满足预期要求也称为缺陷,eg:1+1=2 不需要打印,后来需求发生变化,需要打印,故缺陷就存在了)
- 软件质量模型标准
1、国际标准:ISO 9126 和 ISO 25010
2、国内标准:GBT 18905(软件工程产品评价)
- 测试的基本要求
1、外观界面测试
2、易用测试
3、兼容性测试(eg:app是否在安卓11、12、13运行)
4、安全性测试(eg:一些涉及用户隐私的信息,其它用户是否能看到)
5、性能测试
6、功能测试(和性能测试都是比较重要的)
- 工作流程
1、需求分析(阅读需求说明书、参与需求评估)
2、测试计划和测试方案(5w1h what why when where who how)
测试计划:测试项目的总体规划
包括:测试范围、人力物力时间的安排、
测试方案(how):被测的目标、选取什么样的测试工具、测试的方法、测试的重点
3、测试用例设计
等价类划分、边界值
4、测试用例执行
5、评估阶段,测试报告
- 开发模型
瀑布模型(文档驱动型)
特点:1、阶段间具有顺序性和依赖性 2、推迟实现 3、质量保证的观点
优点:可强迫开发人员采用规范的方法,严格地规定了每个阶段必须提交的文档
缺点:1、不适合需求模糊的项目。2、可能导致最终开发出来的产品不能真正满足用户需求
快速原型模型
特点:获得用户真实需求,需求一旦确定,原型将被抛弃。
优点:适合用户需求模糊的软件
增量模型(每一次设计交付系统中一个小小的模块)
优点:能在较短时间内向用户提交可完成部分工作的产品
缺点:很难保证每个新的增量构件集成到现有软件体系结构中时,必须不破坏云苯乙腈开发出来的产品。
风险较大的模型(构件可能无法集成到一起)
另一种风险较小的增量模型
螺旋开发模型
可以简单地说在快速原型模型上每一步上添加风险分析过程
迭代开发模型、敏捷开发模型
- 测试模型
V模型
验收测试:主要包括功能测试
系统测试:主要包括架构测试,性能测试
集成测试:模块之间接口以及集成后的功能。它主要使用黑盒测试方法测试继承的功能,并对以前的集成进行回归测试
单元测试:验证每个最小可测试单元(eg:Java里面最小单元是class)
优点:每个阶段都清晰明了,便于控制开发的每一个过程,包括了底层测试和高层测试
缺点:测试和开发串行,不利于及时发现问题
W模型(开发和测试同步即双V)
优点:测试和开发同步进行,有利于尽早发现问题
缺点:前后阶段存在依赖,无法支持迭代开发,对测试和开发技术较高,适用于大中型企业