软件测试技术——软件测试概述

文章目录

  • 一、软件测试的定义
    • 标准定义
    • Bug和缺陷
  • 二、软件测试与软件质量保证
  • 三、软件测试七大基本原则
  • 四、软件测试分类
    • 按测试手段
    • 按测试执行方式
    • 按测试阶段或层次
    • 按测试对象
  • 五、软件测试过程模型
    • V模型
    • W模型
    • H模型
    • X模型

一、软件测试的定义

正向观点逆向观点
验证软件是否能正常工作证明程序有错

标准定义

使用人工或自动手段,来运行或测试某个系统的过程。其目的在于验证它是否满足规定的需求或弄清预期结果与实际结果之间的差别。软件测试以是否满足需求为目标。

Bug和缺陷

bug是软件(包括程序和文档)中不符合用户需求的问题。
bug类型包括:

  • 完全没有实现的功能
  • 功能或性能上的问题或差异
  • 多余的功能

二、软件测试与软件质量保证

软件质量保证(SQA) 是为确保软件开发过程和结果符合预期要求而建立的一系列规程,以及依照规程和计划采取的一系列活动及其结果评价。

SQA软件测试
SQA指导、监督软件测试的计划和执行测试是SQA的重要手段之一。为SQA提供质量评价所需的数据
SQA是一项管理工作测试是一项技术性工作
SQA是在预防问题测试是在发现问题
SQA侧重对流程的评审和监控测试侧重对产品进行评估和验证

三、软件测试七大基本原则

  1. 不可能执行穷尽测试
  2. Zero bug和Good Enough
  3. 测试应尽早启动,尽早介入
  4. 测试应追溯需求
  5. 缺陷存在集群现象(二八原则)
  6. 缺陷具有免疫性(杀虫剂悖论)——使用交叉测试
  7. 测试只能证明软件存在错误而不能证明软件没有错误,测试是无法显示潜在的错误和缺陷

四、软件测试分类

按测试手段

  1. 白盒测试(逆向观点-证明程序有错)
    接口测试也是一种白盒测试。
  2. 黑盒测试(正向观点-软件是否正常工作)
    • 功能测试:逻辑功能、界面测试、易用性测试、安装测试、兼容性测试
    • 性能测试:一般性测试、稳定性测试、负载测试、压力测试

按测试执行方式

  1. 静态测试:不实际运行被测软件,只是静态地检查程序代码、界面或文档中可能存在的错误
  2. 动态测试:通过观察代码运行过程,来获取系统信息,对系统进行验证。
-黑盒白盒
静态不运行程序,只查看界面不运行程序,静态查看代码
动态运行程序,只看输入输出运行程序,分析代码结构

按测试阶段或层次

  1. 单元测试:采用白盒测试的手段,针对模块或组件进行测试,和编码同步进行。
  2. 集成测试:白盒测试和黑盒测试相结合。将模块按设计要求组装起来。目标是发现接口问题。
  3. 系统测试:将软件系统看成一个系统测试。包括对功能、性能以及软件所运行的硬软件环境进行测试。
    • 回归测试:在修改了旧代码后,重新执行上一个版本的测试用例以确认没有引入新的错误。
    • 冒烟测试:对每一个新编译的正式版本,确认软件的基本功能正常,可以开展后续测试工作。
  4. 验收测试
    • α测试:由一个用户在开发环境下进行的测试。
    • β测试:使用由软件最终用户(多个)在用户场景进行的测试。
-单元测试集成测试系统测试验收测试
测试阶段和编码同步进行单元测试之后集成测试之后系统测试之后
测试对象模块或组件模块间接口整个系统(软、硬件)整个系统
测试人员白盒测试工程师和开发人员白盒测试和开发人员黑盒测试工程师最终用户或者需求方
测试依据《详细设计文档》《概要设计文档》《需求规格说明书》《需求规格说明书》和验收标准
测试方法白盒测试黑盒和白盒测试相结合黑盒测试黑盒测试
测试内容独立执行路径、局部数据结构、模块接口、边界条件、容错模块间数据传输、功能冲突、模块组装功能正确、全局数据结构、单模块缺陷对系统的影响功能、界面、可靠性了、易用性、性能、兼容性、安全性等与系统测试相同

按测试对象

  1. 可靠性测试
  2. 兼容性测试
  3. 安全性测试
  4. 性能测试
  5. 功能测试
  6. 文档测试
  7. 界面测试:也称UI测试。测试功能模块界面上看到的所有元素(包括空文字、控件等)颜色风格是否统一,布局是否合理、美观,符合用户习惯等等。

五、软件测试过程模型

V模型

与软件开发瀑布模型相对应

局限性:软件测试作为设计和编码后的一个阶段,忽视了测试对需求分析、系统设计的验证。不能体现尽早测试的原则。
在这里插入图片描述

W模型

增加了软件开发各阶段中同步进行的验证和确认活动。
一旦由文档提供,就要及时确定测试条件、编写测试用例。

优点:

  1. 测试与开发同步进行
  2. 测试的不仅仅是程序,还包括需求和设计
  3. 尽早地发现软件缺陷

局限性:需求、设计、编码活动被视为串行的,同样,测试和开发也有前后关系。无法支持迭代的开发模型。
在这里插入图片描述

H模型

H模型将测试活动完全独立出来,形成了一个完全独立的流程,贯穿于产品的整个生命周期。将测试准备活动和测试执行活动清晰的体现了出来。

优点:

  1. 揭示了软件测试除测试执行外,还有很多工作;
  2. 软件测试完全独立,贯穿整个生命周期,与其他流程并行;
  3. 测试可以尽早准备、尽早执行,有很强的灵活性;
  4. 可以根据被测物的不同而分层次、分阶段、分次序进行,是可迭代的。

局限性:

  1. 对管理要求高
  2. 对技术要求高:要求合理定义每次迭代的规模。
  3. 测试就绪点模糊:很多时候并不知道测试就绪点应该放在哪是合适的。
    在这里插入图片描述

X模型

针对单独的程序片段进行相互分离的编码和测试,通过频繁的交接,最终集成为可执行的程序。

X模型还定位了探索性测试,这是不进行事先计划的特殊类型的测试,这一方式往往能帮助有经验的测试人员在测试计划之外发现更多的软件错误。
在这里插入图片描述

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

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

相关文章

《编写高质量代码:改善c程序代码的125个建议》——建议14-2:在右移中合理地选择0或符号位来填充空出的位...

本节书摘来自华章计算机《编写高质量代码:改善c程序代码的125个建议》一书中的第2章,建议14-2,作者:马 伟 更多章节内容可以访问云栖社区“华章计算机”公众号查看。 建议14-2:在右移中合理地选择0或符号位来填充空出的位 在右移…

Linux-No.04 Linux 设置定时任务发送邮件功能

2019独角兽企业重金招聘Python工程师标准>>> 1、定时任务 crontab -l crontab -e /sbin/service crond start //启动服务/sbin/service crond stop //关闭服务 /sbin/service crond restart //重启服务 /sbin/service crond reload //重新载入配置 /sbin/…

WPF 基础控件之 DataGrid 样式

此群已满340500857 ,请加新群458041663由于微信群人数太多入群请添加小编微信号yanjinhuawechat 或 W_Feng_aiQ 邀请入群需备注WPF开发者 PS:有更好的方式欢迎推荐。支持NugetInstall-Package WPFDevelopers.Minimal -Version 3.2.001—代码如下一、创建…

C#页面抓取信息

//根据Url地址得到网页的html源码private string GetWebContent(string Url){string strResult"";try{HttpWebRequest request (HttpWebRequest)WebRequest.Create(Url);//声明一个HttpWebRequest请求request.Timeout 30000;//设置连接超时时间request.Headers.Set…

C语言之unsigned char和uint8_t

1、问题 今天搞openssl里面的客户端和服务端生成的随机数时候,PC端用的uint8_t数据类型,我用的是unsigned char类型,特么这不日了狗,不一样,后来问了pc端的人,和到网上查了下他们的区别 2、解释 unsigned…

电子商务应用课程知识整理 第五章-搜索引擎优化(SEO)

文章目录一、认识SEOSEO概述SEO相关术语SEO黑帽SEO白帽PV(Page View)跳出率沙盒效应SPAM快照二、SEO常用技术1. 网页title的优化要点:2. 关键词的选取注意的问题:需要避免的问题:3. 元标签关键词的优化要点&#xff1a…

在 Linux 下使用 RAID(二):使用 mdadm 工具创建软件 RAID 0 (条带化)

RAID 即廉价磁盘冗余阵列,其高可用性和可靠性适用于大规模环境中,相比正常使用,数据更需要被保护。RAID 是一些磁盘的集合,是包含一个阵列的逻辑卷。驱动器可以组合起来成为一个阵列或称为(组的)集合。 创建…

【Maven实用技巧】03. Maven 编译打包时如何忽略测试用例

跳过测试阶段: mvn package -DskipTests 临时性跳过测试代码的编译: mvn package -Dmaven.test.skiptrue maven.test.skip同时控制maven-compiler-plugin和maven-surefire-plugin两个插件的行为,即跳过编译,又跳过测试。 指定测试…

如何使用windbg查看C#某个线程的栈大小 ?

每一个线程都有一个叫 TEB(Thread Environment Block) 的线程环境块数据结构,这个结构中有一个叫做 NT_TIB 的结构,它里面有两个字段分别为 StackBase 和 StackLimit,前面叫做栈基址,也就是栈顶,后者叫做 栈…

Android之解决ubuntu没有无线网卡和手机wifi实现adb wifi调试

1、问题 ubuntu没有无线网卡,但是在在wifi1是同一个网段,然后手机需要wifi adb调试 2、解决办法 1、连接上wifi1 2、手机下载“终端模拟器apk”安装在手机上 3、手机连接电脑,然后adb tcpip 5555 4、然后adb push dropbearmulti /sdcard…

struts2批量删除

2019独角兽企业重金招聘Python工程师标准>>> 2012-10-27 12:48 997人阅读 评论(0) 收藏 举报 逻辑代码 [java] view plain copy package com.stu2; import java.util.ArrayList; import java.util.List; import java.sql.*; import com.s…

如何使用jquery刷新当前页面

如何使用jquery刷新当前页面 下面介绍全页面刷新方法:有时候可能会用到 window.location.reload()刷新当前页面. parent.location.reload()刷新父亲对象(用于框架) opener.location.reload()刷新父窗口对象(用于单开窗口&#xff…

电子商务应用课程知识整理 第六章-数据挖掘

文章目录一、概述二、关联分析概念:关联分析步骤:用于寻找频繁项集的算法算法一:蛮力法算法二:Apriopri算法(先验算法)三、分类与预测k近邻算法(kNN)四、聚类分析k均值算法&#xff…

C语言之如何输出uint32_t和uint64_t和16进制

1、输出uint32_t uint32_t a 888;printf("a is %ld", a); 2、输出uint64_t uint64_t b 888;printf("b is %lu", b);printf("b is %lld", b); 3、输出16进制 int c 16;printf("c is 0x%08x", c);

《统计会犯错——如何避免数据分析中的统计陷阱》—第2章置信区间的优势

本节书摘来自异步社区《统计会犯错——如何避免数据分析中的统计陷阱》一书中的第2章置信区间的优势,作者【美】Alex Reinhart(亚历克斯莱因哈特),更多章节内容可以访问云栖社区“异步社区”公众号查看。 置信区间的优势与考虑试验结果的显著…

.NET Core 返回结果统一封装

本文使用.NET Core Webapi演示&#xff01;一:新建.NetCore webapi项目为了方便开发,简化代码,也为了与前端方便对接,需要对接口服务返回结果进行统一处理。二:定义返回结果结构我们需要定义一个统一返回结果泛型类ApiResultpublic class ApiResult<T>{/// <summary&g…

第40周一

晚上地铁回来的路上&#xff0c;回顾总结下今天&#xff0c;有点莫名的忧伤&#xff0c;感觉现在同事间的协作内耗很大&#xff0c;为什么一个简单的定制&#xff0c;就感觉涉及到多道流程多个不同负责人后就变的很复杂&#xff0c;进而组织的整体效率可想而知。一天大部分时间…

linux之nm命令

1、nm命令介绍 nm命令很好记&#xff0c;当时看到大神在我的电脑面前在open ssl编译的.a文件里面过滤SHA函数&#xff0c;nm你就这样记&#xff0c;nm 尼玛, 哈哈。我们可以通过nm命令查看后缀out文件和后缀a文件里面的函数和部分属性。比如我们过滤SHA函数&#xff0c;命令如下…

matlab练习程序(PCASVD)

clear all;close all;clc;img1imread(Corner.png);img2imread(Corner1.png);img3imread(Corner2.png); img1imresize(img1,[35 90]); %Matlab的svd不支持太大的数据&#xff0c;我把数据变小了.img2imresize(img2,[35 90]);img3imresize(img3,[35 90]); [height width]size(img…

.NET的两种部署模式,了解一下

前言以往部署程序一直是习惯性先安装运行时环境&#xff0c;然后再将发布打包好的程序运行起来&#xff1b;但当多个程序依赖不同版本框架平台时&#xff0c;如果部署在同一台机器上&#xff0c;那就需要在同一台机器上安装多个版本的运行时&#xff0c;总感觉有点不太方便&…