【软件工程】软件测试

news2024/11/25 16:47:29

 

软件测试的对象


软件=程序+文档
测试对象:各个阶段产生的源程序和文档。


软件测试的目的


基于不同的立场,对软件测试的目的存在着两种完全对立的观点。
(1)一种观点是通过测试暴露出软件中所包含的故障和缺陷(从用户的角度);
(2)另一种是希望测试成为表明软件产品中不存在错误的过程,验证该软件中已正确地实现了用户的要求,因此,它们倾向于选取导致程序失败概率最小的测试实例和数据。
显然,第二种观点对完善和提高软件质量和可靠性毫无价值,因此测试的目的应该是通过软件测试尽可能多地发现并改正软件种存在的错误。


软件测试的定义


Glenford J. Myers把这一观点归纳为:
⑴测试是程序执行的过程,其目的在于发现错误。
⑵一个好的测试实例在于发现至今未发现的错误。
⑶一个成功的测试是发现了至今未发现的错误的测试。
因此,软件测试(Software Testing)是从引起和发现错误的目的出发执行某一程序的过程。


错误的类型


(1)功能错误:处理功能说明不完整或不确切,致使编程时对功能有误解而产生的错误。
(2)系统错误:与外部接口错误、子程序调用错误、参数使用错误等。
(3)过程错误:算术运算错误和逻辑运算错误
(4)数据错误:数据结构、实体、属性错误。
(5)编程错误:语法错误、程序逻辑错误、编程书写错误等。

软件测试过程模型


(1)测试设计
(2)测试执行
(3)测试结果比较


软件测试技术


测试法分为黑盒法和白盒法。


1.黑盒(Black-box Testing)法

黑盒法又称为功能测试法,它是根据程序功能的分析,推演出由函数
定义域中有代表性的元素组成测试集,这些数据应包括对程序是有效的和无效的输入,极端的、正常的和特殊的数据元素。因此,黑盒测试法是从外界来检查模块或程序的功能,也即根据模块的输入和输出,得出所得结果得差异。这种测试无须知道模块的内部逻辑,而是给定一输入,检查是否会得到所期望的输出。功能测试法又具体分为等价类法,边值分析法,因果图法和错误猜测法等。


2.白盒法

白盒法也称之为结构测试或逻辑覆盖法。它是根据对软件内部逻辑结构的分析,选取测试数据集(即测试用例:Testing Case),而测试数据集对程序逻辑的覆盖程度决定了测试完全性的程度。常用的几个覆盖标准有:语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、条件组合覆盖。


【例题▪填空题】黑盒法又称为_______法,黑盒测试法是从外界来检查模块或程序的功能,也即
根据模块的输入和输出,得出所得结果得差异。
【答案】功能测试


路径测试技术(白盒测试)★依据的是程序的逻辑结构。


(1)控制流程图
基本元素:过程块、节点、判定。
链、路径的概念。
注意:控制流程图和程序流程图的差别。
(2)测试策略
a)路径覆盖:执行所有可能穿过程序控制流程的路径。最强的测试度量。
b)语句覆盖:至少执行程序中所有语句一次。最低的测试度量。
c)分支覆盖:至少将程序中的每个分支执行一次。
d)条件覆盖与条件组合覆盖
语句覆盖≤分支覆盖≤条件组合覆盖≤路径覆盖
(3)路径选取与用例设计
最小的强制性测试需求是语句覆盖率。

【例题】根据下列程序流程图,设计不超过2组的测试用例,使之满足语句覆盖,要求给出每组测试数据的执行路径、输入值、输出值及两个判定(3)和(5)的判定结果。


【解析】此类题目属于综合应用题(每题10分),考核知识点为路径测试技术。
在本题中,要求设计测试用例,满足语句覆盖,即所有语句都必须执行一遍。
A、B、C的值决定了程序执行的顺序
A、B、C的值执行顺序结果

 


路径选取的一般原则


(1)选择最简单的、具有一定功能含义的入口/出口路径
(2)在已选取的基础上,选择无循环的路径,选取短路径、简单路径
(3)选取没有明显功能含义的路径,要研究该路径为什么存在


基于事务流的测试技术


事务流测试的步骤


a)获得事务流程图
b)浏览、复审
c)用例设计
d)测试执行


等价类法
是根据程序的I/O特性,将程序的输入划分为有限个等价区段,使得从每个区段内抽取的代表性数据进
行的测试等价于该区段内任何数据的测试。对于每个输入条件存在着程序有效输入的有效等价类和对程序错
误输入的无效等价类。例如,某实数X的取值范围假设为a<X<b,则所有[a+1,b-1]之间的实数构成了有效
等价类,而任何[-∞,a]或[b,+∞]之间的实数构成了两个无效等价类。


边值分析法


是一种根据I/O边界等价类上或紧靠边界的条件,选择测试用例的更有效的方法。例如,给定三个点,
判定能否构成三角形,可选取两边之和等于第三边的实例作为边值分析法的测试用例。


【例题】有一个学生选课系统:程序的输入条件为:每个学生可以选修1至3门课程,试用黑盒测试法完成
测试。
(1)按等价类划分法,设计测试用例(要求列出设计过程);
(2)按边界值分析法,设计测试用例。


【解析】
(1)等价类法:
课程门数<1 
课程门数>3 
课程门数1~3 
(2)边界值分析法
课程门数=1 
课程门数=3 


因果图法


是通过从用自然语言书写的功能说明表中找出因—输入条件和果—输出结果,通过因果图将功能说明转
换成一张判定表,然后为每种输出条件的组合设计测试用例。
错误推测法是根据测试人员的经验和直觉推测程序种可能存在的各种错误。
 


软件测试步骤


软件测试是按照与系统开发相反的方向来进行的。依次为:单元测试(模块测试)、集成测试、有效性测试和系统测试


1.单元测试


单元测试(Unit Testing)又称模块测试(Module Testing),或模块分调,用于测试单个程序模块,确定模
块的逻辑和功能是否正确。
单元测试采用白盒测试技术。
(1)模块接口
(2)局部数据结构
(3)重要的执行路径
(4)错误执行路径
驱动模块和承接模块。


2.集成测试


集成测试(Integration Testing)用来测试模块之间接口的正确性,也即模块之间的数据和控制传递。集成测
试是与单元测试平行进行的。
集成测试采用黑盒测试技术。
(1)自顶向下的集成测试:需要设计承接模块
(2)自底向上的集成测试:需求设计驱动模块


3.有效性测试


目的:发现软件实现的功能与需求规格说明书不一致的错误。
方法:采用黑盒测试技术


 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/873031.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

ORB-SLAM2第一节---单目地图初始化

单目初始化 1.前提条件&#xff08;640*480&#xff09; 参与初始化的两帧各自的特征点数目都需要大于100.两帧特征点成功匹配的数目需要大于或等于100.两帧特征点三角化成功的三维点数目需要大于50. 2.针对条件三 流程如下 记录当前帧和参考帧&#xff08;第一帧&#xff…

计算机组成原理 汇编语言

..................................................

fastadmin采坑之页面调转

这里有个业务需求&#xff0c;就是一个表格页面添加一个报名按钮&#xff0c;这个报名按钮就对应另外一个表格页面的新增&#xff0c;那就不用单独写个报名页面了&#xff0c;直接添加一个报名按钮&#xff0c;然后按钮的url直接指向另外一个页面的新增页面&#xff0c;真的很方…

[vscode]vscode运行cmake时候exe不执行而且前面多一些字符

遇到一个奇怪问题,你单独打开cmd去执行vscode编译过程序没问题&#xff0c;但是你在vscode确不会执行&#xff0c;这是因为vscode没有读取到电脑环境变量导致加载DLL失败&#xff0c;但是在vscode终端不会给你提示少DLL&#xff0c;需要你自己把DLL复制到exe目录即可解决问题。…

CDH6.3应知应会

文章目录 1. CDH 简介1.1 CDH版本 2. CDH 集群的优势是什么&#xff1f;3. CDH 集群的部署方式有哪些&#xff1f;4. CDH 集群中如何进行故障排除和监控&#xff1f;5. 你有使用 CDH 部署集群的经验吗&#xff1f;6. CDH 集群如何实现高可用性&#xff1f;7. 在 CDH 集群中&…

Qt Bridge for Adobe Photoshop安装

*社区版没有这个文件夹无法安装&#xff0c;可以下载企业用的&#xff0c;然后给money&#xff0c;不多也就316刀&#xff0c;折合人民币2千多&#xff0c;或者试用10天。 ** B站找到的文章&#xff08;作者&#xff1a;原版英语 https://www.bilibili.com/read/cv17933098 出…

Redis进阶(4)——结合redis.conf配置文件深入理解 Redis两种数据持久化方案:RDB和AOF

目录 引出持久化方案RDBAOF Redis的持久化方案RDB如果采用docker stop关闭如果采用强制关闭 AOF参数设置混编方式的加载让aof进行重写 两种持久化方案的优缺点AOF优缺点RDB优势和劣势 总结 引出 1.Redis数据持久化的两种方式&#xff0c;RDB和AOF; 2.RDB采用二进制存储&#xf…

PHP8的字符串操作1-PHP8知识详解

字符串是php中最重要的数据之一&#xff0c;字符串的操作在PHP编程占有重要的地位。在使用PHP语言开发web项目的过程中&#xff0c;为了实现某些功能&#xff0c;经常需要对某些字符串进行特殊的处理&#xff0c;比如字符串的格式化、字符串的连接与分割、字符串的比较、查找等…

redis设置database 不生效剖析

设置database 不生效剖析 前言配置加载类问题commons-pool 对象池 主页传送门&#xff1a;&#x1f4c0; 传送 前言 事情是这样的 今天在拉取了同事的代码做redis缓存设置的时候&#xff0c;发现即使已经设置了database, 但是存数据的时候还是用的默认0数据库。这引起了我的好…

Java-类型和变量(基于C语言的补充)

一个简单的Java程序 args){ System.out.println("Hello,world"); } }通过上述代码&#xff0c;我们可以看到一个完整的Java程序的结构&#xff0c;Java程序的结构由如下三个部分组成&#xff1a; 1.源文件&#xff08;扩展名为*.java)&#xff1a;源文件带有类的定义…

通过金字塔模型拥抱企业数字化转型

企业要实施成功的数字化营销转型改革&#xff0c;需要践行如下金字塔模型&#xff0c;从上至下依次是认知&#xff0c;应用&#xff0c;流程和组织&#xff0c;我们一一来拆解。 01 认知层 处于最顶层的是认知层&#xff0c;数字化营销的认知没有建立&#xff0c;很难实施彻头…

用python来爬取某鱼的商品信息(2/2)

目录 上一篇文章 本章内容 设置浏览器为运行结束后不关闭&#xff08;可选&#xff09; 定位到搜索框的xpath地址 执行动作 获取cookie 保存为json文件 修改cookie的sameSite值并且导入cookie 导入cookie&#xff08;出错&#xff09; 导入cookie&#xff08;修改后&…

阿里云云主机_ECS云服务器_轻量_GPU_虚拟主机详解

阿里云云主机分为云虚拟主机、云服务器ECS、轻量应用服务器、GPU云服务器、弹性裸金属服务器、专有宿主机、FPGA云服务器、高性能计算E-HPC、无影云电脑等&#xff0c;阿里云百科来详细说下阿里云云主机详解&#xff1a; 目录 阿里云云主机 云服务器ECS 轻量应用服务器 云…

vitis如何更新xsa?

在zynq调试时&#xff0c;经常需要更新xsa文件&#xff0c;更新步骤如下&#xff1a; 在platform_project选择Update Hardware Specation 选择对应的xsa文件 提示更新完成 复位BSP 把platform_project clean一下&#xff0c;然后重新build 再refresh application project&…

项目实战 — 消息队列(9){编写demo程序}

消息队列服务器核心功能就是&#xff0c;提供了虚拟主机&#xff0c;交换机&#xff0c; 队列&#xff0c;消息等概念的管理&#xff0c;实现三种典型的消息转发方式&#xff0c;可以实现跨主机/服务器之间的生产者消费模型。 这里&#xff0c;就编写一个demo&#xff0c;实现…

动动小手搭建私人大模型人工智能私人助理

引言&#xff1a; 去年12月OpenAI公司的ChatGPT3.5彻底引爆人工智能圈&#xff0c;今年国内大公司争相进入大模型的赛道&#xff0c;打造自己的大模型。前些日子的世界人工智能大会上&#xff0c;可谓是百模大战&#xff0c;热闹纷呈。 ChatGPT的出现&#xff0c;的确给人们带…

(2)linux虚拟机配置中文输入法和如何下载软件

&#xff08;一&#xff09;配置中文输入法&#xff1a; 1、sudo apt-get install fcitx&#xff0c;安装fcitx框架&#xff0c;安装完成之后&#xff0c;选择该框架 2、接下来输入sudo apt-get install fcitx fcitx-googlepinyin&#xff0c;安装谷歌输入法之后&#xff0c;重…

[LitCTF 2023]1zjs

这里一点想法没有看看源代码 查找flag没有发现 查找.php 有所发现 看起来是一种加密方式&#xff0c;查找 jsfuck NSSCTF{bd1[]f7[]3[]c8[]-9[]c5[]c-4[]c6[]4[]-a7[]2[]7[]-6[]7[]3[]b4[]4[]2[]6[]efbc}

Programming abstractions in C阅读笔记:p107-p110

《Programming Abstractions In C》学习第46天&#xff0c;p107-p110&#xff0c;3.1小节——“The concept of interface”&#xff0c;总结如下&#xff1a; 一、技术总结 1.client p108&#xff0c;调用library的program称为client。 2.interface p108&#xff0c;“To do …

nbcio-boot升级到3.1后出现online表单新增报错

nbcio-boot升级springboot、mybatis-plus和JSQLParser后出现新增online表单的时候报错&#xff0c;如下&#xff1a; 2023-08-13 21:18:01.292 [http-nio-8080-exec-12] [1;31mERROR[0;39m [36mo.jeecg.common.exception.JeecgBootExceptionHandler:69[0;39m - Handler dispat…