软件测试-理论常识篇

2024-05-04 02:18
文章标签 软件测试 理论 常识

本文主要是介绍软件测试-理论常识篇,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

最近一直在学习测试方面的知识,也浏览了许多博客,通过这些博客也了解到了许多未曾接触过的关于测试方面的理

论和原则以及一些常识性的东西,比如测试的不完全性,测试中的二八定律,缺陷的必然性等。这篇文章做下整理,

分享给大家。了解这些将对于我们在进行软件测试时把握软件测试尺度很有帮助。


测试的不完全性

很显然,由于软件需求的不完整性、软件逻辑路径的组合性、输入数据的大量性及结果多样性等因素,哪怕是一个极

其简单的程序,要想穷尽所有逻辑路径,所有输入数据和验证所有结果是非常困难的一件事情。我们举一个简单的例

子,比如说求两个整数的最大公约数。其输入信息为两个正整数。但是如果我们将整个正整数域的数字进行一番测试

的话,从其数目的无限性我们便可证明是这样的测试在实际生活中是行不通的。为此作为软件测试,我们一般采用等

价类和边界值分析等措施来进行实际的软件测试,寻找最小用例集合成为我们精简测试复杂性的一条必经之道。


测试具有免疫性(软件缺陷免疫性)

软件缺陷与病毒一样具有可怕的“ 免疫性 ” ,测试人员对其采用的测试越多,其免疫能力就越强,寻找更多软件缺

陷就更加困难。由数学上的概率论我们可以推出这一结论。假设一个 50000行的程序中有 500 个软件缺陷并且这些

软件错误分布时均匀的,则每 100 行可以找到一个软件缺陷。我们假设测试人员用某种方法花在查找软件缺陷的精力

为 X小时 /100 行。照此推算,软件存在 500 个缺陷时,我们查找一个软件缺陷需要 X 小时,当软件只存在 5 个错

误时,我们每查找一个软件缺陷需要 100X小时。实践证明,实际的测试过程比上面的假设更为苛刻,为此我们必须

更换不同的测试方式和测试数据。该例子还说明了在软件测试中采用单一的方法不能高效和完全的针对所有软件缺

陷,因此软件测试应该尽可能的多采用多种途径进行测试。


测试是泛型概念 ” (要全程测试)

软件测试仅存在于程序完成之后?现在这个概念恐怕难以立足了。因为如果单纯的只将程序设计阶段后的阶段称之为

软件测试的话,需求阶段和设计阶段的缺陷产生的放大效应会加大。这非常不利于保证软件质量。需求缺陷、设计缺

陷也是软件缺陷,记住“ 软件缺陷具有生育能力 ”。软件测试应该跨越整个软件开发流程。需求验证(自检)和设计验

证(自检)也可以算作软件测试的一种。软件测试应该是一个泛型概念,涵盖整个软件生命周期,这样才能确保周期的

每个阶段禁得起考验。同时测试本身也需要有第三者进行评估(信息系统审计和软件工程监理),即测试本身也应当被

测试,从而确保测试自身的可靠性和高效性。否则自身不正,难以服人。


另外还需指出的是软件测试是提高软件产品质量的必要条件而非充分条件,软件测试是提高产品质量最直接、最快捷

的手段,但决不是一个根本手段。


二八定律

二八定律,这里感觉非常亲切,原来二八定律也可以用在测试里,80%的软件缺陷常常生存在软件 20% 的空间里。

这个原则告诉我们,如果你想使软件测试有效地话,记住常常光临其高危多发 “ 地段 ”。在那里发现软件缺陷的可

能性会大的多。这一原则对于软件测试人员提高测试效率及缺陷发现率有着重大的意义。聪明的测试人员会根据这个

原则很快找出较多的缺陷而愚蠢的测试人员却仍在漫无目的地到处搜寻。


二八定律的另外一种情况是,我们在系统分析、系统设计、系统实现阶段的复审,测试工作中能够发现和避免 80% 

的软件缺陷,此后的系统测试能够帮助我们找出剩余缺陷中的 80% ,最后的 5%的软件缺陷可能只有在系统交付使

用后用户经过大范围、长时间使用后才会曝露出来。因为软件测试只能够保证尽可能多地发现软件缺陷,却无法保证

能够发现所有的软件缺陷。


二八定律还能反映到软件测试的自动化方面上来,实践证明 80%的软件缺陷可以借助人工测试而发现, 20% 的软件

缺陷可以借助自动化测试能够得以发现。由于这二者间具有交叉的部分,因此尚有5% 左右的软件缺陷需要通过其他

方式进行发现和修正。


为效益而测试

为什么我们要实施软件测试,是为了提高项目的质量效益最终以提高项目的总体效益。为此我们不难得出我们在实施

软件测试应该掌握的度。软件测试应该在软件测试成本和软件质量效益两者间找到一个平衡点。这个平衡点就是我们

在实施软件测试时应该遵守的度。单方面的追求都必然损害软件测试存在的价值和意义。一般说来,在软件测试中我

们应该尽量地保持软件测试简单性,切勿将软件测试过度复杂化,拿物理学家爱因斯坦的话说就是:Keep it simple 

but not too simple 。


缺陷的必然性

软件测试中,由于错误的关联性,并不是所有的软件缺陷都能够得以修复。某些软件缺陷虽然能够得以修复但在修复

的过程中我们会难免引入新的软件缺陷。很多软件缺陷之间是相互矛盾的,一个矛盾的消失必然会引发另外一个矛盾

的产生。比如我们在解决通用性的缺陷后往往会带来执行效率上的缺陷。更何况在缺陷的修复过程中,我们常常还会

受时间、成本等方面的限制因此无法有效、完整地修复所有的软件缺陷。因此评估软件缺陷的重要度、影响范围,选

择一个折中的方案或是从非软件的因素(比如提升硬件性能)考虑软件缺陷成为我们在面对软件缺陷时一个必须直面的

事实。

 


这些常识性的理论原则我觉得非常有必要了解一下,因为这些都是前辈们经过无数次尝试总结出来的,站在巨人的肩

膀上能使我们少走一些弯路,关于测试的学习仍在继续!

 

参考: <http://www.ltesting.net/ceshi/ceshijishu/rjcsgcsrm/2013/1023/206738.html

这篇关于软件测试-理论常识篇的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/958144

相关文章

2024年流动式起重机司机证模拟考试题库及流动式起重机司机理论考试试题

题库来源:安全生产模拟考试一点通公众号小程序 2024年流动式起重机司机证模拟考试题库及流动式起重机司机理论考试试题是由安全生产模拟考试一点通提供,流动式起重机司机证模拟考试题库是根据流动式起重机司机最新版教材,流动式起重机司机大纲整理而成(含2024年流动式起重机司机证模拟考试题库及流动式起重机司机理论考试试题参考答案和部分工种参考解析),掌握本资料和学校方法,考试容易。流动式起重机司机考试技

系统架构师考试学习笔记第三篇——架构设计高级知识(20)通信系统架构设计理论与实践

本章知识考点:         第20课时主要学习通信系统架构设计的理论和工作中的实践。根据新版考试大纲,本课时知识点会涉及案例分析题(25分),而在历年考试中,案例题对该部分内容的考查并不多,虽在综合知识选择题目中经常考查,但分值也不高。本课时内容侧重于对知识点的记忆和理解,按照以往的出题规律,通信系统架构设计基础知识点多来源于教材内的基础网络设备、网络架构和教材外最新时事热点技术。本课时知识

看病要排队这个是地球人都知道的常识

归纳编程学习的感悟, 记录奋斗路上的点滴, 希望能帮到一样刻苦的你! 如有不足欢迎指正! 共同学习交流! 🌎欢迎各位→点赞 👍+ 收藏⭐ + 留言​📝唯有付出,才有丰富的果实收获! 看病要排队这个是地球人都知道的常识。 不过经过细心的0068的观察,他发现了医院里排队还是有讲究的。0068所去的医院有三个医生(汗,这么少)同时看病。而看病的人病情有轻重,所以不能根据简单的先来

系统架构师考试学习笔记第三篇——架构设计高级知识(19)嵌入式系统架构设计理论与实践

本章考点:         第19课时主要学习嵌入式系统架构设计的理论和工作中的实践。根据新版考试大纲,本课时知识点会涉及案例分析题(25分)。在历年考试中,案例题对该部分内容都有固定考查,综合知识选择题目中有固定分值的考查。本课时内容侧重于对知识点的记忆、理解和应用,按照以往的出题规律,嵌入式系统架构设计基础知识点基本来源于教材内。本课时知识架构如图19.1所示。 一、嵌入式系统发展历程

软件测试之压力测试知识总结

软件测试之压力测试知识总结 一、压力测试概述 压力测试(Stress Testing)是软件测试中的一种重要手段,用于验证软件应用程序在极端负载条件下的稳定性和可靠性。其主要目的是在软件承受极高负载时,测量其健壮性、错误处理能力和恢复能力,确保软件在危急情况下不会崩溃或表现异常。压力测试也被称为耐力测试,在软件工程中占有举足轻重的地位。 1.1 压力测试的目的 压力测试的主要目的包括:

软件测试中常用的linux命令总结

1、修改ssh登陆密码命令:passwd 2、新建一个名字为dbuser的Linux新用户:(sudo adduser dbuser) 4、./frps -c ./frps.ini(FRP启动命令) 5、lsof -i:7500(监听端口) 6、sh reload.sh master(文件后缀为sh时,nginx启动命令);( 文件为执行文件启动命令:./nginx -s reload) 7、sh

西方社会学理论教程复习重点

一.名词解释 1.社会静力学:旨在揭示人类社会的基本秩序。它从社会的横断面,静态的考察人类社会的结构和制度,寻找确立和维护人类社会的共存和秩序的原则。 2.社会动力学:纵观人类理性和人类社会发展的先后必要阶段,所叙述的是这一基本秩序在达到实证主义这一最终阶段之前所经过的曲折历程。 3.社会事实:一切行为方式,不论它是固定的还是不固定的,凡是能从外部给予个人以约束的,或者说是普遍存在于该社会各

行政组织理论-第十一章:创建学习型组织

章节章节汇总第一章:绪论第二章:行政组织的演变第三章:科层制行政组织理论第四章:人本主义组织理论第五章:网络型组织理论第六章:行政组织目标第七章:行政组织结构第八章:行政组织体制第九章:行政组织设置与自身管理第十章:组织激励第十一章:创建学习型组织第十二章:政府再造流程第十三章:行政组织变革 目录 第一节 学习型组织理论的产生1. 学习型组织的源起2. 学习型组织的定义3. 学习型组织与组

系统架构师考试学习笔记第三篇——架构设计高级知识(18)面向服务架构设计理论与实践

本章考点:         第18课时主要学习面向服务架构设计理论与实践。根据考试大纲,本课时知识点会涉及单选题型(约占2~5分)和案例题(25分),本课时内容偏重于方法的掌握和应用,根据以往全国计算机技术与软件专业技术资格(水平)考试的出题规律,概念知识的考查内容多数来源于实际应用,还需要灵活运用相关知识点。         本课时知识架构如图18.1所示。 一、SOA的相关概念 (

计算机操作员理论基础

计算机操作员理论基础 理论基础 计算机主频指的是时钟频率。14=23+22+21=(0)1110OS是运行其他系统软件的平台。215=27+26+24+22+21+20=(0)11010111(0)1111=(0)10000-1=24-1=15计算机理论知识,存贮是最基本是字节计算机产权在我国是受法律保护的12=23+22=(0)1100存贮程序是计算机能够自动连续工作的理论基础软盘中病毒