你所不知道的软件测试七项原则

前几天测试群有个小伙伴去鼎桥面试,回来分享时提到笔试题中有一道是软件测试的七项原则的题。

这是一道关于软件测试理论的题,大部分测试人员并不care软件测试理论,遵循理论无用论。

以前刚做软件测试时,确实并不关心软件测试理论,觉得只要能做就行,有技术就足够了,但到了后面却越来越重视理论了,这也是为什么目前公众号里理论的文章以测试理论为最多,这是估计是建立建全的软件测试思维与软件测试理论息息相关的原因吧。

在面试面谈过程中遇到软件测试理论的问题的并不多,但是在笔试中却经常遇到,比如什么是自动化测试?画出V模型,阿尔法测试和贝塔测试的区别等,这些是经常会碰到的,但关于问到软件测试的七项原则却是一个比较鲜少遇见的题。

那我们一起来数数软件测试的七项原则分别是什么:

01

测试尽早介入

从分析不同的测试模型来看,测试介入的越早越好。

为什么测试要尽早介入呢?

这要先弄清楚软件测试的目的是什么?简单的来说就是保证软件质量,降低成本。

测试人员一般都在需求阶段就开始介入,这时测试的对象就是需求。

软件测试的目的是保证质量,预防风险,降低成本,其中成本包括缺陷的修复成本,缺陷有一个特点就是越早发现的缺陷,修复成本越低,这也是为什么测试要尽早介入,就是为了能够在需求阶段就能找出需求与设计方面的缺陷,降低后期的修复成本。

02

穷尽测试是不可能

现在的软件规模越来越大,复杂度越来越高,想做到完全性的测试就完全不可能的。就是软件的规模和复杂度有所减少,但要做完全也测试也是不能做到。

那在测试阶段,软件测试人员可以根据风险和优先级来进行集中测试和高强度测试,从而保证软件的质量。

03

测试显示软件存在缺陷

软件测试只能证实软件中存在缺陷,但是并不能证明软件中不存在缺陷,只能降低软件存在缺陷的可能性。

如果说公司的决策层想通过软件测试来证明软件中不存在缺陷,那是行不通的。测试人员只能证明软件中存在缺陷,但并不能证明软件中没有缺陷,软件完美。

软件测试人员可以通过软件测试活动,找出软件中大部分缺陷,避免软件在上线后给用户带损失,给公司带来风险。

04

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

世界上万事万物都符合二八原则,比如著名的财富理论:世界20%的人掌握了世界上80%的财富。

还有成长理论:判断一个人是否成功,主要看他20%的业余时间做什么事情。

软件测试也符合二八原则:

1.功能:一个软件20%为主要功能,会花费软件测试人员80%的时间。

2.缺陷:一个功能模块发现的缺陷越高,那存在的未被发现的缺陷也越高,故,发现的缺陷与未发现的缺陷成正比。

05

杀虫剂悖论

只要做过软件测试的测试人员都会发现一个有趣的现象:

开发刚转测当天,测试人员是一个bug接一个bug的提,但随着测试进度的推进,每天发现在的缺陷会越来越少,到最后简直就是不能够发现缺陷了。

但是能说这个软件中不存在缺陷么?王豆豆相信哪个测试人员都没有这样的自信保证自己测试的软件中没有bug了,那为什么存在中明明不存在缺陷,而测试人员就是发现不了呢?

这是因为测试人员对缺陷产生了免疫能力,就算是一个bug放在测试人员面前,测试人员也不一定能发现。这就像害虫对杀虫剂产生了免疫,杀不死一样的。

那应该怎么解决这个问题呢?王豆豆相信这是所有测试人员都关注的一个问题。

解决方案有:

1. 内部测试人员交叉测试,这也是王豆豆经常提到的一个方法。

2.测试用例常用常更新,在测试过程中根据软件的特性修改测试用例。

3.不变地变化测试方法,不要使用单一的测试方法去测试软件,根据软件内容使用不同的测试手段、测试方法。

根据上面三种方法交叉执行,从而发现更多的缺陷,保证软件质量,降低风险。

06

测试活动依赖于测试内容

在面试过程中有时总会遇到面试官部“做软件测试什么最重要”,想来做过测试的都知道“需求”最重要,对测试人员来说是需求,对公司来说就是业务。

根据业务的不同,软件测试内部也分不同的行业,比如游戏行业,金融行业,电商行业等等。

不同的行业,测试活动的开展都有所有不同,比如工具的选择,测试流程都不尽相同,所以软件测试活动的开展依赖于所测试的内容。

07

无错就是好是谬论

无错,对软件测试人员来说可望不可即的。

那真的无错的软件就是好的软件么?

假设一个软件完全没有bug,完美无缺,但是不符合用户的需求,那能说这个软件是OK的么?

判断一个软件的好与不好,主要依据的还是用户需求,是否实现用户所期盼的结果,并不是仅仅依赖于软件中是否存在缺陷。

原文发布于微信公众号 - 资深Tester(zishentester)

原文发表时间:2017-12-01

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏数据之美

转转数据平台从 0 到 1 的演进与实践

1、背景 在转转开始大数据平台建设之前,整个数据从需求提出到研发流程再到数据报表、数据产品,也是经历过一段非常混沌的时期,而且效率和质量往往很难得到保障,主要表...

1886
来自专栏Java技术交流群809340374

高级程序员到底强在哪里?

说起程序员人们的第一印象就是工资高、加班凶、话少钱多头发少。再加上现在科技互联网公司太吃香,bat、华为小米等公司程序员加班情况被广泛传播,程序员用生命在敲代码...

110
来自专栏Jerry的SAP技术分享

SAP成都研究院姚瑶:软件质量保证工作的变迁

大家好,我是来自SAP成都研究院Revenue Cloud 团队的质量工程师 , yoyo。很高兴可以和大家分享我个人的工作体会。每个团队都有QE(Qualit...

673
来自专栏程序员互动联盟

做软件测试,如何月薪过万?

很多人提到软件测试都觉得测试,就是看看软件能不能正常的运行,而且一般测试都是一些小姑娘,一般都是嘻嘻哈哈在聊天中就完成一些软件功能的测试,还有多大的技术含量,这...

35311
来自专栏EAWorld

企业级应用的高可靠运维实践与DevOps(一)

? 很高兴今天有机会在这里与大家交流,也要感谢普元提供的交流平台和普元CTO焦总的邀请。我今天与大家分享的主题是关于企业级应用的可靠运维实践的这个话题。 ? ...

3559
来自专栏IT大咖说

从0到1构建支撑企业自动化运维体系

内容来源:2018 年 03 月 31 日,腾讯蓝鲸运营负责人杨文兵在“腾讯蓝鲸自动化运维沙龙(北京站)”行进行的《从0到1构建支撑企业自动化运维体系》演讲分享...

954
来自专栏ThoughtWorks

数字化企业的API架构治理

在前文中我们说到,传统企业在逐步建设自己的数字平台过程中,需要抓住交付基础设施、API和架构治理、数据自服务、创新实验基础设施和监控体系、用户触点技术这五个支柱...

2634
来自专栏Golang语言社区

优秀的代码是一个循序渐进的过程

近些年来,越来越多的人开始转向敏捷开发,而且这些敏捷开发的技术已不再新鲜,大多都是在80和90年代设计形成的。但是,最近几年,程序员,特别是一些商业顾问,架构...

2666
来自专栏编程

哪些编程语言容易学习,互联网公司常用的编程语言有哪些

作为编程人员或者工程师,你去企业面试的时候这些企业通常依据公司常用的编程语言来觉得是否适合该公司的工作,想一些大型的互联网公司还会考虑到你的学历层次,受教育情况...

2267
来自专栏织云平台团队的专栏

从鹿晗关晓彤恋情事件看运维的节假日准备工作

鹿晗关晓彤公布恋情,微博服务短暂不可用。那么,面对这种突如其来的节(sa)假 (gou)日(liang)热点,该如何才能做到有条不紊,高效运维呢?

1.7K1

扫码关注云+社区