测试基础知识点总结_测试基础理论知识_LXMXHJ的博客-程序员宝宝

技术标签: 学习  测试+国企面试知识  

软件测试基础知识

测试概述

定义
软件测试 =
运行程序,并发现程序的错误以及缺陷;将预期结果与实际结果进行比对,以检验是否满足产品规格说明书。

目的
用于证明软件的正确性、完整性、安全性以及质量。

测试思维

1 梳理产品的核心业务流程:明白这是个什么项目,实现了什么业务,以及是怎么实现的?
2 根据流程进行模块细分,然后针对每个功能模块进行详细的测试点设计和提取;主要包括正常功能的验证和异常功能的验证;
3 针对具体的功能,寻找每个输入项和步骤,针对以下三个部分来分析测试点。
变量 长度、数据类型;必填项、是否可以重复;需求的约束条件、隐形需求;功能之间的交互;
4 考虑分功能测试点、包括界面、易用性、兼容性、安全性、性能压力。

软件测试策略

定义
软件测试策略是软件测试的一个模板,即把特定的测试用例方法放置进去的一系列步骤;

测试分类

  • 软件开发流程分类:4个

单元测试:对软件组成的单位进行测试,也就是方法或者函数进行测试;
集成测试:模块按照合适的策略组合之后针对软件的功能和接口进行正确性以及功能性测试;
系统测试:将软件看成一个整体,对软件的功能、性能、所处的软硬件环境进行测试;
验收测试:软件项目部署之前的最后一个测试,验证下软件是否符合需求说明书的要求;

  • 是否查看代码分类:3个

黑盒测试:检测软件功能是否实现、是否按照软件需求说明书进行;不关注软件代码,只关注软件的输入输出数据;
白盒测试:基于代码进行测试,包括逻辑测试、结构测试;
灰盒测试:既有功能测试、又有结构测试;

  • 是否运行代码分类:2个

静态测试:不运行代码;(代码)查看测试代码是否符合相应的标准、(界面)查看软件的实际界面与需求中的说明是否相符、(文档)看测试用户和需求说明是否符合用户的实际需求;
动态测试:运行程序本身,查看程序的预期运行结果与实际运行结果是否一致,并对软件功能的正确性和健壮性进行分析;

  • 测试对象分类:11个

性能测试:检查软件是否符合需求分析说明书;包括压力测试、负载测试、并发测试;
功能测试:主要针对软件的功能进行测试;比如登录功能等;
安全性测试:渗透测试、DOS攻击、跨域攻击、SQL注入、暴力破解、软件权限、数据安全等;
兼容性测试:看不同软件之间是否可以协同工作,是否会影响其他软硬件的性能发挥;
安装测试:检测软件是否可以正常安装 和 卸载;
界面测试:看界面与设计图是否保持一致、界面是否好看、界面按钮大小、设计风格是否保持一致;
稳定性测试:对软件产品在高负载、重压、不同环境下进行稳定性测试,寻找软件的崩溃节点;
用户体验测试:软件是否从用户的角度去设计,交互性怎么样;
文档测试:检查软件的开发文档、用户文档、管理文档是否完好健全;
本地化测试:检测不同环境下,软件的使用是否正常;
APP专项测试:弱网测试、场景交互测试、资源挣网测试、权限测试、安装卸载更新测试、离线测试、消息推送测试、资源监控测试等。

  • 是否人工测试:2个

手动测试:通过测试人员手动输入测试用例进行测试;
自动测试:由机器参与的,由程序自动读取数据进行测试;

  • 测试实施组织:3个

α测试:用户在开发环境中的测试;一般是程序员将软件开发出来后,自己进行测试;
β测试:最终的用户在不同场景下的测试;
第三方测试:将开发出来的软件交由第三方机构进行测试,看软件是否好用;

  • 其他分类:2个

冒烟测试:针对不同版本的修改,在正式测试之前先进行验收测试;
回归测试:修改代码之后,看是否引入新的问题;

软件测试过程模型

  • V模型
    在这里插入图片描述
  • W模型
    在这里插入图片描述
  • H模型
    在这里插入图片描述
  • X模型
    在这里插入图片描述

预备知识

前端内容
前端的三大部分是 html、css、js
js
js = JavaScript 可以插入HTML页面的编程代码;
用来改进设计、验证表单、检测浏览器、创建cookies等;
位于标签之间的,一般位于之间 可以在中;

软件测试流程

项目职责与划分
项目主要涉及人员包括:项目经理、开发人员、测试人员;
项目经理负责对项目的整体功能进行分析,并撰写产品需求文档;开发人员根据需求分析报告完成相应的功能;测试人员根据需求分析报告构建需求分析思维导图,进而构建测试点和功能点完成测试;

测试流程概述

1 阅读项目相关文档,包括产品需求文档PRD、产品流程图、UI界面设计图等;
2 与项目经理、开发人员一同参加需求评审会议,针对项目确立需求分析文档并编写测试计划;
3 根据需求分析文档构建测试需求分析思维导图,找出功能点和测试点,并构建测试用例;
4 与项目经理、开发人员、测试同组人员一起参加用例评审会议,看测试用例是否符合项目需求;
5 开发人员提交程序代码之后,搭建测试环境,使用测试用例进行自动化测试,并记录问题;
6 验证bug与回归测试,编写测试报告;
7 产品上线。

需求评审

该阶段最重要的是建立需求分析文档;
通过阅读项目的产品流程图、产品需求文档PRD,了解项目初步需求;
与项目经理、开发人员一同参加需求评审会议,针对项目确立需求分析文档并编写测试计划,包括对项目组人员的数量以及职责的安排部署;

测试计划

  • 测试概要
    根据项目需求分析文档,制定测试策略并对测试工作量进行评估,进行人员安排;
    划定测试范围(如产品的功能模块)、搭建测试环境等;

  • 测试策略
    冒烟测试:在正式测试之前,先进行的验收测试;
    第一轮功能测试:执行测试用例、兼容性测试、易用性测试等;
    第二轮功能测试:bug复测以及功能验证;
    回归测试:针对软件修改的部分,再进行测试,看是否又引入新的问题;
    性能测试:确定具体的性能测试方案和工具;
    验收测试:在项目正式部署之前的最后一个测试;

  • 测试风险评估
    突发情况的处理是否有应对解决方案,比如测试人员、开发人员由于特殊原因请假导致人员不够的问题怎么解决;
    项目突然提前了有什么响应的应对方案;
    项目的优先级是否足够高,如果有优先级更高的项目中途打断该项目的开发,是否有相应的解决方案;

  • 测试预期
    拟定测试目标(如软件开发产品的预设);

测试用例

  • 设计测试用例:

等价类——有效等价类、无效等价类。
有效等价类 = 针对测试项是正确的内容;无效等价类 = 测试项不正确的内容;

在这里插入图片描述

边界值分析法——上点、离点、内点

在这里插入图片描述

流程图分析

画出流程图,根据流程图提取测试路径,利用等价类和边界值方法为每一条路径设计测试用例;
涉及概念:基本流、备选流、异常流。

正交实验

获取因子以及其水平数(因子 = 影响实验结果的条件、水平数=每个因子可能的取值)
选择正交表;
使用等价类和边界值为每一条规则设计测试用例。

状态迁移

主要关注测试状态转移上的正确性,验证给定的条件下是否能够产生需要的状态变化;
具体步骤:分析对象的状态、绘制状态迁移树、提取测试路径;

判定表

用于分析和表达在多个条件下程序执行不同动作的工具;
在这里插入图片描述

参考

  • 测试用例的八要素:
    用例名称:描述测试的功能点;
    用例编号:产品/项目—用例属性—功能模块—编号 用例属性(UT=单元测试,IT=集成测试,ST=系统测试,UAT=用户接收测试)
    测试项:表示测试的功能模块;
    测试类型:比如功能测试、性能测试、兼容性测试等;
    前置条件:该测试用例运行的前提条件;
    测试步骤:也就是页面点击的步骤;
    预期结果:该测试用例正常分析的结果;
    优先级:表示测试用例的重要性;

bug管理

当测试人员提交一个bug的时候,bug就有了生命,生命周期就是从此刻到它最后被解决。

测试提交的bug单

概要 = 简要描述bug;
被检测模块 = 产生该bug是针对哪个模块进行的测试;
测试人 = 测试人员的名字;
提交给的开发人员 = 开发此模块的开发人员;
单子的创建时间 = bug单子的创建时间;
bug的详细描述 = 测试项目、前置条件、执行操作、预期结果、实际结果;
附件上传 = 发现bug的实时截图;

bug基本概念

定义:不符合产品需求的、程序报错、不符合用户习惯的;

测试报告

  • 项目概要
    项目介绍、参与测试人员以及开发人员、测试的周期;

  • 测试结论
    是否达到发布标准,是否可发布;

  • 测试环境,测试设备
    用到哪些测试软件,客户端环境,浏览器;

  • 需求大纲
    当前这个版本,包含哪些需求点;

  • 测试用例报告
    报告用例情况,测试用例的预期结果与真实结果是否一致;

  • Bug数据分析
    对bug进行级别的分类和统计,分类包括:崩溃级别的bug、模块的bug、功能bug等;

  • 风险分析
    查看有哪些已知的测试风险被排查、以及是否有发现未知的测试风险;

  • 测试总结
    从测试角度,对版本存在的问题,提出建议,以方便开发人员进行修改;

上线发布单

根据测试人员书写的测试报告,看是否达到上线标准;
如果达到上线标准,书写上线报告单;

上线报告单:
迭代的版本号;发布的pool名;遗留的bug编号;性能测试是否通过;war包;上线发布(替换配置文件、在线上执行sql)。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/LXMXHJ/article/details/125268599

智能推荐

SDUT 3443_陈宫域楠的博客-程序员宝宝

SDUT 3443一个用C写的简单解法Description新学期开始了,在学校勤学苦练的LeiQ有一天收到一个名单,上面有n个人的信息(姓名和地址),LeiQ知道有多少人是他的老乡以及老乡的名字。Input多组输入,每组的第一行是一个整数n(1<=n<=100),表示名单上人的数量。接下来一行有一个字符串表示LeiQ的地址(1<=len<=20)接下来n行,每行两个字符串,第一个是姓名,第二个是地址Output先输出老乡的名字(按照输入的顺序),最后输出老乡的人

laravel-casbin-admin_潜蛰的博客-程序员宝宝

laravel-casbin-admin基于 vue-element-adminlaraveljwtcasbin整合的前后端分离的rbac权限管理系统演示站点线上demo账号:[email protected] 密码:123456后台界面登录安装使用$ git clone https://github.com/pl1998/laravel-casbin-admin.git后端环境配置$ cd /laravel-casbin-admin/web/vue-elem

OpenGl学习之显示窗口重定形函数_zhouzhouzf的博客-程序员宝宝

通过上面一个程序我们可以发现一个问题或者说

Qt for android 百度地图定位开发莫名其妙崩溃--W System.err: java.io.FileNotFoundException:_Fu_Lin_的博客-程序员宝宝

先贴错, 这是直接崩溃的前缀打印W Zygote : mz_is_rooted falseW ni.qtandroidmap: type=1400 audit(0.0:689): avc: denied { search } for name="/" dev="mmcblk0p4" ino=2 scontext=u:r:untrusted_app:s0:c512,c768 tcontext=u:object_r:custom_file:s0 tclass=dir permissive=0W Syst

软考中级除了刷题还有哪些高效复习方法?_博览君君的博客-程序员宝宝

题海战术是备考必不可少的学习方法,但是单单做题肯定是不够的,教材和重点知识点也是需要有个清晰的认知的。

【Hadoop】【第三章】虚拟机准备 & 安装Hadoop_败给你的黑色幽默丶的博客-程序员宝宝

1. 模板虚拟机环境准备准备模板虚拟机,是为了后面再扩建服务器不需要重新安装1)准备一台模板虚拟机hadoop100(最小化安装),虚拟机配置要求如下:注:本文Linux系统环境全部以CentOS-7.5-x86-1804为例说明模板虚拟机:内存4G,硬盘50G,安装必要环境,为安装hadoop做准备2. 集群配置1.集群规划① NameNode和SecondaryNameNode不要安装在同一台服务器② ResourceManager也很消耗内存,不要和NameNode、Secondary

随便推点

苹果雪豹版本10.6.X安装xcode 4.2 提示安装失败的解决方法_didi4find的博客-程序员宝宝

苹果雪豹版本10.6.X安装xcode 4.2 提示安装失败的解决方法原来地址:http://www.pcbeta.com/forum.php?mod=viewthread&tid=1005917。从iAntares_v3.2(10.6.5)升级到10.6.8后, 安装XCODE (xcode_4.2_and_ios_5_sdk_5_for_snowleopard.dmg) 时发生

FDDI_加油11的博客-程序员宝宝

1 FDDI基本概念光纤分布数据接口FDDI(Fiber Distributed Data Interface)是一种将计算网络和广电技术结合而发展起来的网络接口技术主要部件 光纤光缆FDDI适配器FDDI适配器与光纤相连的连接器2 FDDI特点以光纤作为传输介质的高速主干网基于共享介质原理,是令牌环体系结构的拓展使用基于IEEE 802.5的单令牌的环型网介质访问协议数据传输速

Win10 修改cmd命令行窗口UTF-8编码_win10 utf-8 cmd_tfs411082561的博客-程序员宝宝

1.临时修改,只作用于当前打开的窗口  进入cmd窗口后,直接执行“chcp 65001”  执行完后cmd窗口变化:2.永久修改,修改注册表。在运行中输入"regedit",找到HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Command Processor然后“右键-新建”,选择“字符串值”,“名称”列填写“autorun”,

ESP32 SDK 开发(四)——ESP32-CAM局域网视频监控_零涂的博客-程序员宝宝

ESP32 CAMERA QR使用教程环境要求:ESP_IDF 版本:V4.3环境搭建参考教程:https://blog.csdn.net/FourLeafCloverLLLS/article/details/119849565?spm=1001.2014.3001.5501下载子模块参考:https://gitee.com/EspressifSystems/esp-gitee-tools/blob/master/docs/README-submodule-update.md电脑系统:

linux系统编译caffe10,Linux下配置Caffe及其Python接口全过程记录(Ubuntu15.10_amd64+CUDA7.5)及训练mnist数据集..._哈佛孙一峰的博客-程序员宝宝

1.查询你的GPU是否支持CUDA,支持的话,请提前下载好CUDA7.5,我下载到了主文件夹下,提供链接:https://developer.nvidia.com/cuda-downloads/;以及下载CUDNN V4,需要developer身份,提供链接:https://developer.nvidia.com/cudnn2.第一步,打开终端,输入sudo dpkg -icuda-repo-...

module not found: ./cptable in cpexcel.js_not found cpexcel.js_梓喻的博客-程序员宝宝

在前端需要插件导出excel时,可以运行一下命令安装 xlsx 插件npm install --save xlsx-style当运行服务时可能会报以下错误这个找不到的模块代码在该文件的807行var cpt = require('./cpt' + 'able');将代码换成以下代码var cpt = cptable;因为变量 cptable 已存在上下文环境中,所以可以直接使用...