您的位置  美食资讯  饮食杂谈

软件测试基础知识及黑盒测试范围+职业发展规划,附赠学习资料包

  • 来源:互联网
  • |
  • 2022-06-28
  • |
  • 0 条评论
  • |
  • |
  • T小字 T大字

让 / 测 / 试 / 人 / 更 / 加 / 卓 / 越

“嘿 测试人,今天的你过得还好吗?”

“在无人问津的地方用尊严换钱 又在人声鼎沸的地方用钱换尊严”

- 2022.06.28-

软件测试基础知识是行业入门的基石。在面试过程中,面试官会经常考察我们的理论知识是否熟练掌握;在工作中,也需要我们采用一定的测试策略来进行测试工作。熟练使用这些策略,可以帮助我们更高效地进行工作,有助于我们发现更多的bug,提高我们的个人价值。

目前,业界对软件测试的看法不尽相同,甚至对软件测试的定义也不完全一致。其中比较公认的以下三个:

  • 广义的软件测试定义是:贯穿在整个开发各阶段的复查、评估与检验活动,这远远超出了程序范围,可以统称为确认、验证与测试活动(V,V&T一一Validation,VerificationandTesting)。
  • 而狭义的测试定义为:软件测试是为了发现错误而执行程序的过程。软件测试是根据软件开发的规格说明和程序的内部结构而精心设计的测试用例,并利用这些测试用例去运行程序,以发现错误的过程。
  • 软件测试在1983年定义是:使用人工或自动手段来进行或测定某个系统的过程,其目的在于检验它足规定的需求或是弄清预期结果与实际结果之间的差别。“软件测试是以检验是否满足需求为目标的”

关于“什么是软件测试”我们在上一节中已经充分地描述过了,所以就不再重复再描述相同的内容了,想再次浏览的伙伴们可以点击下方的文章链接!

◆◆软件测试的7个原则◆◆

原则(Principles)是每个人在行事中所遵循的准则。每个人都有自己的原则,或成人,或尚处襁褓。软件测试也有一套原则让每位软件测试从业人员去遵循,这些原则是前辈们前仆后继在无数的坑坑洼洼中总结出来的。软件测试的原则是指帮助测试团队有效地利用他们的时间和精力来发现测试项目的隐藏Bug的指导方针。从实际的实践和研究中,研究了以下 7 条软件测试的基本原则,以便测试人员在软件测试领域广泛应用。

原则一:测试证明软件存在缺陷

Testing shows presence of defects

时至今日,依然有不少人容易犯错:没有发现错误的测试说明软件没有缺陷。这个原则可以用另一种方式来描述: 测试的本质是证明软件存在缺陷,而不是说软件没有任何缺陷。

测试只能证明软件是存在缺陷的(证伪),而不是证明软件是没有缺陷的(证实)。软件测试只能找出应用程序或软件中存在的缺陷,测试是为了辅助开发,降低缺陷存在的可能性而开展的活动,即便对产品或者应用程序进行了多次的、比较彻底的测试都没有发现任何缺陷,也不能证明软件是100%完美的。

原则二:穷尽测试是不可能的

Exhaustive testing is impossible

测试数据、输入和测试场景的所有组合是不可能的,因为它需要大量的时间。相反,测试团队只能专注于一些重要的指标,例如:设置测试策略的风险和优先级。一般来说,项目周期里永远不可能允许测试团队在项目中进行大量有效的组合测试。

比如测试一个简单的计算器,你可以尝试1+1,1+2,1+3,1+n……,但是时间上允许你把所有的数字都考虑进去做详尽测试吗?显然是不可能的,从功能本身出发也算是多余的操作。

随着系统承载业务越多,代码规模也越庞大,算法逻辑复杂度也越高。要让测试完全覆盖是不可能的。那难道不测?非也!我们可以采取以下策略:

1、精准测试:改动什么测什么;

2、二八原则:只测重点;

3、等价划分等等;

原则三:尽早介入测试

Testing Early

这条很重要,但是对测试的要求也会更高。

“早期的鸟儿有虫吃”或者是“早起的虫子被鸟吃”,对,说的就是这个理儿,早,是我们解决问题的有效办法。

必须尽早介入测试活动,为软件开发的下一阶段做好准备。只要生成产品需求或文档,测试人员就可以开始测试。据调查,缺陷的修复成本与其发现时间成反比,且越晚修复其修复成本将会成指数级增长。

显然,从一开始就解决问题总是更容易、更便宜,而不是如果发现错误太晚就改变整个系统。因此,通过早期测试,测试人员可以检测到错误,并帮助开发团队以更少的成本和精力解决问题。

另外,尽早介入测试,测试人员能够更全面地了解需求和项目整体进度,知己知彼百战不殆,说的就是这个理儿。

尽早介入测试原则与测试左移和测试前移具有异曲同工之妙。

原则四:缺陷具有集群性

Defect Clustering

之前听过一种理论,二八原则,即:80%的错误是由20%的模块引起的。

缺陷聚类指的是在几个模块中发现了大部分缺陷。这一原则要求测试团队利用自己的知识和经验,确定要测试的潜在模块。这一预测有助于节省时间和精力,因为团队只需要关注那些 “敏感” 领域。

然而,这种方法也有缺点: 一旦测试人员只专注于所有团队的一小块区域,他们可能会错过其他区域的错误。

原则五:杀虫剂悖论

Pesticide Paradox

当我们反复使用相同的杀虫剂的时候,会有少量害虫产生免疫而存活下来,使得杀虫剂失去药效。

杀虫剂悖论是指测试人员一直使用相同的方法或手段去重复测试,这些测试只适用于一些有限的模块,而不是整个系统。这种测试可能很难发现bug,甚至无法发现bug。因此,为了涵盖项目的各个部分,它要求测试团队经常审查和更新测试用例。

原则六:测试是上下文相关的

Testing is context dependent

各种产品或项目包含不同的元素、特征和要求。因此,测试人员不能对不同的项目应用相同的测试方法。例如,银行行业的应用程序应该比娱乐软件需要做更多的测试。

原则七:无错误谬论

Absence of error - Fallacy

该原则一:测试显示软件存在缺陷 中说明,测试是为了降低缺陷存在的可能性而开展的活动,即便多次测试都没有发现任何缺陷,也不能证明软件是完美的。软件测试不仅仅是为了找出Bug而存在的活动,而是还需要确认软件是否满足用户的期望和需求,如果产品不能满足用户的需求,即使没有出现任何缺陷,这个产品也是失败的。“没有错误” 并不是我们的追求,在互联网时代,快速给用户创造最大的价值才是我们孜孜不倦地追求。上述原则是由 Rex Black 、 Erick Van Veenendaal 和 Dorothy Graham 的研究 “软件测试基础” (ISTQB 认证) 总结的。这些原则可以作为大多数测试项目的核心指南。然而,如上所述,每个产品或项目都包含非常不同的因素和需求,需要各种测试方法。测试人员应该利用他们的经验和知识来决定和平衡这些方法。

◆◆测试管理原则◆◆

  • 测试必须是有计划、有组织、有准备的;
  • 其中包括:确定测试任务、时间、人员职责及分工、资源设备、方法与工具、测试输入和输出准则等。
  • 严格执行测试计划并及时进行修订;
  • 严格执行测试计划,意味着要严格遵守测试的工作时间表及具体安排,排除测试的随意性,如果实际情况发生了变更,则要及时对测试计划进行修订。这样测试计划才能更好地达到测试管理的目的。
  • 有效的BUG跟踪和管理;
  • 建立BUG管理流程,使软件中的BUG能够按统一标准和流程得到解决。另外,测试人员要对BUG坚决进行跟踪和监控,使软件质量能够得到保证和控制,为项目管理人员提供量化的软件质量状态。
  • 由独立的第三方来完成测试工作;
  • 尤其是确认测试和系统测试,要有独立的测试机构进行测试,以达到更好的测试效果。对于单元测试经常是有开发人员自己完成,但是开发人员要避免测试自己开发的程序。

另外,为了保证测试工作高效执行,需要很好的团队交流机制,以及快速的反应和反馈能力。

◆◆软件测试职业发展与基本素质◆◆

职业发展

职业描述

初级软件测试工程师

具有计算机软件测试相关的知识技能,具有一定的手工测试经验,熟悉软件生存周期和测试技术

软件测试工程师

具有1-2年经验的测试工程师。编写自动测试脚本程序并担任测试初期的领导工作。进一步拓展编程语言、操作系统、网络与数据库方面的技能

中级、高级软件测试工程师

具有3-5年经验的测试工程师或程序员。帮助开发或维护测试或编程标准与过程,负责同级的评审,并为其它初级的测试工程师或程序员充当顾问。继续拓展编程语言、操作系统、网络与数据库、性能、接口、自动化方面的技能

软件测试组负责人

具有6年以上经验的测试工程师或程序员。负责管理多名测试工程师或程序员。担负一些进度安排和工作规模/成本估算职责。更集中于技能方面

测试开发/项目经理

具有8年左右的工作经验。管理更多的人员参与项目。负责这一领域(测试/质量保证/开发)内的整个开发生存周期业务。为一些用户提供交互和大量演示。负责项目成本、进度安排、计划和人员分工

软件测试人员的目标是发现潜在的软件BUG。软件测试人员所追求的目标是尽自己的努力,尽早以及尽可能多的找出产品中存在的BUG。

软件测试人员是客户的眼睛,应该站在客户应用的角度,代表客户说话,力求使软件趋于完善。

尽管测试人员不必成为一个完美的软件开发人员,但具有软件开发知识无疑对出色完成测试任务具有很大的帮助。软件测试人员应具有良好的软件编程基础,了解和熟悉软件的编程过程;尽可能多的了解专业领域软件的背景知识。目前的软件行业已将软件测试列为专业的技术工作,测试人员通常要具备以下素质:

(1)测试专业技能:

现在,软件测试已经成为一个很有潜力的专业。要想成为一名优秀的测试工程师,首先应该具有扎实的专业基础,这也是本书的编写目的之一。测试工程师应该努力学习测试专业知识,告别简单的“点击”式的测试工作,让测试工作以自己的专业知识为依托。

测试专业知识很多,本书内容主要以测试人员应该掌握的基础专业技能为主。测试专业技能涉及的范围很广:既包括黑盒测试、白盒测试、测试用例设计等基础测试技术,也包括单元测试、功能测试、集成测试、系统测试、性能测试等测试方法,还包括基础的测试流程管理、缺陷管理、自动化测试技术等知识。

(2)软件编程技能:

“测试人员是否需要学会编程?”这是测试人员经常提出的问题之一。实际上,由于在我国开发人员待遇普遍高于测试人员,因此能写代码的几乎都去做开发了。很多人是因为做不了开发或者不能从事其他工作才“被迫”从事测试工作。最终的结果则是很多测试人员只能从事相对简单的功能测试,能力相对强一点的则可以借助测试工具进行简单的自动化测试(主要进行脚本录制与修改、回放测试脚本等)。

软件编程技能应该是测试人员的必备技能之一。在微软,很多测试人员都拥有多年的开发经验。因此,测试人员要想得到较好的职业发展,必须能够编写程序。只有能够进行测试开发,才可以更好的胜任诸如单元测试、集成测试、性能测试等难度较大的测试工作。

此外,对于软件测试人员的编程技能的要求也有别于开发人员:测试人员编写的程序应着眼于运行正确,同时兼顾高效率,尤其要体现在与性能测试相关的测试代码编写上。因此测试人员要具备一定的算法设计能力。依据作者的经验,测试工程师至少应该掌握Java、Python、C++之中的一门语言以及相应的开发工具。

测试工作入门相比开发会容易很多,但是到了后期,会比开发更难驾驭,且薪资也不会亚于开发人员。

(3)网络、操作系统、数据库、中间件等知识:

与开发人员相比,测试人员掌握的知识要求更博,“艺多不压身”是个非常形象的比喻。由于测试中经常需要配置、调试各种测试环境,而且在性能测试中还要对各种系统平台进行分析与调优,因此测试人员需要掌握更多网络、操作系统、数据库等方面的知识。

在网络方面,测试人员应该掌握基本的网络协议以及网络工作原理。尤其要掌握一些网络环境的配置知识,这些都是测试工作中经常用到的知识。

操作系统和中间件方面,应该掌握基本的使用及安装、配置等技能。例如,很多应用系统都是基于Unix、linux来运行的,这就要求测试人员掌握其基本的操作命令以及相关工具软件的使用。而WebLogic、Websphere等中间件的安装与配置方法也需要掌握一些。

数据库知识则是更应该掌握的基础知识。现在的应用系统几乎离不开数据库。因此,不但要掌握基本的安装、配置,还要掌握SQL。测试人员至少应该掌握Mysql、MS Sqlserver、Oracle等常见数据库的使用。

作为一名测试人员,尽管不能精通所有的知识,但要想做好测试工作,应该尽可能地去学习更多的与测试工作相关的专业知识。

◆◆软件质量的属性◆◆

软件质量属性划分为运行期质量属性和开发期质量属性两大类。开发期质量属性其实包含了和软件开发,维护和移植这三类活动相关的所有质量属性,这些是开发人员,开发管理人员和维护人员都非常关心的,对最终用户而言,这些质量属性只是间接地促进用户需求的满足;

而运行期质量属性是软件系统在运行期间,最终用户可以直接感受到的一类属性,这些质量属性直接影响着用户对软件产品的满意度。

◆◆软件质量的度量◆◆

软件质量的度量主要针对作为软件开发成果的软件产品的质量而言,独立于其过程。软件的质量由一系列质量要素组成,每一个质量要素又由一些衡量标准组成,每个衡量标准又由一些度量标准加以定量刻划。质量度量贯穿于软件工程的全过程以及软件交付后,在软件交付之前的度量主要包括程序复杂性、模块的有效性和总的程序规模,在软件交付之后的度量则主要包括残存的缺陷数和系统的可维护性方面。

◆◆软件质量的模型◆◆

1、Boehm质量模型:

Boehm 质量模型是1976年由Boehm等提出的分层方案,将软件的质量特性定义成分层模型,如下图所示:

2、McCall质量模型

McCall 质量模型是1979年由McCall等人提出的软件质量模型。它将软件质量的概念建立在11个质量特性之上,而这些质量特性分别是面向软件产品的运行、修正和转移的。如下图所示:

【入行IT转做软件测试?就选青胜】

青胜紧跟行业发展,贴合企业人才需求,对课程进行更新迭代,创造性的推出了RACE学习模型,即认知Recognize:学习评估;还原 Analyze:名师讲解;创造Create:项目实战;卓越 Excellent:督学就业;针对大学生、跨界转行、初级工程师三大群体郑重推出全栈软件测试工程师启航班!

无论你是在本行业发展受限,想零基础转行,还是刚毕业想入行软件测试,亦或是有一份基础的测试工作,但感觉技能薄弱,想要提升技能,都可以选择我们青胜软件测试!

青胜软件测试以高薪为导向,以软件测试技术体系为基础,以新技术、项目实战为双驱动,始终专注于培养与社会发展进程高度匹配、有明确社会需求的精通软件测试流程,掌握多种测试技能,并具备良好沟通表达能力、专业软件测试技术的卓越人才。

END

————————————————

CONTACT US / 联系我们

VX/官方公众号

青胜软件测试

头条号/官方账号

郑说软件测试

BILIBILI/哔哩哔哩

青胜软件测试

喜马拉雅/官方账号

青胜软件测试



知乎/官方账号

青胜软件测试

免责声明:本站所有信息均搜集自互联网,并不代表本站观点,本站不对其真实合法性负责。如有信息侵犯了您的权益,请告知,本站将立刻处理。联系QQ:1640731186
  • 标签:,我的经济适用男剧情介绍,あおい そら,英雄再临漫画
  • 编辑:梦雪
  • 相关文章