1.软件测试是什么?

简单来说,软件测试就是对当前软件(该当前软件即为下文中的被测软件,软件测试的对象包括:程序和文档)进行查找缺陷(bug)的过程,软件测试的任务仅为查找缺陷,而非解决缺陷。
那么缺陷(bug)又是什么呢?
缺陷的常用定义有下列5种:

  1. 需求要求实现的功能,被测软件未实现
  2. 需求未要求实现的功能,被测软件却实现了
  3. 需求中虽未说明,但本应实现的一些常识性功能被测软件未实现
  4. 被测软件中出现了需求中指明不应出现的错误
  5. 被测软件存在运行缓慢、操作不便、界面功能难以理解等问题,即站在用户角度一切觉得不好的部分
    补充:
    软件的开发阶段包括:
    需求分析阶段:参与人员-需求分析人员、产出物-《需求规格说明书》
    设计阶段:参与人员-系统架构师/分析师、产出物-《概要设计说明书》和《详细设计说明书》
    编码阶段:参与人员-开发人员、产出物-程序
    上述缺陷定义中的需求,即指《需求规格说明书》中的内容。
    测试过程应尽早介入,并贯穿于开发周期的始终。
    需要知道的是,软件不是完美的,每个软件中或多或少地存在bug,正如没有完美的人一样。
    测试人员的职责是尽可能多地查找缺陷,而非消灭缺陷。

2.软件测试可被划分为哪些阶段?

软件测试可被分为单元测试、集成测试、系统测试、验收测试阶段。

2.1单元测试

测试对象(即下文中的被测模块):一个模块、一个窗口、一个函数、一个类(class)等。
特点:

  1. 是最小测试单位
  2. 测试过程中参考《详细设计说明书》文档
  3. 采用白盒测试方式
  4. 测试过程中测试人员需编写驱动模块和桩模块
    补充:驱动模块和桩模块
    驱动模块:模拟被测模块的上一级模块。(调用“被测模块”的)
    桩模块:模拟被测模块的下一级模块。(被“被测模块”调用的)
    流程总结:驱动模块→被测模块→桩模块

2.2集成测试(也叫组装测试)

测试对象:逐步合并的功能模块
特点:

  1. 测试过程中参考《概要设计说明书》文档
  2. 采用黑盒测试(主)+白盒测试(辅)方式
  3. 集成测试之前需进行冒烟测试
    补充:
    1.黑盒测试:测试软件的输入和输出
    2.白盒测试:测试软件的内部程序
    3.冒烟测试:测试新版本软件的核心功能和主要业务

2.3系统测试

测试对象:集成了软件和硬件的完整系统
特点:

  1. 在模拟真实使用的环境下,进行测试
  2. 测试过程中参考《需求规格说明书》文档
  3. 采用黑盒测试方式
  4. 系统测试之前需进行确认测试
    补充:
    确认测试:测试软件是否为集成了软件和硬件的完整系统,以及确认各类相关文档(包括:交付给用户的文档和参与认证的文档)是否准备齐全。
    系统测试的目的:
    (1)测试完整系统是否能在满足用户的使用需求时并正常运行。
    (2)测试完整系统的兼容性。

2.4验收测试(UAT:User Acceptance Testing 用户接受度测试)

测试对象:发布前的软件
特点:

  1. 是由用户参与的测试过程。
  2. 参考用户的真实使用需求。
  3. 可分为两个阶段:
    alpha(α)测试–在软件公司指定的使用环境下,由用户参与的测试过程。
    beta(β)测试–在最终用户的实际使用环境下,由最终用户对软件检查的过程。

3.功能测试常用的测试方法?

功能测试也叫黑盒测试,其常用的测试方法有如下7种:

3.1等价类划分法

适用情况:在软件中需要输入数据的地方。
特点:

  1. 抽样测试–将大量数据划分成若干个范围,再从每个范围中挑选代表数据进行测试。该方法可将无穷测试变为有限测试,有利于提升测试效率。
  2. 类别划分:
    有效等价类:对软件来说,正确的、合理的输入数据的集合。
    无效等价类:对软件来说,错误的、不合理的输入数据的集合。
    使用步骤:
    步骤1:分析需求,初步划分等价类。
    步骤2:细分等价类。
    步骤3:记录测试点,并填写《等价类表》。
    步骤4:编写测试用例。

3.2边界值法

适用情况:在软件中需要输入数据的地方。
特点:

  1. 对测试数据范围的边界值进行测试。
  2. 是对等价类划分法的有力补充。
  3. 边界值划分:
    边界值点:有效等价类和无效等价类之间的分界点,包括最大值(max)、最小值(min)。
    次边界值点:边界值左右两边相邻的点,包括有效最小次边界(min+)、无效最小次边界(min-)、有效最大次边界(max-)、无效最大次边界(max+)。
    使用步骤(等价类划分法和边界值法综合):
    步骤1:分析需求,确定测试方法。
    步骤2:使用相应的方法分析,提取测试点,填入到《数据分析表》。
    步骤3:设计测试方案(思路),编写测试用例。

3.3场景法

适用情况:测试软件的业务流程或业务逻辑。
特点:

  1. 测试过程中,模拟用户使用软件的各种场景。
  2. 场景分类:
    基本流:也叫有效流或正确流,即模拟正确的业务实现的场景。
    备选流:也叫无效流或错误流,即模拟错误的业务实现的场景。
    使用步骤:
    步骤1:分析需求,整理业务,列出基本流、备选流。
    步骤2:生成场景,填写场景表。
    步骤3:根据场景,执行测试,记录测试结果。

3.4判定表法

适用情况:在软件界面中有多个控件,控件之间存在组合或限制关系,在控件中不同输入条件组合对应不同输出结果,为理清不同输入条件组合于输出结果之间的对应关系。
适合测试组合数量较少的情况。
使用步骤:
步骤1:分析需求,列出所有的输入条件。
步骤2:列出所有的输出结果。
步骤3:分析输入条件中有哪些组合和限制关系。
步骤4:确定每个输入条件组合对应的输出结果,通过判定表记录下来。
步骤5:编写测试用例。

3.5因果图法

适用情况:在软件界面中有多个控件,控件之间存在组合或限制关系,在控件中不同输入条件组合对应不同输出结果,为理清不同输入条件组合于输出结果之间的对应关系。
特点:

  1. 逻辑关系:恒等、与、或、非。
  2. 限制关系:互斥(E-exclude)、唯一(O-only)、包含(I-include)、要求(R-required)、覆盖(M-masked)
    使用步骤:
    步骤1:分析需求,列出所有的因。
    步骤2:列出所有的果。
    步骤3:分析因中有哪些组合和限制关系。
    步骤4:确定每个因组合对应的果,通过因果图记录下来。
    步骤5:编写测试用例。

3.6正交排列法

适用情况:在软件界面中有多个控件,每个控件有不同取值,不同控件取值之间存在组合关系,但组合数量较多时,不应测试所有组合,而应挑选最优、最少的组合进行测试。
特点:

  1. 是一种较为优化的测试方法。
  2. 依赖于正交表。
  3. 正交表公式:Ln(mK)
    L:Line ——行
    n:代表正交表有几行(n是计算好的,测试人员无需计算)
    m:每列的最大数值
    k:代表正交表的列数
    如:L9(34)
    9行4列 每列最大值3。
    使用步骤:
    步骤1:分析需求,列出参与组合的控件和每个控件的取值。
    步骤2:挑选合适的正交表。
    方法:需要确定m值和k值
    m值:测试时由每个控件的取值个数决定。
    m=3
    k值:测试时由参与组合的控件个数决定。
    k=4
    结论:要挑选3的4次幂的正交表。
    步骤3:应用正交表。
    控件——正交表的因子(正交表列标题)
    控件取值——正交表对应列的状态(数值:1,2,3…)
    步骤4:编写测试用例(每一行代表一个组合)。

3.7测试大纲法

适用情况:软件中有多个窗口,每个窗口中有多个操作点,不同窗口操作点之间存在关系,为理清窗口之间的关系。
使用步骤:
步骤1:分析需求,列大纲(可使用思维导图工具整理每个窗口和每个窗口的操作点之间的关系)。
步骤2:分析大纲,理清窗口之间关系,编写用例。

以上为个人总结,若有错误望指正,笔芯

初识软件测试-Blog1相关推荐

  1. 初识软件测试_(转)

    第一章 – 理解软件测试 1. 软件测试的概念 广义概念:指软件生存周期中所有的检查.评审和确认工作,其中包括了对分析.设计阶段,以及完成开发后维护阶段的各类文档.代码的审查和确认 狭义概念:识别软件 ...

  2. 初识软件测试——什么是软件测试?

    软件测试--重点掌握:测试用例方法及用例书写 开发模型.测试模型的掌握· 自动化测试环境搭建.样例分析 目录 软件测试的目的和原则 1.什么是软件测试? 1.1测试与调试的区别 1.2软件测试和研发的 ...

  3. 好书推荐:《零基础快速入行入职软件测试工程师》学测试一本就

    推荐理由: 全面介绍软件测试的基础知识,帮助零基础读者快速入门! 详细讲解自动化测试和接口测试,帮助读者快速进阶! 深入解析操作系统和数据库,帮助读者进一步提高测试水平! 本书具有以下特点: 1.对初 ...

  4. 学软件测试看什么书籍推荐?

    软件测试自从有编程行业开始这个行业就有存在,在软件或者功能上线之前都离不开软件测试工作者的努力,否则你用到的软件很可能会出现这样那样的BUG.今天小千就为那些想要从事软件测试工作的同学推荐几本零基础也 ...

  5. 【软件测试】快速入行软件测试

    快速入行软件测试 1.初识软件测试 软件测试的前景与现状 软件测试越来越被企业重视,人才稀缺,市场需求扩大. 软件测试人员的职业生涯规划 技术型路线.自动化测试工程师.性能测试工程师.安全测试工程师等 ...

  6. 软件测试的背景和前期准备

    目录 一.初识软件测试 1.1 测试软件的类型 1.2 软件测试的流程 1.3 测试类型 二.软件测试和测试环境 2.1 软件的分类 2.2 软件测试和测试环境 三.微型计算机的组成 3.1 虚拟内存 ...

  7. 软件测试入门知识——学习笔记

    对软件测试的粗浅认知 个人简单的认知,软件测试是为了保证软件的质量而采取的措施. 初识软件测试 本人实际从事后端软件开发工作有一年多的时间,由于最近一直待在运维的项目中,对软件测试产生了兴趣,便踏上了 ...

  8. 精美网页设计案例_用户体验设计的精美艺术

    精美网页设计案例 There are interactive experiences that simply blow you away. You know it's been a positive ...

  9. 软件测试思想者 - 初识抑郁症

    软件测试思想者 - 初识抑郁症 谈到对抑郁症的关注,源自于一个亲戚患了抑郁症.中国目前抑郁症的患病率达到5%-7%,有年纪大的,也有年龄小的,大有越来越年轻化的趋势.在喜马拉雅上收听了"张进 ...

最新文章

  1. 大数据风控-反欺诈之黑卡与养卡
  2. mysql创建数据库1064_Mysql创建表过程中报1064错误
  3. 吴恩达机器学习笔记:(四)矩阵、多元梯度下降
  4. json对象和json字符串之间的转化
  5. mysql 5.7 hint_新特性解读 | MySQL 8.0 新增 HINT 模式
  6. C语言逻辑运算符 - C语言零基础入门教程
  7. CentOS7 通过wget下载文件到指定目录
  8. android按键事件响应函数,android 响应按键按下的onKeyDown()函数?
  9. 你真明白 Python 装饰器么?
  10. 2017-2018-2 20155315《网络对抗技术》Exp3:免杀原理与实践
  11. 【Android】Listview返回顶部,快速返回顶部的功能实现,详解代码。
  12. iPhone开发教程 UI基础课程(58课时)
  13. [Z]在线版本控制之SubVersion与MyEclipse整合
  14. libevent参考手册 系列文章
  15. 四月,诗月,你是最美人间四月天。
  16. HDU 1317 一路wa到西天
  17. 二进制除法移位相减_二进制除法计算器
  18. CSS样式写出三角形
  19. LAD-lasso和线性规划算法
  20. Matlab编写S函数,实现y=ku+b

热门文章

  1. 一张图搞清楚防抖和节流的区别
  2. 学习,如何提高理解力
  3. 计算机曝光模式有哪些,曝光模式分哪几种
  4. 【老牌系统】雨林木风 win pe系统怎么进入
  5. js遍历对象key,value
  6. 傅里叶变换系列FS,FT,DTFT,DFS,DFT,FFT
  7. HTML下拉菜单为什么是灰的,CSS实现的灰色下拉菜单效果代码
  8. linux scp迁移服务器
  9. C语言:一口枯井深10米,一只蜗牛从井底往上爬,白天往上爬2米,晚上往下滑1米。这只蜗牛第几天才能爬上井口?
  10. #pragma once 与 #define的含义及用法