当前位置: 首页 > 编程日记 > 正文

软件测试知识概述

本篇内容关于【1】缺陷(bug)的类型【2】软件测试与SQA的关系【3】软件测试的七项基本原则【4】将软件测试按照不同标准进行分类【5】软件测试过程模型

  1. 缺陷(bug)类型
    缺陷可能存在于程序+文档(=软件)
    衡量缺陷的唯一标准是是否符合用户需求
    ①功能未实现
    ②功能实现了但性能有差异
    ③多余的功能

  2. 描述缺陷的三个需要记住的术语
    ①fault -指人为错误造成的软件中的静态缺陷。(医生希望找出的)
    ②failure -指外部缺陷。(病人描述给医生的)
    ③error -指由fault造成的内在状态表现。
    在这里插入图片描述

记法:程序员的mistake,这个mistake在软件中表现为fault,运行带有fault的程序或软件,就可能观察到failure,在运行过程中出现与预期不同或不可接受的内部状态,出现error.

  1. 软件测试与SQA
    3.1. SQA -Software Quality Assurance软件质量保证
    what -定义:为确保软件开发过程和结果符合预期要求而建立 的一系列规程,以及依照规程和计划采取的一系列活动及其结果评价
    how -SQA的工作:
    ①对软件工程各个阶段的进展、完成质量及 出现的问题进行评审、跟踪。
    ②审查和验证软件产品是否遵守适用的标准、规程和要求,并最终确保符合标准、满足要求。
    ③建立软件质量要素的度量机制,了解各种指标的量化信息,向管理者提供可视信息。
    3.2. 测试vsSQA
    结论 软件测试是软件产品高质量的必要非充分条件
    即充分的测试不能保障软件产品质量
    在这里插入图片描述

  2. 软件测试的基本原则(共7条)
    首先记住两幅图
    修正错误的代价随时间呈指数增长
    ↑ 修正错误的代价随时间呈指数增长
    在这里插入图片描述
    ↑ 软件缺陷在不同阶段的分布
    (规格说明书阶段最多出人意料)
    原则1 -Zero bug和Good Enough
    测试需要成本,因而要在其和缺陷代价之间做权衡,软件达到一定质量要求测试即可停止。
    原则2 -不可能执行穷尽测试
    接第一条,高效的测试能够做到:少测试用例&高覆盖率
    原则3 -测试应该尽早启动,尽早介入
    原则4 -测试应该追溯需求(指追溯到需求分析这一过程)
    在这里插入图片描述
    原则5 -缺陷存在群集现象(虫子窝现象)
    28定理,又是它!80%的错误集中在20%的模块。
    原则6 -缺陷具有免疫性
    意思是对于同一测试方法,有些缺陷……
    原则7 -不存在缺陷的理论,测试无法显示潜伏的软件缺陷
    即没找到不代表不存在

  3. 软件测试的分类
    包括但不限于
    (目标/特性里提到的全部是产品质量中的外部质量)
    在这里插入图片描述
    5.1 黑白盒
    区分标准——有没有查看源代码
    黑盒测试=功能测试=数据驱动测试 关注输入输出
    白盒测试=结构测试=逻辑驱动测试 关注内部结构
    5.2 静动态测试
    区分标准——有没有运行程序
    5.1和5.2关系
    黑盒测试可能是动态的(运行程序,只看输入和输出),也可能是静态的(不运行程序,只查看界面) 。
    白盒测试可能是动态的(运行程序,分析代码结构),也可能是静态的(不运行程序,静态查看代码) 。
    5.3按照测试阶段或层次分类
    ↓不同级别的测试以及测试目标
    在这里插入图片描述
    ↓四类测试比较
    在这里插入图片描述

5.3.1 单元测试
What
单元测试针对程序系统中的最小单元—模块组件进行测试。
When
一般与编程同步进行。
Who
一般由编程人员和测试人员共同完成,而以开发人员为主。
How
主要采用白盒测试方法, 从程序的内部结构出发设计测试用例,检查程序模块或 组件的已实现的功能与定义的功能是否一致、以及编码 中是否存在错误。通常要编写驱动模块和模块。
先静后动
Else
单元测试包括代码评审,代码评审可以发现程序50%~ 70%代码的缺陷。
依据
①源程序本身,包括代码和注释
②项目的《详细设计》文档
一般步骤
编译运行程序——>静态测试—— >动态测试
通过标准
程序通过所有单元测试的用例
语句覆盖率达到100%
分支覆盖率达到85%
5.3.2集成测试
What
也称组装测试、联合测试, 在单元测试的基础上,将模块按照设计 要求组装起来同时进行测试,主要目标是发现与接口有关的模块之间问题。
When
理论上在单元测试之后 (一次性集成)
效率的原因,实际上同步进行(渐增式集成)
Who
白盒测试工程师或开发人员
How
两种集成方式:一次性集成方式和渐增式集成方式。
依据
①单元测试的模块
②《概要设计》文档
5.3.3系统测试
Who
主要由黑盒测试工程师进行
Target
前期主测系统功能是否满足需求,后期主测系统运行性能是否满足需求,以及系统在不同的软硬件环境中的兼容性
依据
《系统需求规格说明书》
地位
测试人员的工作重点工作量大
5.3.4验收测试
target向未来的用户表明系统能够像预定要求那样工作,验证软件的功能和性能如同用户所合理期待的那样。(决定用户是否付钱)
分类
在这里插入图片描述
Alpha版本-内测,即开发团队内部测试的版本或者潜在顾客的体验测试版本。
Beta版本-公测,团队之外的有限用户的测试版本。
( Gamma-正式发布的候选版本。)
5.4(非)功能测试
①非功能测试
将软件放在整个计算机环境下,包括软硬件平台、某些支持软件、数据和人员等,在实际运行环境下进行一系列的测试。
包括:
恢复测试
安全测试
强度测试
性能测试
②功能测试
一般须在完成集成测试后进行, 而且是针对应用系统进行测试。
基于产品功能说明书,是在已知产品所应具有的功能,从用户角度来进行 功能验证,以确认每个功能是否都能正常使用 。
也就是说,非功能测试涵盖的比功能测试多得多
5.5其他测试
回归测试 用统一测试用例测试不同版本
冒烟测试 进行大规模测试前先进行的基本功能测试
随机测试 随机生成输入数据的测试,目的是模拟用户真是操作,发现边缘性错误。
6. 软件测试过程模型
6.1 V模型
在这里插入图片描述

与软件开发瀑布模型对应(见图中箭头)
局限性:测试是设计及编码之后的一个阶段,需求分析阶段隐藏的问题一直到后期的验收测试才被发现(恰恰需求阶段错误最多)
6.2 W模型
在这里插入图片描述

一旦有文档提供,就要及时确定测试条件、 编写测试用例。
局限性:与V一样,是串行,不支持迭代、变更(文档一定是不断修改的)
6.3 H模型
在这里插入图片描述
抹杀次序关系。
测试条件一成熟,立马进行测试。(万事俱备只欠东风)
6.4 X模型
在这里插入图片描述
思想是不存在一个模型。
鼓励多做探索性测试:未计划的特殊测试。

相关文章:

Hadoop基础-网络拓扑机架感知及其实现

Hadoop基础-网络拓扑机架感知及其实现 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任。 一.网络拓扑结构 在本地网络中,两个节点被称为“彼此近邻”是什么意思?在海量数据处理中,…

批量修改图片以及加水印

好久木有来写点什么了.. 前段时间挺忙的. 今天上来分享一个,这几天我给商城图片加水印的代码吧.因为产品编辑那边是先把图片都上传完成了,所以只能做批量修改图片来完成给所有图片加水印的效果. 类似DX、京东效果. 现在正在开发的B2C项目商城: www.oxozoom.com 也希望更多能…

计算机书集下载链接

http://nic.biti.edu.cn/china-pub/ 我在那下了一本:XML高级编程转载于:https://www.cnblogs.com/dyuan/archive/2004/03/12/2966.html

Microsoft PlayReady DRM

支持在 Web 浏览器中使用加密媒体扩展和 Microsoft PlayReady DRM 本文内容 简介实现方法万维网联合会 (W3C) HTML5 加密媒体扩展 (EME) 为网站引入了一项功能,可在不使用插件的情况下播放受数字版权管理 (DRM) 保护的内容。Windows 8.1 上的 Internet Explorer 11 …

Android Binder概述

背景知识为了更好的理解binder,我们要先澄清一下概念,因为Android 基于Linux内核,我们有必要了解相关知识。进程隔离进程隔离是为了保护操作系统进程之间互不干扰而设计的,这个技术是为了避免进程A写入进程B准备的,进程…

如何用Asp判断你的网站的虚拟物理路径

appath方法 < p align"center" > < font size"4" face"Arial" > < b > The Physical path to this virtual website is: < /b > < /font > < font color"#FF0000" size"6" face"Aria…

总结:SQL的优缺点及与NoSQL对比

SQL在这里指的是关系型数据库&#xff0c;NoSQL指元组存储&#xff1f;

关于成功的因素-----谨记

引导语&#xff1a;一个人生活的环境&#xff0c;对他树立理想和取得成就有着重要的影响。坚忍&#xff0c;是成大事者的共同特征。没有足够的知识储备&#xff0c;一个人难以在工作和事业中取得突破性进展&#xff0c;难以向更高地位发展。 【意志力】 意志力是一种…

最常用的Linux命令

基础命令&#xff1a; &#xff08;一&#xff09;cd&#xff1a;进入文件目录 cd / #进入Linux根目录 cd ~ #进入当前用户Home目录&#xff0c;例如root用户 cd .. #进入上一层目录(根目录下没有上一层)&#xff0c;…

Delphi数据库开发之TTable篇1

既然是说Delphi中的SQL使用&#xff0c;肯定离不开TDataSet派生出来的DataSet控件&#xff08;应该说类比较确切些&#xff09;&#xff0c;这里我说的DataSet只是一个大类的称呼&#xff0c;并不是特指实际的TDataSet。在众多控件中其实可以根据如何操作数据分为两类。 其中一…

大型数据库入门

本文介绍大型数据库的概念及其性能决定因素&#xff0c;以及如何优化性能。 什么是大型数据库 -没有一个标准定义 -包含非常多元组(数据库行)的数据库&#xff0c;或者占用非常大的物理文件系统存储空间的数据库。 -占据TB量级的磁盘存储&#xff0c;包含数十亿表行。为什么需…

php安装pear和phpunit

php安装pear和phpunit http://hi.baidu.com/zjutxujie/item/7b08761f922df7476926bb2c 安装pear 下载go-pear.phar&#xff0c;放到phproot/pear目录下&#xff0c;地址http://pear.php.net/go-pear.phar。 管理员身份运行cmd&#xff0c;打开phproot&#xff0c;运行php -d p…

ResNets和Inception的理解

ResNets和Inception的理解 ResNet解析

软件体系结构风格(第5-8课时)

摘要&#xff1a;本文给出软件体系结构风格的定义&#xff0c;并介绍几种常用风格&#xff1a;管道过滤器、数据抽象和面向对象组织&#xff0c;基于事件的隐式调用&#xff0c;分层系统&#xff0c;仓库系统&#xff0c;过程控制环路 软件体系结构风格是什么 描述特定系统组织…

C#中调用Windows API时的数据类型对应关系

C#中调用Windows API时的数据类型对应关系 原文 C#中调用Windows API时的数据类型对应关系 BOOLSystem.Int32 BOOLEANSystem.Int32 BYTESystem.UInt16 CHARSystem.Int16 COLORREFSystem.UInt32 DWORDSystem.UInt32 DWORD32System.UInt32 DWORD64System.UInt64 …

linux下安装db2

最近研究了一下在 ubuntu下安装db2的过程&#xff0c;很快就完成安装&#xff0c;特贴出来供大家讨论&#xff0c;如有错误请多多指教。 注意&#xff1a;安装过程请使用root用户&#xff0c;否则会出现安装失败的情况&#xff1b; 安装过程&#xff1a; 准备工作&#xff1a; …

使用 SAX 解析器简化文档处理程序的编写

http://www-900.ibm.com/developerWorks/cn/xml/x-dochan.shtml有时候 SAX 文档处理程序的代码可能变得非常麻烦、结构性差而且难以维护&#xff0c;尤其是对于那些包含多种不同元素的复杂 XML 结构。本文介绍了应对这种问题的设计策略&#xff0c;从而有助于改进代码的质量和可…

软件体系结构风格之C/S,三层C/S,与BS

C/S的物理结构&#xff0c;其发展历程为(1)->(3)->(2)&#xff0c;本文接下来要介绍的C/S为(3),即胖客户端瘦服务器,服务器只管数据库&#xff0c;接下来要介绍的三层C/S为(2)&#xff0c;即客户端不胖不瘦。 C/S软件体系结构 背景&#xff1a;基于资源不对等&#xff0…

HDU-2020

绝对值排序 Problem Description输入n(n<100)个整数&#xff0c;按照绝对值从大到小排序后输出。题目保证对于每一个测试实例&#xff0c;所有的数的绝对值都不相等。 Input输入数据有多组&#xff0c;每组占一行&#xff0c;每行的第一个数字为n,接着是n个整数&#xff0c;…

Java归去来第2集:利用Eclipse创建Maven Web项目

一、前言 如果还不了解剧情&#xff0c;请返回第一集的剧情 Java归去来第1集&#xff1a;手动给Eclipse配置Maven环境 二、利用Eclipse创建Maven Web项目 选择File-New-Project 然后选择Maven-Maven Project 选择项目所在的工作空间目录&#xff0c;然后下一步 选择模…

vs2005什么时候能出正式版

2005试用版本出了很久了&#xff0c;不知道什么时候能出正式版&#xff0c;不会真得要推迟到2005年吧。企盼中…… 转载于:https://www.cnblogs.com/playboy2005/archive/2004/09/22/45563.html

人工神经网络是如何实现存算一体的

摘要 本文内容如题。 下图是一个神经元模型 可以将其抽象为一个数学函数yf(w1x1w2x2…wn*xnb)。也就是这个模型同时涵盖输入输出和进行计算。

编码能力的提升?_20131228

我在编程过程中发现&#xff0c;编码也是一很重要的能力&#xff0c;故花一点时间对其进行思考。 现将思考的成果与各位同行分享&#xff1b;我希望大家在看到以后&#xff0c;能提供宝贵的意见&#xff0c;先谢之&#xff01; 转载于:https://www.cnblogs.com/uestc999/p/3495…

Microsoft PowerToys for Windows XP

它们又卷土重来了&#xff01;PowerToys是由开发人员在软件产品正式发布并投放生产后相继编制的附加程序。它们的出现不仅使Windows体验更加兴味盎然&#xff0c;而且&#xff0c;还为Windows系统平添了许多功能特性。 说明&#xff1a;我们已为确保PowerToys的正常运行而付出了…

mysql主从配置读写分离笔记

第二次回头看了&#xff0c;第一次学完后感觉都会了&#xff0c;回头再看才发现什么都想不起来了。还得查资料再学习&#xff0c;虽然很简单。还是做个笔记吧&#xff01;笔记有点糙 就是自己看的因为主要是测试主从和读写分离 所以直接 yum install -y mariadb mariadb-server…

通用软件测试的6个角度

之后的课程都会围绕此展开 以QQ邮箱为例 外观界面测试 页面外观背景颜色、字体、字体格式、页面图案、动画、窗体布局功能测试 输入正确的用户名和密码可以登录&#xff0c;其他都不可性能测试 输入完邮箱的用户名和密码并单击登录按钮后&#xff0c;用户等待多长时间可以登录…

easyui源码翻译1.32--Messager(消息窗口)

前言 使用$.messager.defaults重写默认值对象。下载该插件翻译源码 消息窗口提供了不同的消息框风格&#xff0c;包含alert(警告框), confirm(确认框), prompt(提示框), progress(进度框)等。所有的消息框都是异步的。用户可以在交互消息之后使用回调函数去处理结果或做一些自己…

新闻网站个人中心(查询用户的关注信息)流程分析

1.获取当前用户登录状态 2.获取参数 用户的id user_id 3.获取新闻作者的id 4.如果新闻作者id和用户id 5.返回内容给前端转载于:https://www.cnblogs.com/zxt-cn/p/9158860.html

物联网技术与应用(第1-2课时)(cont.)

物联网的定义&#xff1a; 通过射频识别&#xff08;RFID&#xff09;、红外感应器、全球定位系统、激光扫描器等信息传感设备&#xff0c;按约定的协议&#xff0c;将任何物品通过有线与无线方式与互联网连接&#xff0c;进行通信和信息交换&#xff0c;以实现智能化识别、定位…