IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发测试 -> 软件测试理论 -> 正文阅读

[开发测试]软件测试理论

软件测试理论基础知识

什么是软件测试
在一定的条件下,执行程序,比较实际结果与预期结果的过程

测试与调试的区别
测试 - 由测试人员完成 - 破坏性的
调试 - 由开发人员完成 - 建设性的

测试的七大原则
通过测试可以显示缺陷的存在
穷尽测试是不可能的
测试要尽早介入
缺陷的集群效应
杀虫剂悖论
测试依赖于具体的商业背景
没有缺陷的系统并不代表是有用的系统

测试过程/测试流程/测试生命周期
制定测试计划 - 测试组长/主管/经理 - 测试任务,时间,人员的安排
制定测试方案 - 测试管理人员/测试工程师 - 如何测试的指导性文档
分析测试需求 - 测试工程师 - 基于软件需求文档,分析测试点
设计并编写测试用例 - 测试工程师 - 将分析的测试点转换为企业标准的测试用例
评审测试用例 - 开发+测试+需求人员
搭建测试环境(Linux,Windows)
执行测试用例,提交并跟踪缺陷 - 测试工程师
撰写测试报告 - 测试工程师
测试总结 - 测试管理人员

软件生命周期
计划阶段 - 项目经理 - 任务,时间,人员安排
需求分析 - 需求工程师/产品经理 - 分析并整理前端收集到的零散需求,并形成文档
概要设计 - 架构人员 - 对系统整体框架的设计,确定系统模块,模块与模块之间的关系,编写核心代码,确定系统与子系统的关系
详细设计 - 开发人员 - 对模块内部的算法及逻辑结构进行详细设计,包括类,方法,函数,数据库,表等
编码 - 开发人员 - 编写代码
测试 - 测试团队 - 参见测试流程
发布 - 发布负责人 - 程序+数据+文档
运维 - 运维人员 - 负责客户或用户使用软件过程中的问题

软件开发模型
边做边改模型
瀑布模型 - 把生命周期中的各个环节确定下来,但是环节不可逆,测试滞后
快速原型模型 - 在需求阶段,通过原型不断和客户沟通需求,最终确定需求,再进行系统的整体设计与开发
V模型 - 为每个开发活动对应相关测试活动
用户需求? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?验收测试
? ? 需求分析? ? ? ? ? ? ? ? ? ? 系统测试
? ? ? ? 概要设计? ? ? ? ?集成测试
? ? ? ? ? ? ?详细设计 单元测试
? ? ? ? ? ? ? ? ? ? ? ? 编码
W模型
需求分析? ? ? ? ? ? ? ? ? ?系统实施? ? ?测试需求分析? ? ? ? ? ? ? ? ? ? ?系统测试
? ? 概要设计? ? ? ? ? ?系统的集成? ? ? ? ? ? ? ? 测试概设? ? ? ? ? ? ?集成测试
? ? ? ? ?详细设计 模块的集成? ? ? ? ? ? ? ? ? ? ? ? ? 测试详设? ? 单元测试
? ? ? ? ? ? ? ? ? ? ?编码? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 编码
增量模型 - 按照功能点开发
每一个增量是一个流程,开发,测试,需求可以并行工作

测试分类 - 按照不同维度分类
1、测试阶段划分(按测试执行顺序):
  ● 单元测试(Unit Testing)--UT
  定义:针对软件基本组成单元(软件设计的最小单位)来进行正确性检验的工作;
  测试目的:检测软件模块对《详细设计说明书》的符合程度。
  ● 集成测试(Integration Testing)--IT
  定义:在单元测试的基础上,将所有模块按照概要设计要求组装成为子系统或系统,验证组装后功能以及模块间接口是否正确的测试工作;
  测试目的:检测软件模块对《概要设计说明书》的符合程度。
  ● 系统测试(System Testing)--ST
  定义:将已经集成好的的软件系统,作为整个基于计算机系统的一个元素,与计算机硬件、外设、某些支持软件、数据和人员等其他元素组合在一起,

? ? ? ? ? ? ? ? ?在实际运行(使用)环境下,对计算机系统进行的一系列的测试工作。
  测试目的:与《需求规格说明书》做比较,发现软件与系统需求定义不符合或与之矛盾的地方。
  ● 回归测试(Regression Testing)--RT
  定义:软件在测试或其他活动中发现的缺陷经过修改后,进行的测试;
  测试目的:验证缺陷得到了正确的修复,同时对系统的变更没有影响以前的功能;
  特点:回归测试可以发生在任何一个阶段,包括单元测试、集成测试和系统测试;
  策略:
  ①、完全重复测试:重新执行前期建立的所有测试用例,并确认缺陷解决和修改的扩散影响性;
  ②、选择性重复测试:
  ——覆盖修改法:选择直接影响的用例;
  ——周边影响法:选择间接影响的用例;
  ——指标达成方法:达到指标的覆盖率等。
  流程:
  1)制定回归测试策略
  2)确定测试的版本
  3)按照回归测试策略执行回归测试
  4)回归测试通过,关闭缺陷跟踪单(问题单)
  5)回归测试不通过,缺陷跟踪单返回开发人员,经开发人员修改后再次进行回归测试
  回归测试自动化:(需考虑的问题如下)
  1)回归测试是一个重复的以前测试的测试,所以自动化是回归测试的追求;
  2)自动化法包括:程序的自动运行、自动配置,用例的管理、自动输入,测试自动执行,测试结果自动采集、比较及结论的自动输出;
  3)对比较稳定的可采用QTP、Robot、SilkTest等工具的“捕捉回放”工具;
  4)为了能实现自动化需要用到脚本语言,如:TCL、Python、Perl等;
  5)对比较复杂的过程,无法借助工具的需要自己开发专用工具;
  6)尽早考虑回归测试的自动化,形成工具化、可继承和推广的。
  ●  其他测试阶段
  ○  α测试:用户在开发环境下进行的测试,评价软件FLURPS
  ○  β测试:多用户在实际使用环境下进行的测试
  ○  验收测试:用户根据合同、《需求规格说明书》或《验收测试计划》对产品进行的验收测试
  注:FLURPS即:功能、局域化、可用性、可靠性、性能、技术支持
2、单元测试、集成测试、系统测试的比较:
  ●  测试方法:
  单元测试属于白盒测试范畴;
  集成测试属于灰盒测试范畴;
  系统测试属于黑盒测试范畴;
  ●  考察范围:
  单元测试主要测试内部数据结构、逻辑控制、异常处理等;
  集成测试主要测试模块间的接口与接口数据传递关系,以及模块组合后的整体功能;
  系统测试主要测试整个系统相对于需求的符合度;
  ●  评估基准:
  单元测试主要通过逻辑覆盖率来评估;
  集成测试主要通过接口覆盖率来评估;
系统测试主要通过测试用例对需求规格的覆盖率来评估;

  主要的测试文档:
  ●  测试计划:测试范围、方法、资源,以及相应测试活动的时间进度安排表的文档;
  ●  测试方案:为完成软件集成特性的测试而进行的设计测试方法的细节文档;
  ●  测试用例:为完成一个测试项的测试输入、预期结果、测试执行条件等因素的文档;
  ●  测试规程:执行测试时测试活动序列的文档;
  ●  测试报告:执行测试结果的文档;
? ? ? ?●  测试日报:每天测试执行情况的记录和总结。
3、软件测试过程规范
  首先来看看软件最权威的规范CMM(capability maturity model 能力成熟度模型)关于过程的要素的描述有哪些?
  ●  角色(rolse):执行者、工作者
  ●  入口准则(entry criteria):过程执行的前提条件
  ●  输入(input):过程所需资源
  ●  活动(activities):过程执行
  ●  输出(output):过程执行结果
  ●  出口准则(exit criteria):过程结束的条件
  ●  评审和审核(reviews and audits):监督活动
  ●  可管理和受控的工作产品(work products managed controlled):标准性的东西
  ●  测量(measurements):可以度量的
  ●  书面规程(documented procedures):计划文档类
  ●  培训(training):业务培训等
  ●  工具(tools):过程执行采用的工具
  这些要素已经全面囊括了一个过程的方方面面,如果在软件流程中的每一个过程都按照这样的规范执行,那么软件质量就能得到一定的保证!
  那么作为软件测试工作,在整个软件开发流程中的每一个过程中有哪些工作要做的呢?下面我将分角色、分阶段的来学习。
4、系统测试过程
  在这里主要研究软件系统测试过程中的输入和输出,了解我们应该根据什么来做、要做什么以及我们做的先后顺序是怎么安排的过程。
  系统测试计划阶段:
  输入:软件开发计划、软件测试计划、需求规格说明书
  输出:系统测试计划
  系统测试设计阶段:
  输入:需求规格说明书、系统测试计划
  输出:系统测试方案
  系统测试实现阶段:
  输入:需求规格说明书、系统测试计划、系统测试方案
  输出:系统测试用例、系统测试规程、系统测试预测试项
  系统测试执行阶段:
  输入:系统测试计划、系统测试方案、系统测试用例、系统测试预测试项、系统测试规程
  输出:系统预测试报告、系统测试报告、缺陷报告
5、集成测试过程
  同样这个过程将研究集成测试过程各个阶段的输入及输出。
  集成测试计划阶段:
  输入:软件测试计划、概要设计说明书
  输出:集成测试计划
  集成测试设计阶段:
  输入:概要设计说明书、集成测试计划
  输出:集成测试方案
  集成测试实现阶段:
  输入:概要设计说明书、集成测试计划、集成测试方案
  输出:集成测试用例、集成测试规程
  集成测试执行阶段:
  输入:集成测试计划、集成测试方案、集成测试用例、集成测试规程
  输出:集成测试报告、缺陷报告
6、单元测试过程
  同样这个过程将研究单元测试过程各个阶段的输入及输出。
  单元测试计划阶段:
  输入:详细设计说明书、软件测试计划
  输出:单元测试计划
  单元测试设计阶段:
  输入:详细设计说明书、单元测试计划
  输出:单元测试方案
  单元测试实现阶段:
  输入:详细设计说明书、单元测试计划、单元测试方案
  输出:单元测试用例、单元测试规程
  单元测试执行阶段:
  输入:单元测试计划、单元测试方案、单元测试用例、单元测试规程
  输出:单元测试报告、缺陷报告
7、需求分析阶段
  每个阶段有每个阶段的任务,这里将了解需求分析阶段的任务,及其软件项目各工作人员的任务所在。
  需求分析阶段任务:
  ●  需求分析,完成SRS
  ●  软件需求规格说明书的评审:检查遗漏和存在问题
  ●  进行需求跟踪
  ●  系统测试计划
  ●  系统测试计划的评审
8、概要设计阶段
  概要设计阶段任务:
  ●  软件系统各层设计,完成HLD
  ●  HLD的评审
  ●  更新需求跟踪
  ●  系统测试方案、用例的设计
  ●  系统测试方案、用例的评审
  ●  集成测试计划
  ●  集成测试计划的评审
9 、详细设计阶段
  详细设计阶段任务:
  ●  软件详细模块的设计,完成LLD
  ●  详细设计的评审
  ●  更新需求跟踪
  ●  集成测试方案、用例的设计
  ●  集成测试方案、用例的评审
  ●  单元测试计划
  ●  单元测试计划的评审
10、编码阶段
  编码阶段任务:
  ●  软件编码
  ●  对代码进行静态质量检查
  ●  代码评审
  ●  单元测试方案、用例的设计
  ●  单元测试方案、用例的评审
11、测试阶段
  测试阶段的任务:
  ●  系统预测试项执行
  ●  系统预测试报告工作
  ●  执行各阶段测试用例
  ●  各阶段的缺陷记录、修复
  ●  各阶段日志报告
  ●  各阶段缺陷的回归测试
  ●  各阶段测试报告
  ●  测试报告的评审


系统测试的类型:
        功能测试-手工
        功能测试-自动化
        性能测试
        兼容性测试
        安全测试
        接口测试
        健壮性测试
        安装卸载升级测试
        文档测试

按照测试技术分:
        白盒测试
        灰盒测试
        黑盒测试

按照是否运行程序:
        静态测试
        动态测试

其他测试相关开概念:
        回归测试
        冒烟测试
        国际化测试
        随机测试
        探索性测试

技术:
  高级测试工程师
  自动化测试工程师
  性能测试工程师
  安全测试工程师
  接口测试
  单元测试
  数据库管理员DBA
  Linux系统运维
  开发
  运维
  管理
  测试组长、主管、经理
  测试总监
  项目经理
  运维经理
  质量部经理
业务:
  需求工程师
  产品经理
  行业专家(电信,银行,证券,供应链)

一个优秀的测试工程师需要具备的技能
素质:专业、性格、逻辑、情感
能力:测试基础、标准与规范、测试流程、测试工具、测试方法
管理:管人、理事
行业经验:业务、测试与行业背景结合越来越紧密
英语:外企、国外项目
性格:开朗、交流、团队合作、追求完美、怀疑精神、善于说服

  开发测试 最新文章
pytest系列——allure之生成测试报告(Wind
某大厂软件测试岗一面笔试题+二面问答题面试
iperf 学习笔记
关于Python中使用selenium八大定位方法
【软件测试】为什么提升不了?8年测试总结再
软件测试复习
PHP笔记-Smarty模板引擎的使用
C++Test使用入门
【Java】单元测试
Net core 3.x 获取客户端地址
上一篇文章      下一篇文章      查看所有文章
加:2021-09-24 10:54:53  更:2021-09-24 10:56:10 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/18 0:25:40-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码