1.什么是软件测试?
验证软件是否满足用户的需求。
2.软件测试和开发的区别是什么?
(1)软件测试和调试的区别:
- 目的不同:软件测试——为了检查软件的质量(以需求为标准);
软件调试——开发人员为了检查程序是否实现了该程 序所需要实现的功能;
- 人员不同: 软件测试——黑盒工程师、白盒工程师、开发人员(单 元测试、或者白盒测试);
软件调试——开发人员;
- 阶段不同:软件测试——贯穿到了软件开发的整个生命周期 ;
- 软件调试——只存在于开发阶段;
(2)难易程度、技能要求
- 开发广度小,专业度高
- 测试广度大,专业度低
- 需了解以下相关知识:
接口测试:postman soupui Charles
抓包 fiddler Charles 模拟弱网工具(性能测试)
自动化测试语言:java Python ruby unittest TestNG
安全测试:网络知识 Linux tomcat 数据库
3.测试左移和测试右移
测试左移:需求前调研阶段和需求阶段,测试人员参加。
测试右移:产品上线后,进行的系统监控、日志记录和分析。
4.软件测试的目的和原则
目的:验证软件有么有问题;
原则:以客户的需求为中心,遵循软件测试的规范、流程、标准和要求。
5.什么是需求?
需求就是满足用户期望或正式规定文档(合同、标准、规范)所具有的条件和权能,包含用户需求和软件需求。
用户需求:用户想要软件实现的功能;
软件的需求:用户需求的具体细化,是用户需求具体的实现细节,开发人员要根据软件需求进行软件开发。
关系:软件需求是用户需求转化而来的。
6.什么是bug?
分为两种情况:
(1)当软件需求规格(软件需求)存在并且合理,如果软件功能和软件需求规格不相符合,我们就称为是软件错误(BUG);
(2)当软件需求规格不存在的时候,用户需求存在并且合理,软件功能和用户需求不相符合,就是软件错误(BUG)。
7.什么是测试用例?
测试人员向被测试系统发起的一组集合,这组集合包括测试数据,测试步骤,测试平台,预期结果。
8.软件开发的生命周期
需求分析——计划——设计——编码——测试——运行维护
9.开发模型(5个)
(1)瀑布模型
瀑布模型 | 优点:各个阶段比较独立,看中需求分析和软件测试; |
缺点:无法适应需求的变化;测试到编码后才介入,导致前期的缺陷无法及时发现,无法及时修正; | |
适用的项目:适用于需求稳定的项目。 |
(2)螺旋模型(Spiral Model)
螺旋模型 | 优点:强调软件质量;每一次迭代进行严格的风险分析,提供讨论项目是否有必要进行下去的机会; |
缺点:引入风险管理,会投入大量人力物力; | |
适用项目:前期需求不是很明确,并且有风险,项目比较哦昂达的系统开发; |
(3)迭代‘’增量模型
迭代模型抗风险能力更强。
(4)敏捷模型
敏捷模型 | 轻文档。轻流程,重目标,重质量; 拥抱变化,可以适应需求的变化; |
目标 | 交付一个高质量可用的软件; |
Scrum流程 |
|
scrum 流程: |
|
(5)V模型
V模型 | 优点:左边开发的每一个阶段和右边测试的每一个阶段一一对应,是右边测试每一个阶段的依据; |
缺点:测试介入晚,前期的错误和风险到后期才能发现,会失去及时纠正的机会; | |
软件测试W模型(双V模型) | 优点:测试阶段和开发阶段在两个独立的V模型里面,测试介入的比较早,在项目初期就介入,前期的风险可以及时被发现; |
缺点:W模型的每一个阶段仍然是一个串行的过程,不能适应需求变化的项目,所以无法应用到敏捷开发中。 |