软件测试基础知识整理(详细版)-程序员宅基地

技术标签: 学习  软件测试基础  软件测试  

一、软件测试概述

1、软件缺陷

软件缺陷:又称之为“Bug”。即计算机软件或程序中存在的某种破坏正常运行能力的问题、错误,或者隐藏的功能缺陷。

缺陷的表现形式:

  1. 软件没有实现产品规格说明书所要求的功能模块;
  2. 软件中出现了产品规格说明指明不应该出现的错误;
  3. 软件实现了产品规格说明中没有提到的功能需求;
  4. 软件没有实现虽然产品规格说明没有明确提及但应该实现的目标;
  5. 软件难以理解、不易使用、运行缓慢、用户体验不友好;

产生软件缺陷的原因:

  1. 需求不清晰;
  2. 系统结构较为复杂;
  3. 对程序逻辑路径或者数据范围考虑不全面;
  4. 确保设计时间的精准同步;
  5. 存在系统性、可靠性的隐患问题;
  6. 系统运行环境的复杂;
  7. 通信端口较多时影响系统的安全性、适用性;
  8. 设计技术系统兼容的问题;

缺陷的属性:

  1. 缺陷标识:标识唯一;
  2. 缺陷类型:缺陷种类;
  3. 缺陷严重程度:指因缺陷引起的故障对软件产品的影响程度;
  4. 缺陷优先级:指缺陷必须被修复的紧急程度;
  5. 缺陷状态:通过一个跟踪修复过程的进展情况;
  6. 缺陷起源:缺陷引起的故障或事件第一次被检测到的阶段;
  7. 缺陷来源:引起缺陷的原因;
  8. 缺陷根源:反正错误的根本因素;

2、软件测试的定义及原则

定义:软件测试是为了发现错误而执行程序或系统的过程。

原则:

  1. 测试显示Bug的存在:
  2. 穷举测试不可能;
  3. 尽早地进行测试;
  4. 缺陷群:(二八定律:约80%的问题被发现在20%的模块中);
  5. 杀虫剂悖论;
  6. 测试是上下文相关的;
  7. 有无谬误;
  8. 软件测试是有风险的行为;

二、软件测试过程与策略

1、软件测试策略概述

软件测试策略是软件工程过程的一个软件测试的模板,也就是把特定的测试用例方法放置进去的一系列步骤:

软件测试包含的特征:

  1. 测试从模块层开始,然后扩大延伸到整个基于计算机的系统集合中;
  2. 不同的测试技术适用于不同的时间点;
  3. 测试由开发人员及独立的测试组来管理的;
  4. 测试和调试时不同的活动,但是调试必须能够适应任何测试策略;

软件测试充分性准则:

  1. 对任何软件都存在有限的充分测试集合;
  2. 若果一个软件系统在一个测试数据集合上的测试是充分的,那么再多测试一些数据也应该是充分的;
  3. 即使对软件所有成分都进行了充分测试,也并不表名整个软件的测试已经充分;
  4. 即使对软件系统整体的测试是充分的,也并不意味着软件系统中各个成分都已经充分的得到了测试;
  5. 软件测试的充分性与软件的需求和软件的实现都相关;
  6. 软件越复杂,需要的测试数据就越多;
  7. 测试的越多,进一步测试所能得到的充分性增长就越少;

2、软件测试的分类

软件开发阶段划分:

1)、单元测试:
指对软件中的最小可测试单元进行检查和验证,单元测试需要从软件的内部结构出发设计测试用例。多个模块可以独立地进行测试。

2)、集成测试:
组装测试/联合测试:将所有模块按照设计要求组装成子系统或者系统进行集成测试。

3)、系统测试:
将已经确认的软件、计算机硬件、外设、网络等其他元素结合在一起,进行信息系统的各种组装测试 和确认测试,系统测试是针对整个产品的测试。

4)、验收测试:
交付测试:确保软件准备就绪。

测试技术划分:

1)、白盒测试:
结构性测试/透明盒测试/逻辑驱动测试/基于代码的测试:

2)、黑盒测试:
功能测试:通过测试每个功能是否都能正常使用。(输入数据/输出数据)

3)、灰盒测试:
介于白盒测试和黑盒测试之间的一种测试方法:不仅关注输出、输入的正确性,同时也关注程序内部的情况。

被测试软件是否实际运行划分:

1)、静态测试:
指不运行被测程序本身,仅通过分析或检查源程序的语法、结构、过程、接口等来检查程序的正确性。

  1. 对于代码测试:主要测试代码是否符合相应的标准和规范;
  2. 对于界面测试:主要测试软件的实际界面与需求中的说明是否相符;
  3. 对于文档测试:主要测试用户和需求说明是否符合用户的实际需求;

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、测试用例设计原则

  1. 使用成数的测试用例设计方法来进行设计;
  2. 保证测试用例数据的正确性和操作的正确性;
  3. 确保测试用例具有一定的代表性;
  4. 每个测试用例应该针对单一的测试项;
  5. 保证测试结果是可以判定并且可以再现的;
  6. 保证测试用例描述准确、清晰、具体;
  7. 测试用例设计应满足项目的时间、人员和资金要求;

4.3、测试用例模板

4.3.1、测试用例的基本要素
要素名称 含义
功能模块 待测试模块名称
功能特征 待测试模块功能特征
测试时间 测试进行时间
用例编号 唯一标识该测试用例的值
输入数据 测试需要的数据列表
操作步骤 按照操作步骤的顺序,准确详细的描述
期望结果 按照规格设计所要求的的正确结果
优先级 依据重要程度确定优先级
预置条件 测试进行时的前置条件
测试类型 该用例是功能测试/冒烟测试/接口测试/性能测试等
4.3.2、功能测试用例
要素名称
标识 项目名称 开发人员 模块人员 作者 测试类型 测试方法 描述 前置条件 操作步骤 期望结果 测试时间
4.3.3、性能测试用例

1、预期性能测试用例

要素名称
测试目的 前提条件 测试需求 测试过程说明 期望性能(平均值) 实际性能(平均值)

2、用户并发性能测试用例

要素名称
测试目的 前提条件 测试需求 输入(并发用户数) 用户通过率 期望性能(平均值) 期望性能(平均值)

3、大数据量性能测试用例

要素名称
测试目的 前提条件 测试需求 输入(最大数据量) 事务成功率 期望性能(平均值) 期望性能(平均值)

4、疲劳强度测试用例

要素名称
测试目的 前提条件 测试需求 输入/动作 输出/响应 是否正常运行

5、负载测试用例

要素名称
测试目的 前提条件 测试需求 输入 输出 是否正常运行
4.3.3、兼容性测试用例
测试目的
配置说明 操作系统 系统软件 外设 应用软件 结果

三、黑盒测试

1、等价类划分法

1、有效等价类划分:有效等价类指对于程序规格说明来讲,是合理的、有意义的输入数据构成的集合。有效等价类数据集包含:终端用户输入的命令、与最终用户交互的系统提示、接收相关的用户文件的名称、提供初始化值和边界值、提供格式化输出数据的命令、在图形模式提供的数据、失败时回显的数据等。

2、无效等价类划分:无效等价类指对于软件规格说明来讲,是不合理的、没有意义的输入数据集合。

3、等价类划分的方法

  1. 按区间划分
  2. 按数值划分
  3. 按数值集合划分
  4. 按限制条件或规划划分
  5. 按处理方式划分

4、等价类划分的原则

  1. 在输入条件规定的取值范围或值的个数的情况下,可以确定一个有效等价类和两个无效等价类;
  2. 在规定了输入数据的一组值中(假定有n个值),可以确定n个有效等价类和一个无效等价类;
  3. 在规定输入数据必须遵守的规则的情况下,可以确定一个有效等价类和若干个无效等价类;
  4. 在输入条件规定了输入值的集合或规定了“必须如何”的条件下,可以确定一个有效等价类和一个无效等价类;
  5. 在确定已划分的等价类中各元素在程序处理中的方式不同的情况下,则应该将等价类进一步地划分为更小的等价类;

5、弱一般等价类测试:通过使用一个测试用例中的每个等价类(区间)的一个变量实现

6、强一般等价类测试:基于多缺陷假设

7、弱健壮等价类测试:

8、强健壮等价类测试:

9、单元实践

2、边界值法

2.1、边界值分析

边界值分析法就是对输入或输出的边界值进行测试的一种黑盒测试方法。边界值分析的基本思想是使用在最小值、略高于最小值、正常值、略低于最大值、最大值处取变量值。

2.2、健壮性分析

2.3、最坏情况测试

2.4、单元实践

2.5、随机测试

2.6、边界值测试的指导方针

3、决策表法

3.1、决策表

3.2、实例

3.3、指导方针

4、因果图法

因果图是一种利用图解法分析输入的各种组合情况,从而设计测试用例的方法。适用于检查程序输入条件的各种组合的情况。

5、场景法

6、正交实验法

四、白盒测试(后续补充)

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

智能推荐

物联网开发技术栈_物联网技术java技术栈-程序员宅基地

文章浏览阅读2.2k次,点赞2次,收藏10次。物联网开发技术栈 内容简介作为互联网技术的进化,物联网开发并非孤立的技术栈,而是向上承接了互联网,向下统领了嵌入式硬件开发的一个承上启下的全栈开发技术。虽然我们并不能预测物联网技术栈最终的样子:统一的开发语言是 JavaScript 还是 Python 亦或者其他编程语言;HTTP、WebSockets、MQTT、CoAP 等协议谁会是最后的赢家,并且随着物联网的不断进化,甚至我们..._物联网技术java技术栈

《Git学习笔记:Git入门 & 常用命令》-程序员宅基地

文章浏览阅读674次,点赞10次,收藏11次。Git是一个分布式版本控制工具,通常用来对软件开发过程中的源代码文件进行管理,通过Git仓库来存储和管理这些文件,Git仓库分为两种:指的是存储在各个开发人员自己本机电脑上的Git仓库指的是远程服务器上的Git仓库commit:提交,将本地文件和版本信息保存到本地仓库push:推送(上传),将本地仓库文件和版本信息上传到远程仓库pull:拉取(下载),将远程仓库文件和版本信息下载到本地仓库。

CPU热点分析——pprof (gperftools)使用_gperftools pprof-程序员宅基地

文章浏览阅读4.6k次。pprof (gperftools)使用谷歌的工具集,可查看CPU采样结果。pprof (google-perftool),用于来分析程序,必须保证程序能正常退出。使用步骤:1.准备工具,先安装工具包libunwind-1.1.tar.gzgperftools-2.1.tar.gz解压后 configure到系统默认路径即可,之后直接-lprofiler 2.再安装图形工具sudo yum ins..._gperftools pprof

JavaScript BOM-程序员宅基地

文章浏览阅读118次。JavaScript BOM:Navigator、History、Location

MongoDB数据库 —— 图形化工具_mongodb数据库图形化工具-程序员宅基地

文章浏览阅读6.2k次,点赞16次,收藏66次。在前面通过使用MongoDB在命令窗口操作数据库,而MySQL数据库也同样可以在命令窗口使用sql语句操作数据库,在安装数据库的时候提到可以安装这个图形化工具的,为了节省安装时间和卡顿选择后续安装MongoDB图形化工具,在MySQL数据中同样也有这个MySQL workbench 图形化工具可以选择进行安装;那么本篇就来安装MongoDB的图形化工具 — MongoDBCompass。_mongodb数据库图形化工具

ChatGPT带给智慧城市的启示——未来城市演进路径的探讨-程序员宅基地

文章浏览阅读1.4k次,点赞13次,收藏10次。未来城市的大模型包括城市总体规划、城市交通运输管理、城市公共安全和应急管理、经济发展和产业园区发展、社区发展、资源承载调控、污染调控、社会资源优化调控、基础设施调控、人口研究等模型。其对城市要素、关键指标、函数、流程、模型、平台、技术、资金、人才、市场、自然环境等内外部因素进行仿真建模。采用物联网、云计算、大数据、数字孪生和人工智能等技术来获取地、物、人、组织、环境、社会、经济、业务逻辑和运营规律等相关数据。、物联网、大数据、云计算、数字孪生、元宇宙、可穿戴生理传感器、分布式新能源等各类新技术。

随便推点

从零开始开发Shopify主题:(4)调用自定义配置_shopify自定义主题-程序员宅基地

文章浏览阅读3.6k次。在上一篇文章中,我们知道了如何使用配置文件自定义主题,以允许商店所有者自己更改Shopify主题。 如上所述,这些设置会在用户单击管理面板的在线商店>主题部分中的自定义主题按钮时显示,并在主题开发文件的config / settings_schema.json文件中定义。在这篇文章中,我们将了解如何访问这些设置并在开发主题时调用它们。调用配置要调用模板中的配置信息,需要使用li..._shopify自定义主题

git本地分支与远程分支关联及遇到的问题解决方案_本地分支 '(no branch)' (远程分支 = '(no branch)') 是无效的。引用名-程序员宅基地

文章浏览阅读2.6k次。1.查看本地分支git branch绿色表示当前分支#######################################################2.查看远程分支git branch -a#######################################################3.切换分支git checkout branch_name..._本地分支 '(no branch)' (远程分支 = '(no branch)') 是无效的。引用名称必须遵循

java连接mysql出现The server time zone value '�й���׼ʱ��' is unrecognized的解决方法_java.lang.runtimeexception: the server time zone v-程序员宅基地

文章浏览阅读2.2w次,点赞18次,收藏28次。java连接mysql出现The server time zone value '�й���׼ʱ��' is unrecognized的解决方法在Idea中连接数据库是抛出The server time zone value ‘�й���׼ʱ��’ is unrecogni错误 原因是因为使用了Mysql Connector/J 6.x以上的版本,然后就报了时区的错误。解决办法在配置url中添..._java.lang.runtimeexception: the server time zone value '嚙請對蕭嚙踝蕭

鸿蒙原生应用元服务实战-Serverless华为账户认证登录需尽快适配-程序员宅基地

文章浏览阅读671次,点赞11次,收藏9次。并且在这个固定的serverless服务中去增加这个,应该不是应用元服务开发者有这个加入权限的,应该是要统一解决,类似实现和手机注册验证一样的,直接可以使用或者少量代码配置即可使用。另外就是如果是新的元服务应用,使用的serverless,如果不支持华为账户功能,就没法上架,这个也是比较麻烦的,前面已经使用serverless开发基本完成或者已经完成的,得用其他方式去实现才行吧。对于已经上架的应用和元服务、升级也没法进行。3月1日的时间是快到了。

使用XAMPP可视化管理Mysql,使用JDBC访问数据库执行插入、查询、删除等操作_xammp进入可视化界面-程序员宅基地

文章浏览阅读5.7k次,点赞2次,收藏8次。准备工作:安装XAMPP,登陆apache,mysql,并通过phpadmin来创建数据库,新建一个表,插入一些数据:http://localhost/phpmyadmin,最好设置密码,不然后面连接数据库的时候可能会无法访问设置密码方式:修改密码--->一定要使用生成的密码来登陆,包括后面的数据库url也是。我简历的数据如下:这时候就可以在eclipse中编程开发_xammp进入可视化界面

(转) spring 的jar各包作用-程序员宅基地

文章浏览阅读119次。转自:http://blog.csdn.net/cailiang517502214/article/details/4797642spring.jar是包含有完整发布的单个jar包,spring.jar中包含除了spring-mock.jar里所包含的内容外其它所有jar包的内容,因为只有在开发环境下才会用到spring-mock.jar来进行辅助测试,正式应用系统中是用不得这些类的。...

推荐文章

热门文章

相关标签