软件测试基础
软件测试涉及许多领域和行业。每个项目都带来新的挑战。开始测试之前,要先理解客户的视角和项目所属领域。不同项目也可能需要不同的测试方法。因此,扎实掌握基础知识是做好测试的首要条件。
为什么需要软件测试?开发人员可能无意中引入错误、缺陷或 Bug。现代软件十分复杂,理解偏差可能导致逻辑或代码错误。
测试可以发现缺陷,以便修正并提高软件质量。目标是开发并交付无缺陷的应用。公司同意为客户开发软件时,需要遵守法律、合同和行业要求。重视质量的公司会将测试纳入最佳实践。
很难判断测试做到什么程度才算充分。认真规划并设计好测试用例,才能实现高质量交付。
谁来做软件测试?应该由谁来测试软件?开发人员通常会在交接前多次检查自己的代码,但缺陷仍可能存在,因为人们往往难以发现自己的错误。
测试人员从客户的角度客观审视软件,关注规格和需求,从而发现开发人员忽略的问题。因此,测试应始终由独立于开发工作的测试人员完成。
将开发团队和测试团队分开也有缺点。双方可能出现沟通障碍。开发人员如果认为质量只是测试人员的责任,可能会忽略代码审查,从而加重测试团队的工作负担。
开发人员有时会相互测试对方的工作,这种方式称为同伴测试,也叫 buddy testing。每个开发团队都应有专门负责测试的人员,一个项目通常至少有一个专门的测试团队。有些公司为易用性、性能、安全性及其他测试类型分别组建团队。另一些公司会把测试委托给专业机构、独立测试人员或顾问。
到底需要测试什么?了解项目需求以及软件的实际使用场景。这能帮助您决定测试哪些内容,并制定合适的测试策略。
到底需要测试什么?
什么时候进行软件测试?
尽早开始测试有助于开发人员按时完成工作,也能节省时间、金钱和精力。在开发后期发现的缺陷往往修复成本较高。把开发分成若干阶段,在进入下一阶段前测试本阶段的成果。这样既有利于按时交付,也能取得更好的结果。如果每个模块都已根据规格单独测试,集成也会更加容易。
多久需要测试一次?在开发的同时开展测试,尽可能在早期发现缺陷。测试频率取决于所需的质量水平。及早发现问题,就能在修改还比较简单、成本较低时调整设计。到了后期,重大变更会变得困难且昂贵。
多久需要测试一次?
什么是软件测试标准?
测试标准对客户和软件生产方都很重要。客户为软件付费,希望确信软件的质量值得购买。
信誉良好的企业依据获得公开认可的标准管理产品质量。遵循这些标准能对产品及其预期行为提供保障,让客户有信心购买达到所需标准的软件。
对软件生产方来说,标准有助于改善最终产品。选定标准后,企业可以在后续项目中沿用这套基础,无需从头开始。许多测试标准能帮助评估质量和提高测试成效,但任何单一标准都无法涵盖软件测试的所有方面。
有的标准把测试纳入更广泛的要求,有的标准专门支持测试工作。两类标准都可以指导您的实践。
什么是软件可测试性?可测试性描述软件系统是否容易测试。应尽早评估它,以估算测试需要的资源。测试可以发现缺陷。评估可测试性有助于找出缺陷可能隐藏的区域。可测试性高,测试就更容易。可测试性低,就需要投入更多精力。请考虑以下因素。
- 可控性意味着能够控制测试过程,从而对其进行优化。
- 可观察性要求系统行为和影响结果的因素清晰可见,这样才能对它们进行测试。
- 可用性在这里是指能够访问系统,以便进行测试。
- 一致的设计、清楚的功能和简单的编码方式有助于降低测试难度。软件越复杂,测试就越困难。
- 稳定性有助于测试。频繁更改设计可能干扰测试。
- 测试效率在很大程度上取决于可以获得多少软件相关信息。
请留意可测试性与缺陷之间的关系。
- 较高的可测试性有助于提高测试质量、减少缺陷。
- 较低的可测试性可能降低测试质量,使更多缺陷留在系统中。
验证与确认是两种不同的分析方式。确认关注做的是不是正确的系统,也就是系统是否满足客户需求。
验证关注是否用正确的方式构建系统,重点是工程质量和是否符合规定的标准。
确认检查规格是否满足客户需求。验证检查开发工作是否遵循组织的软件质量标准和工程实践。
软件验证与软件确认
有些方法在每个开发阶段都安排验证,但把确认集中在开头和结尾,也就是需求分析和验收测试阶段。这在实践中很难做到。项目开始时很难掌握所有客户需求,开发开始后需求也经常变化。开发团队本身也可能提出变更。因此,应在整个开发过程中开展验证与确认。
测试人员使用验证与确认,也称 V&V,来检查软件质量的不同方面。
软件测试与软件调试测试与调试的目的不同。测试揭示缺陷。调试在发现缺陷后进行,用于消除缺陷的原因。
测试人员报告缺陷后,开发人员会查找根本原因。他们检查相关模块,在代码中定位问题并加以修正。调试会逐步找出并解决缺陷的原因。
尝试修正缺陷之前,要先弄清可能的原因。信息不足时调试,可能在相互关联的模块中引入新的缺陷。避免毫无章法地尝试。修正后,应把模块交还测试人员,进行彻底测试。
- 测试发现缺陷。调试定位并修正缺陷的原因。
- 测试是开发的重要组成部分。调试用于处理测试揭示的缺陷。
- 测试在开发早期就开始。调试在收到缺陷报告后开始。
- 测试包括验证与确认(V&V)。调试负责调查和修正缺陷的原因。
缺陷是对软件需求规格的偏离。缺陷可能出现在代码或设计中,并在程序运行时导致错误输出。
- 有许多缺陷的代码通常被称为问题代码。
- 缺陷报告描述缺陷的性质。
- 缺陷跟踪工具用于跟踪系统中的缺陷。
- 有一种测试方法会故意向代码中引入缺陷,然后观察结果,确认系统是否会按预期对这些问题作出响应。
什么是缺陷?
什么是严重程度和优先级?
严重程度描述缺陷对系统的影响。以下类别按影响划分。
- 致命缺陷会因系统故障或数据损坏而导致应用无法正常工作,用户无法继续操作。
- 重大缺陷可能使系统出现故障,但用户无需额外培训就能通过其他方式获得所需结果。这类缺陷比致命缺陷轻。
- 中等缺陷不会使系统停止运行,但会产生错误或相互矛盾的输出。
- 轻微缺陷不会引发系统故障或影响易用性,且容易修正。
- 外观缺陷影响系统的视觉呈现。
缺陷报告除了记录严重程度,还记录优先级。优先级告诉开发人员应该按什么顺序处理缺陷。
- 低优先级缺陷应在优先级更高的缺陷之后处理,无需立即采取行动。
- 中优先级缺陷应在处理完优先级更高的缺陷后尽快解决。
- 高优先级缺陷需要立即关注,并应尽快解决。
什么是严重程度和优先级?
- 高优先级和高严重程度的缺陷会导致基本功能出现问题,用户无法使用系统,必须立即修正。
- 高优先级和低严重程度的例子包括公司名称拼写错误或标志问题。这类问题对功能影响不大,但需要立即修正。
- 高严重程度和低优先级的情况是,重大缺陷影响了用户暂时不需要的模块,因此修正可以稍后进行。
- 低优先级和低严重程度的缺陷通常最后修正,例如不影响功能的外观问题。
我们保证,学完免费在线培训,您就能通过软件测试认证考试!
-
01
在线报名
选择您希望获得的认可认证,完成报名。
-
02
接收访问码
您的专属考试访问码将立即发送到您的电子邮箱。
-
03
准备并参加考试
学习免费培训材料,在线回答 50 道选择题。
-
04
获得终身有效的认证
领取全球有效的证书和可验证的数字徽章。
您的免费优质在线培训
Software Testing Revealed 第二版已为您备好。
我们与来自各主要行业的知名企业领导者、团队负责人、软件测试教练、导师、专家及权威人士共同开发了这套培训。所有访问 International Software Test Institute™ 的人士都可以学习。您可通过 您的免费软件测试书籍 以及 您的免费优质软件测试培训 获取培训资料。这两个栏目都在顶部菜单中。
这些资料是 International Software Test Institute™ 享有版权的知识产权。我们免费向所有人分享,因为公开我们的专业经验能帮助软件测试从业者,并促进这一领域的发展。
认证考试采用选择题。请学习在线培训,掌握通过考试和获得软件测试认证所需的知识。
我们保证,学完免费优质在线培训,您就能通过软件测试认证考试!
