软件测试基础知识整理(详细版)
这里写目录标题
- 一、软件测试概述
- 1、软件缺陷
- 2、软件测试的定义及原则
- 二、软件测试过程与策略
- 1、软件测试策略概述
- 2、软件测试的分类
- 3、软件测试过程模型
- 3.1、V模型
- 3.2、W模型
- 3.3、H模型
- 3.4、X模型
- 4、测试用例的定义和特征
- 4.1、测试用例的特征
- 4.2、测试用例设计原则
- 4.3、测试用例模板
- 4.3.1、测试用例的基本要素
- 4.3.2、功能测试用例
- 4.3.3、性能测试用例
- 4.3.3、兼容性测试用例
- 三、黑盒测试
- 1、等价类划分法
- 2、边界值法
- 2.1、边界值分析
- 3、决策表法
- 4、因果图法
- 5、场景法
- 6、正交实验法
- 四、白盒测试(后续补充)
一、软件测试概述
1、软件缺陷
软件缺陷:又称之为“Bug”。即计算机软件或程序中存在的某种破坏正常运行能力的问题、错误,或者隐藏的功能缺陷。
缺陷的表现形式:
- 软件没有实现产品规格说明书所要求的功能模块;
- 软件中出现了产品规格说明指明不应该出现的错误;
- 软件实现了产品规格说明中没有提到的功能需求;
- 软件没有实现虽然产品规格说明没有明确提及但应该实现的目标;
- 软件难以理解、不易使用、运行缓慢、用户体验不友好;
产生软件缺陷的原因:
- 需求不清晰;
- 系统结构较为复杂;
- 对程序逻辑路径或者数据范围考虑不全面;
- 确保设计时间的精准同步;
- 存在系统性、可靠性的隐患问题;
- 系统运行环境的复杂;
- 通信端口较多时影响系统的安全性、适用性;
- 设计技术系统兼容的问题;
缺陷的属性:
- 缺陷标识:标识唯一;
- 缺陷类型:缺陷种类;
- 缺陷严重程度:指因缺陷引起的故障对软件产品的影响程度;
- 缺陷优先级:指缺陷必须被修复的紧急程度;
- 缺陷状态:通过一个跟踪修复过程的进展情况;
- 缺陷起源:缺陷引起的故障或事件第一次被检测到的阶段;
- 缺陷来源:引起缺陷的原因;
- 缺陷根源:反正错误的根本因素;
2、软件测试的定义及原则
定义:软件测试是为了发现错误而执行程序或系统的过程。
原则:
- 测试显示Bug的存在:
- 穷举测试不可能;
- 尽早地进行测试;
- 缺陷群:(二八定律:约80%的问题被发现在20%的模块中);
- 杀虫剂悖论;
- 测试是上下文相关的;
- 有无谬误;
- 软件测试是有风险的行为;
二、软件测试过程与策略
1、软件测试策略概述
软件测试策略是软件工程过程的一个软件测试的模板,也就是把特定的测试用例方法放置进去的一系列步骤:
软件测试包含的特征:
- 测试从模块层开始,然后扩大延伸到整个基于计算机的系统集合中;
- 不同的测试技术适用于不同的时间点;
- 测试由开发人员及独立的测试组来管理的;
- 测试和调试时不同的活动,但是调试必须能够适应任何测试策略;
软件测试充分性准则:
- 对任何软件都存在有限的充分测试集合;
- 若果一个软件系统在一个测试数据集合上的测试是充分的,那么再多测试一些数据也应该是充分的;
- 即使对软件所有成分都进行了充分测试,也并不表名整个软件的测试已经充分;
- 即使对软件系统整体的测试是充分的,也并不意味着软件系统中各个成分都已经充分的得到了测试;
- 软件测试的充分性与软件的需求和软件的实现都相关;
- 软件越复杂,需要的测试数据就越多;
- 测试的越多,进一步测试所能得到的充分性增长就越少;
2、软件测试的分类
软件开发阶段划分:
1)、单元测试:
指对软件中的最小可测试单元进行检查和验证,单元测试需要从软件的内部结构出发设计测试用例。多个模块可以独立地进行测试。
2)、集成测试:
组装测试/联合测试:将所有模块按照设计要求组装成子系统或者系统进行集成测试。
3)、系统测试:
将已经确认的软件、计算机硬件、外设、网络等其他元素结合在一起,进行信息系统的各种组装测试 和确认测试,系统测试是针对整个产品的测试。
4)、验收测试:
交付测试:确保软件准备就绪。
测试技术划分:
1)、白盒测试:
结构性测试/透明盒测试/逻辑驱动测试/基于代码的测试:
2)、黑盒测试:
功能测试:通过测试每个功能是否都能正常使用。(输入数据/输出数据)
3)、灰盒测试:
介于白盒测试和黑盒测试之间的一种测试方法:不仅关注输出、输入的正确性,同时也关注程序内部的情况。
被测试软件是否实际运行划分:
1)、静态测试:
指不运行被测程序本身,仅通过分析或检查源程序的语法、结构、过程、接口等来检查程序的正确性。
- 对于代码测试:主要测试代码是否符合相应的标准和规范;
- 对于界面测试:主要测试软件的实际界面与需求中的说明是否相符;
- 对于文档测试:主要测试用户和需求说明是否符合用户的实际需求;
2)、动态方法:
指通过运行被测程序,检查运行结果与预期结果的差异,并分析运行效率、正确性、健壮性等性能。
测试实施组织划分:
1)、开发方测试:
验证测试/α测试
2)、用户测试:
β测试
3)、第三方测试
测试类型划分:
1)、功能测试:
主要针对产品需求说明书对软件进行测试,验证软件功能是否符合需求,包括对原定功能的检验以及测试软件是否存在冗余功能、遗漏功能。
2)、界面测试:
主要对系统的界面进行测试,测试用户界面是否友好,软件是否方便易用、系统设计是否合理、界面位置是否正确等问题。
3)、性能测试:
主要测试系统的性能是否满足用户需求,即在特定的运行条件下验证系统的能力状态。性能测试主要是通过自动化的测试工具模拟正常、峰值、异常负载状况、对系统的各项性能指标进行测试。
4)、强度测试:
迫使系统在异常的资源配置下运行。目的是找出因资源不足或者资源争用而导致的错误。
5)、压力测试:
主要是在超负荷环境中,检验系统是否能够正常运行。
6)、安全测试:
测试系统防止非法入侵的能力。
7)、兼容性测试:
测试软件产品在不同的平台、不同的工具软件或者相同工具软件不同的版本下的兼容性。
8)、安装测试:
主要校验软件是否可以正确安装、安装文件的各项设置是否有效、安装后是否影响整个计算机系统、卸载软件时是否可以卸载干净、卸载软件之后是否影响整个计算机系统。
9)、文档测试:
主要检查内部或外部文档的清晰性和准确性。
3、软件测试过程模型
3.1、V模型
3.2、W模型
3.3、H模型
3.4、X模型
4、测试用例的定义和特征
4.1、测试用例的特征
1、测试用例具有代表性:测试用例能够代表并覆盖各种合法的和非法的、合理的和不合理、边界的和越界的以及极限的输入数据、操作和环境设置等。
2、测试结果是可判定的:测试执行结果的正确性是可以判定的,每一个测试用例都应有明确的期望结果,否则将难以判断系统是否正常运行。
3、测试结果可以再现:对同样的测试用例,系统的执行结果应当是相同的。
4.2、测试用例设计原则
- 使用成数的测试用例设计方法来进行设计;
- 保证测试用例数据的正确性和操作的正确性;
- 确保测试用例具有一定的代表性;
- 每个测试用例应该针对单一的测试项;
- 保证测试结果是可以判定并且可以再现的;
- 保证测试用例描述准确、清晰、具体;
- 测试用例设计应满足项目的时间、人员和资金要求;
4.3、测试用例模板
4.3.1、测试用例的基本要素
要素名称 | 含义 |
---|---|
功能模块 | 待测试模块名称 |
功能特征 | 待测试模块功能特征 |
测试时间 | 测试进行时间 |
用例编号 | 唯一标识该测试用例的值 |
输入数据 | 测试需要的数据列表 |
操作步骤 | 按照操作步骤的顺序,准确详细的描述 |
期望结果 | 按照规格设计所要求的的正确结果 |
优先级 | 依据重要程度确定优先级 |
预置条件 | 测试进行时的前置条件 |
测试类型 | 该用例是功能测试/冒烟测试/接口测试/性能测试等 |
4.3.2、功能测试用例
要素名称 | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
标识 | 项目名称 | 开发人员 | 模块人员 | 作者 | 测试类型 | 测试方法 | 描述 | 前置条件 | 操作步骤 | 期望结果 | 测试时间 |
4.3.3、性能测试用例
1、预期性能测试用例
要素名称 | |||||
---|---|---|---|---|---|
测试目的 | 前提条件 | 测试需求 | 测试过程说明 | 期望性能(平均值) | 实际性能(平均值) |
2、用户并发性能测试用例
要素名称 | ||||||
---|---|---|---|---|---|---|
测试目的 | 前提条件 | 测试需求 | 输入(并发用户数) | 用户通过率 | 期望性能(平均值) | 期望性能(平均值) |
3、大数据量性能测试用例
要素名称 | ||||||
---|---|---|---|---|---|---|
测试目的 | 前提条件 | 测试需求 | 输入(最大数据量) | 事务成功率 | 期望性能(平均值) | 期望性能(平均值) |
4、疲劳强度测试用例
要素名称 | |||||
---|---|---|---|---|---|
测试目的 | 前提条件 | 测试需求 | 输入/动作 | 输出/响应 | 是否正常运行 |
5、负载测试用例
要素名称 | |||||
---|---|---|---|---|---|
测试目的 | 前提条件 | 测试需求 | 输入 | 输出 | 是否正常运行 |
4.3.3、兼容性测试用例
测试目的 | |||||
---|---|---|---|---|---|
配置说明 | 操作系统 | 系统软件 | 外设 | 应用软件 | 结果 |
三、黑盒测试
1、等价类划分法
2、无效等价类划分:无效等价类指对于软件规格说明来讲,是不合理的、没有意义的输入数据集合。
- 在输入条件规定的取值范围或值的个数的情况下,可以确定一个有效等价类和两个无效等价类;
- 在规定了输入数据的一组值中(假定有n个值),可以确定n个有效等价类和一个无效等价类;
- 在规定输入数据必须遵守的规则的情况下,可以确定一个有效等价类和若干个无效等价类;
- 在输入条件规定了输入值的集合或规定了“必须如何”的条件下,可以确定一个有效等价类和一个无效等价类;
- 在确定已划分的等价类中各元素在程序处理中的方式不同的情况下,则应该将等价类进一步地划分为更小的等价类;
5、弱一般等价类测试:通过使用一个测试用例中的每个等价类(区间)的一个变量实现
2、边界值法
2.1、边界值分析
边界值分析法就是对输入或输出的边界值进行测试的一种黑盒测试方法。边界值分析的基本思想是使用在最小值、略高于最小值、正常值、略低于最大值、最大值处取变量值。
3、决策表法
3.1、决策表
3.2、实例
3.3、指导方针
4、因果图法
因果图是一种利用图解法分析输入的各种组合情况,从而设计测试用例的方法。适用于检查程序输入条件的各种组合的情况。
5、场景法
6、正交实验法
四、白盒测试(后续补充)
软件测试基础知识整理(详细版)相关推荐
- 软件测试基础知识整理(详细版)收藏这篇足矣
一.认识软件测试 1.1 什么是软件测试? 使用技术手段验证软件是否满足需求 1.2 软件测试的目的 目的:用较少的人力.物力.和财力,找到软件中存在的问题并修复,降低商业风险 二.常见的测试分类 2 ...
- 软件测试基础知识整理,都给你准备好了
目录 1.软件测试基本概念 2.软件测试分类 3.测试工程师 4.软件测试工具简介 1.软件测试基本概念 1.软件=程序+文档,软件测试=程序测试+文档测试. "程序"是指能够实现 ...
- 我敢打赌你一定不知道的软件测试基础知识整理
目录 1.什么是测试覆盖率吗? 2.提交的缺陷包含什么内容? 3.你们的测试流程是怎样的? 4.你写过测试计划么,包含什么内容 5.如何设计登录模块的测试用例? 6.总结 7.重点:配套学习资料和视频 ...
- 软件测试基础知识整理(适用于面试)
1.软件测试的原则 一:测试标准建立在用户需求之上 二:当质量和时间冲突时,质量放在首位 三:需求分析阶段就应该定义好产品的质量 四:测试用例不是写出来的,是设计出来的 五:测试计划是测试工作的前提 ...
- Java原理性基础知识整理[详细]
文章目录 Java程序编译过程 编译型和解析型语言 命名规范 编程风格 大括号 非C风格的数组声明 阿里巴巴Java开发手册 On Java 8 Google Java 编程风格指南 基本数据类型 整 ...
- 全网最全的软件测试基础知识整理(新手入门必学)
目录 1.什么是软件 2.软件工程的内容 3.软件的生命周期 4.什么是软件测试 5.软件测试的方法 6.软件测试阶段有哪些任务 7.测试的原则 8.软件测试工作流程图 9.自动化测试 10.自动化测 ...
- 【unity学习记录】TileMap基础知识(详细版)
- Kali Linux渗透基础知识整理(四):维持访问
Kali Linux渗透基础知识整理系列文章回顾 维持访问 在获得了目标系统的访问权之后,攻击者需要进一步维持这一访问权限.使用木马程序.后门程序和rootkit来达到这一目的.维持访问是一种艺术形式 ...
- 软件测试基础知识大全【乐搏TestPRO】
在很多人的认知里,软件测试入门门槛低,简单易学.确实,软件测试基础知识更偏向于理论方法的学习,及部分常用工具的学习. 接下来的70个基础知识讲解,弄明白后这些问题后,软件测试入门也基本掌握了.本篇共分 ...
- 软件工程与软件测试基础知识_这是我在软件工程工作九个月中学到的知识
软件工程与软件测试基础知识 I've been working for about nine months at Dexter as a software developer. I wrote a b ...
最新文章
- 一条数据的HBase之旅,简明HBase入门教程-开篇
- JUnit 4.9(测试版3)中的规则
- Java基础-Java中的内存分配与回收机制
- 信息学奥赛一本通 1167:再求f(x,n)
- Meta Company在公开信中谴责Facebook改名
- mysql 短信发送情况检查
- python3-字符串常用操作
- Linux下从零搭建WordPress
- MATLAB常用画图命令汇总【已坑】
- python 实现批量抠图
- 姿态估计论文汇总 Stacked Hourglass/CPN/Simple Baselines/MSPN/HRNet
- python多重插补_5.4 缺失值插补
- ThinkPad E40 XP 安装SATA/AHCI驱动
- 形容计算机科学与技术的句子,关于描写未来科技的句子33条
- 香橙派orangepi pc plus h3 启动tf卡制作
- OV7670无FIFO读寄存器成功
- C语言给出点坐标进行克里金插值,Arcgis笔记之克里金插值——求助surfer8.0
- linux如何停止自启动运行脚本
- LaTeX各种命令及符号
- Scu4438 栈+哈希
热门文章
- 油猴脚本管理器的超详细下载安装使用教程—— 个性化浏览器
- 基于RV1126平台imx291分析 --- 运行设备(VIDIOC_STREAMON)
- 华硕 天选2 R9-5900HX RTX3060 安装ubuntu18.04以及探索内核与驱动的关系
- linux启动java命令
- PyCharm主题自定义
- 文武双全!为什么数据分析师需要既懂业务又懂技术
- 软考:软件设计师(历年真题汇总)|希赛网
- python多态实例_Python多态实例详解
- 计算机网络与多媒体专科测试,上海第二工业大学2021年专科层次依法自主招生生考试职业技能测试考纲...
- 科研ABC - 会议海报制作