软件测试:动态黑盒测试的过程

要成为一个成功的软件测试员,需要采用更结构化的、目标明确的方法继续测试。

本文粗略描述动态黑盒测试的结构化过程

目录

1.动态黑盒测试

拿到需求文档或产品说明书

定义测试用例 test-case

2. 通过性测试和时效性测试

3. 等价类划分

4. 数据测试

边界条件VS测试边界

次边界条件

默认、空白、空值、零值和无

非法、错误、不正确和垃圾数据

5.状态测试

测试软件的逻辑流程

建立状态转换图

减少要测试的状态及转换的数量

重复、压迫和重负

6.其他黑盒测试技术

模拟笨拙的用户那样

在已经找到的软件缺陷的地方再找找

像黑客一样考虑问题

凭借经验、直觉和预感


1.动态黑盒测试

测试在运行中的程序,称为动态测试;不深入代码细节测试软件的方法称为动态黑盒测试。

又称为行为测试,测试软件在使用过程中的实际行为。

拿到需求文档或产品说明书

有效的动态测试的前提:需求文档或产品说明书

好的产品说明书会提供细节信息,输入了A输出B,操作C得到D.

定义测试用例 test-case

选择正确的测试用例,不正确的选择会导致测试量过大或过小。

在没有产品说明书时使用探索模式。了解软件、设计测试、执行测试同时进行。

2. 通过性测试和时效性测试

这是测试软件的两种基本方法。

确认软件至少能做什么。并不需要想尽办法让软件崩溃,使用简单、直观的测试用例。

确信软件在普通的情况下能正确运行之后,就可以采取各种手段搞垮软件来找出软阿金缺陷了

3. 等价类划分

等价类划分技术提供了一个选择有关数值、舍弃无关数值的系统方法。

将相似输入、相似输出、相似操作的分在一组

等价类划分的目标是把可能的测试用例集缩到可控制且仍然足以测试软件的小范围内。因此选择了不完全的测试,就要冒一定的风险,所以选择分类时要必须仔细。

4. 数据测试

对软件最简单的认识 数据+程序。

数据的等价类划分的关键原则是:边界条件、次边界条件、空值和无效数据

边界条件VS测试边界

最小值、最大值,最快、最慢,最低、最高;

  • 边界内部的数据点
  • 边界上的两个数据点
  • 边界的两边再往上一点点
  • 边界之外的数据点,=越界数据点

越界测试通常是对于最大值+1或者加一个很小的数,对最小值减一或者很小的数。

次边界条件

默认、空白、空值、零值和无

非法、错误、不正确和垃圾数据

5.状态测试

软件状态是指软件当前所处的条件或者模式。

软件测试员必须测试程序的状态及其转换。如 画图程序,一旦选中一个选项,使软件改变了外观,就是改变了软件的状态。

测试软件的逻辑流程

建立状态转换图

  • 状态转换图应该表示以下项目
  • 软件可能进入的每一种独立状态
  • 从一种状态转入另一种状态所需的输入和条件
  • 进入或者退出某种状态时的设置条件及输出结果
减少要测试的状态及转换的数量

每种状态之间的组合多而繁杂,减少测试分支的方法如下:

  • 每种状态至少访问一次
  • 测试看起来最普遍的状态转换
  • 测试最不常用的分支
  • 测试所有错误状态及其返回值
  • 测试随机状态转换
重复、压迫和重负

重复测试,可能需要几次,也可能是成千上万次。可以采用自动化测试。

压迫测试,在硬件条件不充足的条件下运行,内存小、磁盘空间少,Cpu速度慢等

或者使用其他软件抢占资源。

重负测试,尽量提供条件任其发挥,从而尽可能的处理大文件。最大化的挖掘软件的能力,让其不堪重负。

6.其他黑盒测试技术

模拟笨拙的用户那样

他会做出令人永远无法想不到的举动路径,他们会输入程序员无法理解的数据。

他们会在中途变卦,退回去执行其他操作。

他们会发现开发小组完全遗漏的软件缺陷。

在已经找到的软件缺陷的地方再找找

 找到的软件缺陷也多,就说明那里的软件缺陷也多,可能是由于程序员过于匆忙交付。。。。

程序员只倾向于修复暴露出来的bug,不多也不少。

如果软件是启动终止循环255次导致崩溃,那么拿回来软件重新测试的时候,同样要测试256次以上,在这个范围内既有可能存在其他的内存泄漏问题。

像黑客一样考虑问题

没有软件是100%安全的。

凭借经验、直觉和预感

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

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

相关文章

【Redis】 拓展:Redis - BigKey方案探讨

BigKey: 用户越多,redis数据越多,bigkey会使得缓存数据更大,网络带宽会被占用,执行效率就低下,高并发的时候吞吐量QPS也会下降。 产生原因: 看如下list: 一个key的内容太大,比如1M&…

【宝藏系列】物联网中常用的十种通信协议

【宝藏系列】物联网中常用的十种通信协议 文章目录 【宝藏系列】物联网中常用的十种通信协议1️⃣MQTT2️⃣CoAP3️⃣AMQP4️⃣XMPP5️⃣LwM2M6️⃣HTTP7️⃣DDS8️⃣Bluetooth Low Energy9️⃣LoRaWAN1️⃣0️⃣NB-IoT 1️⃣MQTT MQTT(Message Queuing Telemetry T…

JNDI注入-高版本绕过

参考博客: JNDI注入与动态类加载 探索高版本 JDK 下 JNDI 漏洞的利用方法 - 跳跳糖 (tttang.com) 分析版本 jdk8u201 分析流程 修复 在ldap绕过中,我们讲了LDAP的修复,下面用jdk8u201具体来看下修复。 修复之前,利用是在L…

英文文献翻译方法哪个好?高效率的翻译方法分享

三伏天的酷热也抵挡不住学术人探索知识的脚步,阅读和翻译英文文献几乎已经成为了许多研究者和学者的日常。然而在面对浩如烟海的英文资料时,如何高效准确地进行翻译,成为了亟待解决的问题。 今天我便挖掘到了5款实用的英文文献翻译工具&…

【论文共读】【翻译】【GPT】Improving Language Understanding by Generative Pre-Training

GPT 原论文地址 翻译: Improving Language Understanding by Generative Pre-Training 通过生成式预训练提高语言理解能力 0. 摘要 自然语言理解包括各种不同的任务,例如文本蕴涵、问答、语义相似性评估和文档分类。尽管大量未标记的文本语料库很丰富…

《昇思25天学习打卡营第24天》

接续上一天的学习任务,我们要继续进行下一步的操作 构造网络 当处理完数据后,就可以来进行网络的搭建了。按照DCGAN论文中的描述,所有模型权重均应从mean为0,sigma为0.02的正态分布中随机初始化。 接下来了解一下其他内容 生成…

科普文:万字梳理高性能 Kafka快的8个原因

概叙 科普文:万字详解Kafka基本原理和应用-CSDN博客 科普文:万字梳理31个Kafka问题-CSDN博客 我们都知道 Kafka 是基于磁盘进行存储的,但 Kafka 官方又称其具有高性能、高吞吐、低延时的特点,其吞吐量动辄几十上百万。 在座的…

苹果safari历史记录如何恢复?4大秘籍,重访历史足迹

作为苹果设备上的默认浏览器,Safari为我们提供了便捷、快速的网页浏览体验。但是,如果出现意外删除或其他情况,我们可能会丢失Safari历史记录,这无疑给我们工作和学习带来了诸多不便。本文旨在帮助广大iPhone用户解决这一难题。通…

【音频识别】十大数据集合集,宝藏合集,不容错过!

本文将为您介绍10个经典、热门的数据集,希望对您在选择适合的数据集时有所帮助。 1 RenderMe-360 发布方: 上海人工智能实验室 发布时间: 2023-05-24 简介: RenFace是一个大规模多视角人脸高清视频数据集,包含多样的…

便携移动工作站,端侧 AI 大模型设备折腾笔记:ROG 幻 X 和 4090 扩展坞

为了本地测试和开发更丝滑,最近入手了一套新设备 ROG 幻 X Z13 和 ROG XG Mobile 4090 扩展坞。 基于这套设备,我搭了一套 Windows x WSL2 x CUDA 的开发环境。分享一下折腾记录,或许对有类似需求的你也有帮助。 写在前面 最近因为各种事情…

学习web前端三大件之HTML篇

HTML的全称为超文本标记语言,是一种标记语言。它包括一系列标签,通过这些标签可以将网络上的文档格式统一,使分散的Internet资源连接为一个逻辑整体。HTML文本是由HTML命令组成的描述性文本,HTML命令可以说明文字,图形…

单链表习题——快慢指针类习题详解!(2)

前言: 正如标题所言,小编今天要讲述快慢指针的相关习题,可能有些读者朋友会有些疑问了,这快慢指针是个什么东西?不要着急,下面紧跟小编的步伐,开启我们今天的快慢指针之旅! 目录&…

安全基础学习-CRC理解与计算

由于一些任务要求需要了解CRC校验,于是来学习一下。 新人学习,大佬绕路。 前言 CRC即循环冗余校验码:是数据通信领域中最常用的一种查错校验码,其特征是信息字段和校验字段的长度可以任意选定。循环冗余检查(CRC&…

Seata 入门与实战

一、什么是 Seata Seata 是一款开源的分布式事务解决方式,致力于提供高性能和简单易用的分布式事务服务。Seata 为用户提供了 AT、TCC、SAGA 和 XA 事务模式,为用户打造一站式的分布式事务解决方案。 二、Seata 组成 事务协调者(Transacti…

Potree点云可视化库在Vue项目中的应用

本文由ScriptEcho平台提供技术支持 项目地址:传送门 Potree点云可视化库在Vue项目中的应用 应用场景介绍 Potree是一个用于大规模点云渲染和交互的开源JavaScript库。它提供了高效的点云可视化和处理功能,广泛应用于地理信息系统(GIS&…

整理几个常用的Linux命令(Centos发行版)

如果工作中需要经常整理一些文档,需要汇总一下,现有的服务器资源信息,那么这篇文章适合你; 如果你是一名开发者,需要经常登录服务器,排查应用的出现的一些问题,那么这篇文章适合你;…

《最新出炉》系列初窥篇-Python+Playwright自动化测试-61 - 隐藏元素定位与操作

软件测试微信群:https://bbs.csdn.net/topics/618423372 有兴趣的可以扫码加入 1.简介 对于前端隐藏元素,一直是自动化定位元素的隐形杀手,让人防不胜防。脚本跑到隐藏元素时位置时报各种各样的错误,可是这种隐藏的下拉菜单又没…

【创新实践新纪元】SmartEDA如何引领学校电子设计实践基地的飞跃式发展

在这个日新月异的科技时代,电子设计已成为推动社会进步与创新的重要力量。而教育,作为培养未来科技人才的摇篮,如何更有效地提升学生的实践能力与创新思维,成为了摆在每所学校面前的重大课题。今天,就让我们一同探索Sm…

列表内容过多卡顿?有索引栏如何实现滚动加载?

👓写在前面 很多小伙伴可能在开发业务中会遇到这种问题,数据列表过多,造成dom一次性渲染卡顿,本文主要介绍滚动加载,实现在有索引栏的列表中使用滚动加载的方法。 本文技术栈使用的是vue2vant2,其他框架组…

阿里云服务器 Ubuntu18.04 安装 mysql8.0并允许外部连接

参考教程: 官网教程 参考教程一 首先彻底删除mysql5.7 dpkg --list|grep mysql #查看 sudo apt-get remove mysql-common #卸载 sudo apt-get autoremove --purge mysql-server-5.7 #版本自己修改 dpkg -l|grep ^rc|awk {print$2}|sudo xargs dpkg -P #清除残留数…