首页 > 其他分享 >软件工程|软件测试

软件工程|软件测试

时间:2023-06-09 10:55:53浏览次数:29  
标签:覆盖 软件工程 等价 测试用例 测试 软件 输入 软件测试

这是GIS开发课的测试部分的知识,看了一下PPT,基本和软工的测试部分是差不多的,这里就放在一起了。

测试的基本概念

软件测试是保证软件质量,提高软件可靠性的关键。

软件测试的目的:发现错误

测试与调试比较

测试 (test) 调试 (debug)
在未知错误的情况下,检查程序代码是否有问题的过程 在错误的情况下,对软件程序代码做出的一系列检查,校正的过程。

测试阶段工作步骤

flowchart LR; 需求测试-->单元测试; 单元测试-->集成测试; 集成测试-->系统测试; 系统测试-->性能测试; 性能测试-->用户测试; 用户测试-->回归测试;

测试的基本原则

(1) 开发和测试队伍分别建立

(2) 测试用例(测试用的一组输入数据、环境平台和运行条件)应由输入数据和预期的输出结果两部分组成。

(3) 兼顾合理的输入和不合理的输入数据

(4) 应检查程序是否作了不该做的事

(5) 程序修改后要回归测试

(6) 应长期保留测试用例,直至系统废弃。

软件错误的分类

功能错(需求分析错误);软件结构错;数据错;编码错;软件集成错;测试定义与测试执行错误。

软件测试信息流

测试过程需要三类输入:

  1. 软件配置:需求规格说明书;软件设计说明书;被测源程序

  2. 测试配置:测试计划;测试用例(测试数据);测试驱动程序

  3. 测试工具

两种测试类型

静态测试方法

人工测试方法;计算机辅助静态分析方法。

基本特征是在对软件进行分析、检查和测试,不实际运行被测试的软件。

对需求规格说明书、软件设计说明书、源程序做结构分析、流程图分析、符号执行来找错。

动态测试方法

白盒,黑盒,穷举等。

通过运行软件来检验软件的动态行为运行结果的正确性。

动态测试的两个基本要素:

  1. 被测试程序;
  2. 测试数据(测试用例)

动态测试方法:(1)选取定义域有效值,或定义域外无效值。(2)对已选取值决定预期的结果(3)用选取值执行程序(4)执行结果与(2)结果相比,不吻和程序有错。

黑盒测试:功能测试;数据驱动测试;基于规格说明书的测试
白盒测试:结构测试;玻璃盒测试;基于覆盖的测试。;根据被测程序的逻辑结构设计测试用例;力求提高测试覆盖率;
黑白测试比较
黑盒是根据程序外部特征进行测试。

白盒测试是根据程序内部逻辑结构进行测试。

白盒测试方法的用例设计

逻辑覆盖法:一系列测试方法总称,特点是逐渐进行越来越完整的通路测试。

逻辑覆盖准则:

(1) 语句覆盖:是最弱的逻辑覆盖

(2) 判定覆盖:仍是弱的逻辑覆盖

(3) 条件覆盖:使每个判定的每个条件的可能取值至少执行一次。条件覆盖不一定包含判定覆盖;判定覆盖也不一定包含条件覆盖

(4) 判定/条件覆盖:选取足够多的测试用例,使判断中的每个条件的所有可能取值至少执行一次,同时每个判断本身的所有可能判断结果至少执行一次。

(5) 条件组合覆盖:所有可能的条件取值组合至少执行一次

(6) 路径覆盖(7)点覆盖(8)边覆盖

黑盒测试方法的用例设计

选择少量而最具有代表性的输入数据

等价类划分法

把所有可能的输入数据(有效的和无效的)划分成若干个等价的子集(称为等价类),使得每个子集中的一个典型值在测试中的作用与这一子集中所有其它值的作用相同。可从每个子集中选取一组数据来测试程序即可。

如何划分

(1) 有效等价类(合理等价类)

(2) 无效等价类(不合理等价类)

划分规则
  1. 如果规定了输入值的范围时,可定义一个有效等价类和两个无效等价类。
  2. 当规定了输入的规则时,则可以划分出一个有效的等价类(符合规则)和若干无效的等价类(从不同角度违反规则)。
  3. 如规定了输入数据的一组值,且程序对不同输入值做不同处理,则每个允许的输入值是一个有效等价类,并有一个无效等价类(所有不允许的输入值的集合)。
  4. 如规定了输入数据是整型,则可划分出正整数、零、负整数三个有效等价类。
  5. 当处理表格时:有效类可分为空表、含一项的表、含多项的表等。
设计测试用例步骤

(1) 形成等价类表,每一等价类规定一个唯一的编号;

(2) 设计一测试用例,使其尽可能多地覆盖尚未覆盖的有效等价类,重复这一步骤,直到所有有效等价类均被测试用例所覆盖;

(3) 设计一新测试用例,使其只覆盖一个无效等价类,重复这一步骤直到所有无效等价类均被覆盖(通常程序执行一个错误后不继续检测其它错误,故每次只测一个无效类)。

边界值分析法

(1) 这个等价类的每个边界都要作为测试条件。

(2) 边界值分析不仅考虑输入条件,还要考虑输出空间产生的测试情况。

(3) 通常与等价划分结合进行。

边界分析测试用例原则

(1) 如输入条件代表以a和b为边界的范围,测试用例应包含a、b、略大于a和略小于b的值。

(2) 如输入条件代表一组值,测试用例应当执行其中的最大值和最小值,还应测试略大于最大值和略小于最小值的值。

(3) 如规格说明中提出输入输出的有序集(顺序文件、有序表等),取有序集的第一个和最后一个元素做测试用例。

(4) 如程序数据结构有预定的边界,应测试其边界的数据项。

(5) 如输出条件规定了取值范围,取边界上下浮动值做测试用例。

软件的测试步骤

单元测试

A. 单元测试的内容:主要对模块的五个基本特性进行评价。

  1. 模块接口

  2. 局部数据结构:

  3. 重要的执行通路:

  4. 出错处理通路:预见出现错误的条件,设置处理。

  5. 边界条件

B. 单元测试的方法

  1. 驱动模块(驱动程序):相当于主模块

  2. 桩模块(连接程序):代替所测模块调用的子模块

集成测试

是将模块按照设计要求组装起来进行测试,主要目标是发现与接口有关的问题。

集成测试方法:非渐增式测试:一次就把所有通过了单元测试的模块组合在一起进行全程序的测试。渐增式测试:从一个模块开始,测一次添加一个模块,边组装边测试,以发现与接口相联系的问题。
渐增式的几种策略:

确认测试

验收软件的有效性(功能和性能达标)。

系统测试

软件只是计算机系统的一个元素,软件最终要与其他系统元素(如新硬件、信息等)相结合,进行各种集成测试和确认测试。

用于系统测试的测试类型:

(1) 恢复测试

(2) 安全性测试

(3) 强度测试

(4) 性能测试

标签:覆盖,软件工程,等价,测试用例,测试,软件,输入,软件测试
From: https://www.cnblogs.com/tangjielin/p/17468530.html

相关文章

  • 国企真的这么香吗?软件测试工程师国企真实体验:“每天过的像打仗一样!”
     还记得,之前一名在国企上班的程序员在匿名社区发了一个帖子,瞬间爆了。帖子中的这位程序员表示,他在的国企,税前工资25万,一周实际工作时间5个小时,一个一万行代码的项目,写了一年。平时上班,除了早晨做做样子看项目计划,一整天都在逛论坛搞副业等等…中午睡到两点下午五点半走人,没有k......
  • 软件工程
    软件工程什么是软件危机?主要表现形式?如何解决软件危机?软件危机是指在计算机软件开发和维护时所遇到的一系列问题。软件危机主要包含两个方面问题:一是如何开发软件以满足社会对软件日益增长的需求;二是如何维护数量不断增长的已有软件。产生原因:(1)软件是计算机系统中的逻辑部......
  • 软件测试3班,学员就业前的模拟面试(2019-9-12)(金朝阳)
    1:你用过Fiddler在项目中发现过哪些有价值的bug?2:接口测试,返回的数据格式类型一般有哪些类型?(Json\xml\html等等)3:App兼容性测试怎么做?APP升级测试怎么做?4:你测试过哪些类型的安卓机型?哪些类型的苹果机型?5:你测试过安卓机型的操作系统是多少?苹果机型的操作系统是多少?6:你在做接口测试的......
  • 软测5班课程-软件测试概论
    一:软件的生命周期:问题的定义及规划:此阶段是软件开发方与需求方共同讨论,主要确定软件的开发目标及其可行性。做不做。需求分析:在确定软件开发可行的情况下,对软件需要实现个各个功能进行详细分析。做什么。软件设计:怎么做程序编码:做软件测试:系统测试运行维护:持续最久阶段二:软件开......
  • 软件测试5班-windows下测试环境的搭建
    第一步安装:JDK  附1:JDK安装成功后环境变量配置:(1)安装完JDK后配置环境变量计算机→属性→高级系统设置→高级→环境变量(2)系统统变量→新建JAVA_HOME变量。变量值填写jdk的安装目录(例如:E:\Java\jdk1.7.0)(3)系统变量→寻找Path变量→编辑在变量值最后(注意:不要把原来的变量......
  • 软件测试5班-Liunxu下测试环境的搭建
    使用FTP工具将相关文件拷贝到/root目录下安装JDKrpm-ivh 文件名安装好之后,查看版本号javac-versionjava-version若两者版本不一致,则需修改配置文件vi/etc/profile跳转到最后一行,插入以下语句(按一下键盘的G跳转到最后一行,注意大写;再按一下O进入编辑模式)JAVA_HOME=/usr/java/jdk......
  • 软件测试工程师求职面试准备-第5天(Jmeter)
    1、Jmeter-What一般情况下,我们提压力测试,通常指是指负载测试和压力测试.我们做压力测试,基本上会使用到工具进行测试,我常用的工具,一个是jmeter,另外一个是loadRunner。我先介绍一下jmeter吧,jmeter是Apache组织开发的基于java的压力测试工具,支持接口测试,压力测试,还可以......
  • 软件测试学员求职面试准备-第6天(性能测试综合篇)
     1. 性能测试流程2. 需求分析测试对象:常用的核心业务,数据量、并发量较大,比如:注册,登录,搜索,添加购物车,下单,支付性能指标:要求500万用在8小时内完成测试场景:单一场景,测试某一个单一功能,混合场景,多功能组合的场景,多业务测试3. 测试计划测试目标、测试人员安排、测试进度......
  • 软件测试工程师面试——抓包测试面试话术
     ......
  • 软件测试工程师面试——Web端测试
     ......