我的软件测试学习笔记
以下内容均为本人学习笔记 ,若有错误 ,欢迎指正
什么是软件测试?
验证软件功能是否满足用户的需求,从两个方面来看,一方面要验证软件没有问题,另一方面又要验证软件有问题。 |
为什么要有软件测试?
实施软件测试的核心当然是要验证软件功能是否满足用户的需求,找到程序中的bug,软件测试贯穿整个开发周期,更是上线前的最后一道关口也是软件测试,坚守好这道口,我们才能保证向客户提交一份满意的结果 再者,我们应该我们通过分析错误产生的原因和产生的阶段,以及错误发生的趋势 来帮助管理者了解当前项目中 软件开发过程中的缺陷,以便及时纠正、改进。 帮助测试人员设计出更有效的测试方法,改善测试效率和有效性 让开发人员知道错误出现的重灾区,加强自测试 让客户清楚我们专业的质量保证团队,可以向客户提交一份满意的答卷。 |
在上面的概念中又出现需求这个词,下面来看看软件测试出现的相关概念,只有理解这些基本概念后,我们才能深入探究软件测试。
一、什么是需求?
满足用户期望或正式规定文档(合同、标准、规范)所具有的条件和权能,包含用户需求和软件需求。 |
什么是用户需求?
理解为用户提出的需求,一般比较简单
什么是软件需求?
也称为功能需求,详细描述开发人员必须实现的软件功能
软件需求是测试人员进行测试工作的基本依据
需求也是需要测试的,并不一定是完全正确的。
二、什么是BUG?
软件错误的定义:程序与规格说明不匹配 当且仅当规格说明是存在并且正确的,程序与规格说明之前不匹配才是错误。 当没有规格说明书时,没有实现用户最终预期功能要求时,就是软件错误。 |
凡是效果和需求不相符的都可以认为是BUG
BUG的责任:第一为程序员,第二为测试人员
BUG的处理:生产环境上的问题,第一时间要回滚,再慢慢定位
第一时间定位BUG
三、什么是测试用例?
测试用例:为了实施测试而向被测试的系统提供的一组集合,测试环境,测试数据,预期结果等要素。 |
测试过程中可能会遇到下面问题:
- 不知道是否全面的测试所有的功能
- 测试覆盖率无法衡量
- 对新版本的重复测试很难实施(例如1.0版本功能点为100条,编写的测试用例为100个,1.1版本102个功能点,则还需要编写2个测试用例)
- 存在大量的冗余测试影响效率
编写手机添加联系人的测试用例:
- 测试编号:mobile_007
- 标题:添加联系人
- 模块:电话
- 环境:android8.0.0
- 操作平台: 手机
- 测试方式:手工
- 前置条件:联系人不存在
操作步骤:
1.打开手机
2.找到联系人图标
3.点击联系人图标
4.点击新建联系人图标
5.输入信息,姓名,电话
6.点击添加按钮输入数据:
1.李明
2.13992081804预期结果:
1.打开手机
2.进入联系人
3.存在输入的联系人信息李明(13992081804)
四、开发模型
软件生命周期
软件生命周期是指从软件的设想到软件不再使用而结束的时间。 一般分为6个阶段: 需求分析、计划、设计、编码、测试、运行维护。 |
1.瀑布模型(Waterfall Model)
特点:每一个阶段只执行一次,线性顺序进行软件开发模式
适合需求比较稳定的项目,是所有其他模型的基础框架。
缺点:
周期长,因为是线性的,可能需求分析阶段引入的缺陷要等到最后测试阶段才能发现,软件的集成风险较大。
2. 螺旋模型(Spiral Model)
特点:采用渐进式的开发模型
优点:采用风险分析的方式,对于那些规模庞大、复杂度高、风险大的项目尤其适合
缺点:对风险管理的技能水平提出了很高的要求。这需要人 员、资金和时间的投入。
3. 增量、迭代
降低项目风险,促使开发小组以一种循环的、可预测的方式驱动产品的开发
4. 敏捷:
人与人之间的沟通交互重于过程和工具,对文档依赖轻,拥抱变化,接受变更
很喜欢这几句话,贴上来与大家分享
五、软件测试模型
一、软件测试V模型
V模型事实上是瀑布模型的变种,将测试放在了编码后面,未在需求阶段就进行测试。
二、软件测试W模型
W模型由两个V模型组成,分别代表开发和测试过程,明确表示出开发和测试的并行关系。
优点:有利于尽早发现问题,提高效率。
缺点:测试和开发活动也保持着一种线性的前后关系,上一阶段 完全结束,才可正式开始下一个阶段工作。无法支持敏捷开发模式。对于当前软件开发复杂多变的情况,W模 型并不能解除测试管理面临着困惑