软件测试基础

软件测试涉及许多领域和行业。每个项目都带来新的挑战。开始测试之前,要先理解客户的视角和项目所属领域。不同项目也可能需要不同的测试方法。因此,扎实掌握基础知识是做好测试的首要条件。

为什么需要软件测试?

开发人员可能无意中引入错误、缺陷或 Bug。现代软件十分复杂,理解偏差可能导致逻辑或代码错误。

测试可以发现缺陷,以便修正并提高软件质量。目标是开发并交付无缺陷的应用。公司同意为客户开发软件时,需要遵守法律、合同和行业要求。重视质量的公司会将测试纳入最佳实践。

很难判断测试做到什么程度才算充分。认真规划并设计好测试用例,才能实现高质量交付。

谁来做软件测试?

应该由谁来测试软件?开发人员通常会在交接前多次检查自己的代码,但缺陷仍可能存在,因为人们往往难以发现自己的错误。

测试人员从客户的角度客观审视软件,关注规格和需求,从而发现开发人员忽略的问题。因此,测试应始终由独立于开发工作的测试人员完成。

将开发团队和测试团队分开也有缺点。双方可能出现沟通障碍。开发人员如果认为质量只是测试人员的责任,可能会忽略代码审查,从而加重测试团队的工作负担。

开发人员有时会相互测试对方的工作,这种方式称为同伴测试,也叫 buddy testing。每个开发团队都应有专门负责测试的人员,一个项目通常至少有一个专门的测试团队。有些公司为易用性、性能、安全性及其他测试类型分别组建团队。另一些公司会把测试委托给专业机构、独立测试人员或顾问。

到底需要测试什么?

了解项目需求以及软件的实际使用场景。这能帮助您决定测试哪些内容,并制定合适的测试策略。

What Has to Be Tested?What Has toBe Tested?GUIAccessibilityDesignEfficiencyModularityCodeUserFriendlinessSecurity
打开完整尺寸图表

到底需要测试什么?

什么时候进行软件测试?

尽早开始测试有助于开发人员按时完成工作,也能节省时间、金钱和精力。在开发后期发现的缺陷往往修复成本较高。把开发分成若干阶段,在进入下一阶段前测试本阶段的成果。这样既有利于按时交付,也能取得更好的结果。如果每个模块都已根据规格单独测试,集成也会更加容易。

多久需要测试一次?

在开发的同时开展测试,尽可能在早期发现缺陷。测试频率取决于所需的质量水平。及早发现问题,就能在修改还比较简单、成本较低时调整设计。到了后期,重大变更会变得困难且昂贵。

Continuous Software Testing CycleSoftwareTestingMeasureAnalyzeTestOptimizeRepeat
打开完整尺寸图表

多久需要测试一次?

什么是软件测试标准?

测试标准对客户和软件生产方都很重要。客户为软件付费,希望确信软件的质量值得购买。

信誉良好的企业依据获得公开认可的标准管理产品质量。遵循这些标准能对产品及其预期行为提供保障,让客户有信心购买达到所需标准的软件。

对软件生产方来说,标准有助于改善最终产品。选定标准后,企业可以在后续项目中沿用这套基础,无需从头开始。许多测试标准能帮助评估质量和提高测试成效,但任何单一标准都无法涵盖软件测试的所有方面。

有的标准把测试纳入更广泛的要求,有的标准专门支持测试工作。两类标准都可以指导您的实践。

什么是软件可测试性?

可测试性描述软件系统是否容易测试。应尽早评估它,以估算测试需要的资源。测试可以发现缺陷。评估可测试性有助于找出缺陷可能隐藏的区域。可测试性高,测试就更容易。可测试性低,就需要投入更多精力。请考虑以下因素。

  1. 可控性意味着能够控制测试过程,从而对其进行优化。
  2. 可观察性要求系统行为和影响结果的因素清晰可见,这样才能对它们进行测试。
  3. 可用性在这里是指能够访问系统,以便进行测试。
  4. 一致的设计、清楚的功能和简单的编码方式有助于降低测试难度。软件越复杂,测试就越困难。
  5. 稳定性有助于测试。频繁更改设计可能干扰测试。
  6. 测试效率在很大程度上取决于可以获得多少软件相关信息。

请留意可测试性与缺陷之间的关系。

  1. 较高的可测试性有助于提高测试质量、减少缺陷。
  2. 较低的可测试性可能降低测试质量,使更多缺陷留在系统中。

软件验证与软件确认

验证与确认是两种不同的分析方式。确认关注做的是不是正确的系统,也就是系统是否满足客户需求。

验证关注是否用正确的方式构建系统,重点是工程质量和是否符合规定的标准。

确认检查规格是否满足客户需求。验证检查开发工作是否遵循组织的软件质量标准和工程实践。

Software Verification and Software ValidationRequirementSpecification(Verification)User AcceptanceTesting (UAT)Functional Design(Verification)Functional Testing(Validation)Internal SystemDesign(Verification)Integration Testing(Validation)Code and Unit Testing(Verification and Validation)
打开完整尺寸图表

软件验证与软件确认

有些方法在每个开发阶段都安排验证,但把确认集中在开头和结尾,也就是需求分析和验收测试阶段。这在实践中很难做到。项目开始时很难掌握所有客户需求,开发开始后需求也经常变化。开发团队本身也可能提出变更。因此,应在整个开发过程中开展验证与确认。

测试人员使用验证与确认,也称 V&V,来检查软件质量的不同方面。

软件测试与软件调试

测试与调试的目的不同。测试揭示缺陷。调试在发现缺陷后进行,用于消除缺陷的原因。

测试人员报告缺陷后,开发人员会查找根本原因。他们检查相关模块,在代码中定位问题并加以修正。调试会逐步找出并解决缺陷的原因。

尝试修正缺陷之前,要先弄清可能的原因。信息不足时调试,可能在相互关联的模块中引入新的缺陷。避免毫无章法地尝试。修正后,应把模块交还测试人员,进行彻底测试。

  1. 测试发现缺陷。调试定位并修正缺陷的原因。
  2. 测试是开发的重要组成部分。调试用于处理测试揭示的缺陷。
  3. 测试在开发早期就开始。调试在收到缺陷报告后开始。
  4. 测试包括验证与确认(V&V)。调试负责调查和修正缺陷的原因。

什么是缺陷?

缺陷是对软件需求规格的偏离。缺陷可能出现在代码或设计中,并在程序运行时导致错误输出。

  1. 有许多缺陷的代码通常被称为问题代码。
  2. 缺陷报告描述缺陷的性质。
  3. 缺陷跟踪工具用于跟踪系统中的缺陷。
  4. 有一种测试方法会故意向代码中引入缺陷,然后观察结果,确认系统是否会按预期对这些问题作出响应。

Defect Prevention and DetectionRequirement StudyDesignImplementationTestRelease andMaintenanceDefectPreventionDefectDetection
打开完整尺寸图表

什么是缺陷?

什么是严重程度和优先级?

严重程度描述缺陷对系统的影响。以下类别按影响划分。

  1. 致命缺陷会因系统故障或数据损坏而导致应用无法正常工作,用户无法继续操作。
  2. 重大缺陷可能使系统出现故障,但用户无需额外培训就能通过其他方式获得所需结果。这类缺陷比致命缺陷轻。
  3. 中等缺陷不会使系统停止运行,但会产生错误或相互矛盾的输出。
  4. 轻微缺陷不会引发系统故障或影响易用性,且容易修正。
  5. 外观缺陷影响系统的视觉呈现。

缺陷报告除了记录严重程度,还记录优先级。优先级告诉开发人员应该按什么顺序处理缺陷。

  1. 低优先级缺陷应在优先级更高的缺陷之后处理,无需立即采取行动。
  2. 中优先级缺陷应在处理完优先级更高的缺陷后尽快解决。
  3. 高优先级缺陷需要立即关注,并应尽快解决。
应结合报告中的严重程度和优先级来判断采取行动的紧迫程度。

Severity and PriorityNoncriticalHigh SeverityLow PriorityCriticalHigh SeverityHigh PriorityLowLow SeverityLow PriorityHighLow SeverityHigh PrioritySeverityPriority
打开完整尺寸图表

什么是严重程度和优先级?

  1. 高优先级和高严重程度的缺陷会导致基本功能出现问题,用户无法使用系统,必须立即修正。
  2. 高优先级和低严重程度的例子包括公司名称拼写错误或标志问题。这类问题对功能影响不大,但需要立即修正。
  3. 高严重程度和低优先级的情况是,重大缺陷影响了用户暂时不需要的模块,因此修正可以稍后进行。
  4. 低优先级和低严重程度的缺陷通常最后修正,例如不影响功能的外观问题。




我们保证,学完免费在线培训,您就能通过软件测试认证考试!

  1. 01

    在线报名

    选择您希望获得的认可认证,完成报名。

  2. 02

    接收访问码

    您的专属考试访问码将立即发送到您的电子邮箱。

  3. 03

    准备并参加考试

    学习免费培训材料,在线回答 50 道选择题。

  4. 04

    获得终身有效的认证

    领取全球有效的证书和可验证的数字徽章。

Accredited Software Test Manager Certification™ 证书样本
报名参加认证

您的免费优质在线培训

Software Testing Revealed 第二版已为您备好。

我们与来自各主要行业的知名企业领导者、团队负责人、软件测试教练、导师、专家及权威人士共同开发了这套培训。所有访问 International Software Test Institute™ 的人士都可以学习。您可通过 您的免费软件测试书籍 以及 您的免费优质软件测试培训 获取培训资料。这两个栏目都在顶部菜单中。

这些资料是 International Software Test Institute™ 享有版权的知识产权。我们免费向所有人分享,因为公开我们的专业经验能帮助软件测试从业者,并促进这一领域的发展。

认证考试采用选择题。请学习在线培训,掌握通过考试和获得软件测试认证所需的知识。

我们保证,学完免费优质在线培训,您就能通过软件测试认证考试!