我的软件测试学习笔记

以下内容均为本人学习笔记 ,若有错误 ,欢迎指正

什么是软件测试?


验证软件功能是否满足用户的需求,从两个方面来看,一方面要验证软件没有问题,另一方面又要验证软件有问题。

为什么要有软件测试?

实施软件测试的核心当然是要验证软件功能是否满足用户的需求,找到程序中的bug,软件测试贯穿整个开发周期,更是上线前的最后一道关口也是软件测试,坚守好这道口,我们才能保证向客户提交一份满意的结果
再者,我们应该我们通过分析错误产生的原因和产生的阶段,以及错误发生的趋势
来帮助管理者了解当前项目中 软件开发过程中的缺陷,以便及时纠正、改进。
帮助测试人员设计出更有效的测试方法,改善测试效率和有效性
让开发人员知道错误出现的重灾区,加强自测试
让客户清楚我们专业的质量保证团队,可以向客户提交一份满意的答卷。

在上面的概念中又出现需求这个词,下面来看看软件测试出现的相关概念,只有理解这些基本概念后,我们才能深入探究软件测试。

一、什么是需求?


满足用户期望正式规定文档(合同、标准、规范)所具有的条件和权能,包含用户需求和软件需求。

什么是用户需求?
理解为用户提出的需求,一般比较简单
什么是软件需求?
也称为功能需求,详细描述开发人员必须实现的软件功能
软件需求是测试人员进行测试工作的基本依据
需求也是需要测试的,并不一定是完全正确的。

二、什么是BUG?


软件错误的定义:程序与规格说明不匹配
当且仅当规格说明是存在并且正确的,程序与规格说明之前不匹配才是错误。
当没有规格说明书时,没有实现用户最终预期功能要求时,就是软件错误。

凡是效果和需求不相符的都可以认为是BUG
BUG的责任:第一为程序员,第二为测试人员
BUG的处理:生产环境上的问题,第一时间要回滚,再慢慢定位
第一时间定位BUG

三、什么是测试用例?


测试用例:为了实施测试而向被测试的系统提供的一组集合,测试环境,测试数据,预期结果等要素。

测试过程中可能会遇到下面问题:
- 不知道是否全面的测试所有的功能
- 测试覆盖率无法衡量
- 对新版本的重复测试很难实施(例如1.0版本功能点为100条,编写的测试用例为100个,1.1版本102个功能点,则还需要编写2个测试用例)
- 存在大量的冗余测试影响效率

编写手机添加联系人的测试用例:

  1. 测试编号:mobile_007
  2. 标题:添加联系人
  3. 模块:电话
  4. 环境:android8.0.0
  5. 操作平台: 手机
  6. 测试方式:手工
  7. 前置条件:联系人不存在
  8. 操作步骤:
    1.打开手机
    2.找到联系人图标
    3.点击联系人图标
    4.点击新建联系人图标
    5.输入信息,姓名,电话
    6.点击添加按钮

  9. 输入数据:
    1.李明
    2.13992081804

  10. 预期结果:
    1.打开手机
    2.进入联系人
    3.存在输入的联系人信息李明(13992081804)

四、开发模型

软件生命周期


软件生命周期是指从软件的设想到软件不再使用而结束的时间。
一般分为6个阶段: 需求分析、计划、设计、编码、测试、运行维护。

1.瀑布模型(Waterfall Model)

我的软件测试学习笔记

特点:每一个阶段只执行一次,线性顺序进行软件开发模式
适合需求比较稳定的项目,是所有其他模型的基础框架。
缺点:
周期长,因为是线性的,可能需求分析阶段引入的缺陷要等到最后测试阶段才能发现,软件的集成风险较大。

2. 螺旋模型(Spiral Model)
特点:采用渐进式的开发模型
优点:采用风险分析的方式,对于那些规模庞大、复杂度高、风险大的项目尤其适合
缺点:对风险管理的技能水平提出了很高的要求。这需要人 员、资金和时间的投入。

3. 增量、迭代
降低项目风险,促使开发小组以一种循环的、可预测的方式驱动产品的开发

4. 敏捷:
人与人之间的沟通交互重于过程和工具,对文档依赖轻,拥抱变化,接受变更
很喜欢这几句话,贴上来与大家分享
我的软件测试学习笔记

五、软件测试模型

一、软件测试V模型
我的软件测试学习笔记

图1 V模型

V模型事实上是瀑布模型的变种,将测试放在了编码后面,未在需求阶段就进行测试。

二、软件测试W模型
我的软件测试学习笔记

图2 W模型

W模型由两个V模型组成,分别代表开发和测试过程,明确表示出开发和测试的并行关系。
优点:有利于尽早发现问题,提高效率。
缺点:测试和开发活动也保持着一种线性的前后关系,上一阶段 完全结束,才可正式开始下一个阶段工作。无法支持敏捷开发模式。对于当前软件开发复杂多变的情况,W模 型并不能解除测试管理面临着困惑