一. 调试与测试的区别
1. 目的不同: 测试的任务是发现程序中的缺陷;调试的任务是定位并且解决程序中的问题.
2. 参与角色不同: 测试主要有测试人员和开发人员来执行,黑盒测试主要由测试人员完成,单元/集成测试主要时由开发人员完成
3. 执行的阶段不同:测试贯穿整个软件开发生命周期;调试一般在开发阶段。
二. 什么是软件测试
软件测试就是执行和运行软件的过程,其目的是为了发现软件功能和需求不符合的地方,或者寻找实际输出和预期输出之间的差异。
三. 软件测试和软件开发的区别
1. 研发主要以编码为主,而测试以测试为主,开发为辅
2. 难易程度: 开发广度小,专业度高。测试广度大,专业度低
3. 薪水: 中小企业总体比研发低,自动化等专业测试领域和研发基本无差距。大厂研发测试基本无差别
4. 繁忙程度: 测试一般比研发轻松,但敏捷模式下差距不大,产品发布前压力比较大
5. 技能要求:测试要求更广泛,业务能力、设计和架构分析能力,测试手段和工具使用,用户模型分析和理解,编程能力
四. 软件的生命周期
软件的生命周期分为六个阶段:需求分析阶段,计划阶段,设计阶段,编码阶段,测试阶段,运行维护阶段
• 需求分析:分析用户是否合理(市场分析、技术上分析...)
• 计划:制定需求执行计划
• 设计:将需求细化成一个个任务,进行技术设计(设计哪些接口,采用哪些技术)
• 编码:开发人员按照需求文档以及设计文档来进行编码
• 测试:测试人员参考测试用例来执行测试
• 运行维护:项目上线之后对产品进行线上维护(修复性维护:对项目中未发现的问题进行修复;完善性维护:对功能进行完善;预防性维护:为了避免产品在线上出现一些其他的问题,进行一些预防的手段。
五. 什么是 BUG
当且仅当规格说明是存在的并且正确,程序与规格说明之间的不匹配才是错误。当需求规格说明书没有提到的功能,判断标准以最终用户为准:当程序没有实现其最终用户合理预期的功能和要求时,就是软件错误。
六. 什么是需求
需求就是满足用户期望或正式规定文档(合同、标准、规范)所具有的条件和全能,包含用户需求和软甲需求。
七. 软件测试的生命周期
需求分析 -> 测试计划 -> 测试设计、测试开发 -> 测试执行 -> 测试评估
八. 软件缺陷生命周期
New: 新发现的Bug,未经评审决定是否指派给开发人员进行修改。
Open:确认是Bug ,并且认为需要进行修改,指派给相应的开发人员。
Fixed:开发人员进行修改后表示成修改状态,有待测试人员的回归测试验证。
Rejected:如果认为不是Bug,则拒绝修改。
Delay: 如果认为暂时不需要修改或者暂时不能修改,则延后修改。
Closed:修改状态的Bug经测试人员回归测试后验证通过,则关闭Bug。
Reoppen:如果经验证Bug仍然存在,则需要重新打开Bug,开发人员重新修改。
九. 测试模型
9.1 V模型
特点: 左边是开发,右边是测试
优点: 测试被划分为许多类型
缺点: 测试人员介入晚,发现问题的时机晚,修复起来的成本高
9.2 W模型
特点: 开发一个V,测试一个V
优点: 测试人员尽早介入了需求
缺点: 测试人员和开发人员在一定程度上还是串行的,不能拥抱变化