CNAS中兴新支点——软件测试7条原则

软件测试报告

最需要注意的就是测试思考,而非测试执行。而对软件测试菜鸟来说,初入行,首先要知道软件测试的7条原则,了解这些可以让你事倍功半。

软件测试的7条原则

1)测试的不可穷尽原则

是的!任何产品不可能被穷尽测试。我们需要根据应用程序的风险评估来优化测试量。

而重要的是,你如何确定不可穷尽原则带来的测试不完全性风险?

为了回答这个问题,让我们做一个练习

你认为哪种操作最有可能导致你的电脑操作系统出现故障?

我相信大多数人都会猜到,同时打开很多个不同的应用程序。

因此,如果你正在测试此操作系统,你将发现多任务活动场景很可能会发现缺陷,需要对其进行深入的测试。

2)缺陷集群性(2/8原则)(Defect clustering)

缺陷群集,指出少数功能模块包含测试到的大多数缺陷。这是帕累托原理在软件测试中的应用:大约80%的问题出现在20%的功能模块中。

根据经验,你可以识别出有风险的模块。但是这种方法也有局限性,如果重复进行相同的测试,最终同质的测试用例将不会再找到新的缺陷。

3)杀虫剂悖论(Pesticide Paradox)

随着时间的推移,重复使用相同的杀虫剂消灭昆虫会导致昆虫对农药产生抵抗力,从而使杀虫剂对昆虫无效,这同样适用于软件测试。如果进行相同的重复测试,则该方法将无助于发现新的缺陷。

为了解决此问题,需要定期检查和更新测试用例,添加新的和不同的测试用例以帮助发现更多的缺陷。

测试人员不能简单地依靠现有的测试技术。他必须不断寻找改进现有方法的方法,以使测试更有效。

4)测试显示软件存在缺陷(Testing shows presence of defects)

测试显示软件存在缺陷原理指出:测试显示软件中缺陷的存在,但不能证明软件不存在缺陷。也就是说,软件测试可以降低软件中未发现的缺陷的可能性,但是即使没有发现缺陷,也不能证明其正确性。

5)没有错误是好事谬论(Absence of error-fallacy)

99%无错误的软件仍然可能无法使用,如果针对缺陷要求对系统进行了全面测试,则可能是这种情况。软件测试不仅仅是为了发现缺陷,而且还要检查软件是否满足业务需求。没有错误是谬论,即如果系统构建不可用并且无法满足用户的需求,则发现并修复缺陷将无济于事。

6)尽早介入测试(Testing early)

早期测试-测试应在软件开发生命周期中尽早开始。这样就可以在早期阶段捕获需求或设计阶段中的任何缺陷。在测试的早期阶段修复缺陷耗费成本要低得多。但是应该多早开始测试呢?建议你在需求评审环节就开始介入测试发现缺陷。

7)测试活动取决于上下文(Testing is context dependent)

测试是依赖于上下文的,这基本上意味着测试电子商务站点的方式将不同于测试其他应用程序的方式。所有开发的软件都不相同。你可以根据应用程序类型使用不同的方法、技术和测试类型。

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

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

相关文章

线性代数的学习和整理23:用EXCEL计算 向量/向量组的点乘 (内积) (建设ing)

目录 前言:EXCEL里的的向量相关计算公式 0.1 EXCEL里相关公式 0.2 先说结论:向量组的点乘公式和 向量组的点乘公式不一样 1 向量的点乘 (内积) 1.1 向量的点乘公式 1.2 EXCEL里向量点乘的计算 ​编辑 1.3 向量点乘的性质 1.3.1 内积的公式…

CentOS运维之根目录扩容

方案一:将home空间扩容给根目录 若home分区有足够的空间且从来不使用,则可以将home分区空间扩容给/根目录 1.解除挂载并删除/home卷 [rootlocalhost ~]# umount /home 若提示分区正在被使用,则通过名称查询占用进程并将进程杀死 [rootloca…

分析Unity崩溃日志(Android)

Unity版本: 这里Unity版本是Unity 2019.4.30f1 崩溃信息: 错误信息如下: Exception Appversion: versionName 1.0.1 versionCode 1 Process: sg.atla.f.c PID: 22716 UID: 10749 Flags: 0x3088be44 Package: sg.atla.f.c v1 (1.0.1) Fo…

Spring超简单日志文件配置

问题 之前写过一篇Spring日志文件配置,但是,使用最新的Spring版本,就废了。这里重新来一次Spring日志文件配置。Spring默认日志配置,下面链接就是spring默认配置: https://github.com/spring-projects/spring-boot/bl…

python 字典 MappingProxyType(不可变映射类型)

标准库里所有的映射类型都是可变的,但有时候你会有这样的需求,比如不能让用户错误地修改某个映射。 从 Python 3.3 开始,types 模块中引入了一个封装类名叫 MappingProxyType。如果给这个类一个映射,它会返回一个只读的映射视图。…

[Node]yarn介绍、安装与常用命令 2024最新出炉!

介绍 Yarn 是一个由 Facebook 开发的开源的包管理工具,用于 JavaScript 应用程序的依赖管理。它旨在解决 npm(Node Package Manager)在处理依赖关系时的速度和安全性问题。Yarn 提供了如下特性: 速度:Yarn 通过缓存已…

vue 一键换肤

思路,可以运用element 内的组件配合css样式 操作:页面中只需要添加一键换肤的操作时间进行配色即可。一般就是两种颜色,默认色和改变色,我的需求是改背景色,不改字体色,因为字体的色值颜色太多。我用了本地…

系统架构的演变:从单体到微服务的旅程

文章目录 前言一、单体架构简图 二、垂直架构简图 三、水平架构简图 四、面向服务架构(SOA)简图 五、微服务架构简图 总结 前言 随着信息技术的快速发展,系统架构也在不断演变。从早期的单体架构到现代的微服务架构,每一次的变革都…

62.Spring多线程事务 能否保证事务的一致性(同时提交、同时回滚)?

62.Spring多线程事务 能否保证事务的一致性(同时提交、同时回滚)? Spring的事务信息是存在ThreadLocal中的Connection, 所以一个线程永远只能有一个事务所以Spring 的事务是无法实现事务一致性的可以通过编程式事务,或者通过分布式事务的思路:二阶段提交方式扩展小课堂 1…

Python封装tvdi算法为exe并读取xml

目录 一、封装之前的准备1. 代码2.xml二、封装三、执行exe一、封装之前的准备 代码主要看最后if name == ‘main’:的部分 解析了xml中对应的输入输出路径,最后再读取输入文件运行自己的算法部分,xml文件见下面 1. 代码 try:import gdal except:from osgeo import gdal im…

mac PyCharm 上传文件到远程服务器+远程服务器下载到本地

1 部署配置 选择SFTP name:test6 输入ssh账号和密码。保存密码和30s心跳。 2 目录映射 Local path(本地mac机器):/Users/clevercode/PycharmProjects/test6 Root path(远程服务机器):/home/…

【汇编】 13.3 对int iret和栈的深入理解

书中示例 assume cs:codecode segment start:mov ax,csmov ds,axmov si,offset lpmov ax,0mov es,axmov di,200hmov cx,offset end0-offset lpcldrep movsb ;lp到end0的指令传送到0:200处mov ax,0mov es,axmov word ptr es:[7ch*4],200hmov word ptr es:[7ch*42],0 ;设置7c表项…

Kafka-消费者-Consumer Group Rebalance设计

在同一个Consumer Group中,同一个Topic的不同分区会分配给不同的消费者进行消费,那么为消费者分配分区的操作是在Kafka服务端完成的吗?分区是如何进行分配呢?下面来分析Rebalance操作的原理。 方案一 Kafka最开始的解决方案是通过ZooKeeper的Watcher…

583.两个字符串的删除操作 72.编辑距离

583.两个字符串的删除操作 72.编辑距离 583.两个字符串的删除操作 力扣题目链接(opens new window) 给定两个单词 word1 和 word2,找到使得 word1 和 word2 相同所需的最小步数,每步可以删除任意一个字符串中的一个字符。 示例: 输入: “…

dubbo项目发布时Destroyed异常分析

1、问题现象 在发布项目时,elk有打印use dubbo version 2.6.2 is DESTROYED, can not be invoked any more!相关的报错日志,来提示dubbo消费者调用生产者时,生产者服务已经DESTROYED。 ChatGpt可知: 2、问题溯源 com.alibaba.dub…

序列到序列模型

一.序列到序列模型的简介 序列到序列(Sequence-to-Sequence,Seq2Seq)模型是一类用于处理序列数据的深度学习模型。该模型最初被设计用于机器翻译,但后来在各种自然语言处理和其他领域的任务中得到了广泛应用。 Seq2Seq模型的核…

怎样通过powershell 打开win10的自动更新?

要通过PowerShell命令打开Windows 10的自动更新,可以按照以下步骤操作: 打开PowerShell:在Windows 10中,点击“开始”按钮,输入“PowerShell”,然后选择“Windows PowerShell”。 以管理员身份运行PowerSh…

【软件测试学习笔记6】Linux常用命令

格式 command [-options] [parameter] command 表示的是命令的名称 []表示是可选的,可有可无 [-options]:表示的是命令的选项,可有一个或多个,也可以没有 [parameter]:表示命令的参数,可以有一个或多…

VLAN区域间路由详解

LAN局域网 WAN 广域网 WLAN无线局域网 VLAN:虚拟局域网 交换机和路由器,协同工作后,将原来的一个广播域,切分为多个,节省硬件成本; 配置思路: 交换机上创建vlan交换机上的各个接口划分到对应的vlan中 T…

微信小程序页面传值的几种方式

1.URL参数传值:通过在跳转链接中附加参数,在目标页面的onLoad函数中获取参数。 2.全局变量:通过在app.js文件中定义全局变量,在源页面设置变量的值,目标页面通过getApp().globalData获取变量的值。 3.缓存存储&#xf…