软件测试(知识整理、速成、快速了解基本概念)用于期末复习

  1. 软件测试的基本概念

    • 验证和确认:这两个术语是软件测试中的重要概念。验证是指确认软件是否符合需求、设计和规格说明书等文档的要求。而确认则是验证软件是否能够实现用户或客户所需要的功能和性能等方面的要求。

    • 缺陷和错误:缺陷指的是程序代码中的一个错误或者 bug,在软件测试中通常是指程序存在的问题。一个缺陷可以对应多个错误,即导致这个缺陷出现的问题。

    • 白盒测试和黑盒测试:白盒测试和黑盒测试是两种常见的测试方法。白盒测试是基于程序内部结构进行的测试,开发人员需要了解程序的内部结构,并编写测试用例来测试各个部分是否正常工作。黑盒测试则是不考虑程序内部结构,只关注程序输入输出的行为,测试人员需要根据规格说明书等文档编写测试用例。

  2. 软件测试的方法

    • 功能测试:功能测试是验证软件是否满足需求或规格说明书中要求的各项功能。在测试过程中,测试人员按照规定的测试计划,执行各项测试用例,并记录测试过程和测试结果。如果测试通过,则表明软件可以正常工作;否则,就需要进行问题修复和再次测试。        

    • 性能测试:性能测试是验证软件的性能是否符合需求或规格说明书中要求的测试。通常包括负载测试、并发测试等,测试人员需要模拟不同负载下的用户并发访问,检查软件的响应时间、稳定性等方面的表现。这种测试方法可以帮助软件开发人员发现软件在承载高并发状况时的弱点。

    • 安全测试:安全测试是检查软件的安全性,验证软件是否可以抵御攻击和保护用户数据等方面。测试人员需要模拟不同的攻击场景,例如 SQL 注入、跨站脚本攻击等,以验证软件的安全性。

    • 自动化测试:自动化测试是利用软件工具执行测试用例,自动比对预期结果和实际结果之间的差异,提高测试效率和测试质量。常用的自动化测试工具有 Selenium、Appium 等。

    • 静态测试:静态测试是软件测试中的一种测试方法,通过检查代码和文档等非执行代码的方式发现潜在的缺陷。静态测试包括代码检查、代码评审等,可以帮助测试人员发现不易在运行时发现的问题。

  3. 软件测试的工具

    • JUnit:JUnit 是 Java 编程语言中最流行的单元测试框架。JUnit 提供了一种方便的方式来编写和执行单元测试用例,并且能够自动比对预期结果和实际结果之间的差异。

    • Selenium:Selenium 是一个用于 Web 应用程序自动化测试的工具,它支持多种浏览器和多种平台,并且可以使用多种编程语言编写测试脚本。

    • LoadRunner:LoadRunner 是一款通用的性能测试工具,主要用于测试 Web 应用程序在高并发访问情况下的性能表现。

    • Fiddler:Fiddler 是一款用于检查和调试 Web 应用程序的工具,可以查看 HTTP 请求和响应,仿真不同网络条件下的情况等。

    • Bugzilla:Bugzilla 是一个开源的缺陷追踪工具,支持缺陷报告、缺陷跟踪等功能。

  4. 软件测试的阶段

    • 单元测试:单元测试是软件测试中的第一个阶段,用于测试程序代码中的最小可测试之部分(通常是一个函数或一个方法)。单元测试需要编写测试用例来测试这些组成部分是否可以按照预期工作。单元测试的主要目的是防止某个组成部分出现问题并影响整个程序的工作。

    • 集成测试:集成测试是在已经通过单元测试的组成部分的基础上进行的测试。集成测试的主要目的是检查各组成部分之间的交互是否符合需求,并确保软件以预期的方式工作。

    • 系统测试:系统测试是对完整软件系统进行的测试,其目的是验证软件是否符合需求和规格说明书的所有要求,并检查各组成部分之间的协作是否正常。系统测试通常包含功能测试、性能测试和安全测试等。

    • 验收测试:验收测试是用户或客户进行的测试,用于确认软件是否满足客户需求和规格说明书中的所有要求。验收测试通常是最后一个测试阶段,也是软件测试的最后一个环节。

  5. 软件测试的计划和策略

    • 软件测试计划:软件测试计划是一份详细规划软件测试活动的文档。该文档应包括测试目标、测试任务、测试资源、测试进度、测试策略等信息。软件测试计划也应考虑到风险管理和不同类型测试的优先级。

    • 测试策略:测试策略是指制定的一组测试技术和方法,以及应用这些技术和方法来完成软件测试所需的过程。测试策略的主要目的是确保测试效率和测试质量,并在需要时可以快速适应变化。

  6. 软件测试的质量度量

    • 缺陷密度:缺陷密度是缺陷数与代码行数的比率。通常情况下,缺陷密度越小则软件质量越高。

    • 测试覆盖率:测试覆盖率是指被测试的代码中被测试的特定部分所占比例。通常情况下,测试覆盖率越高则软件质量越高。

    • 重现率:重现率是指缺陷出现的频率。如果某一缺陷可以重现,则重现率为 100%;否则,重现率为 0%。

    补充:

  1. 功能测试

    • 边界值分析法(Boundary Value Analysis):该方法主要是用于验证程序处理不同输入时的极限情况是否正确。例如,一个要求输入 1~100 的程序,那么边界值分析法就会检查输入 0、1、2、99、100 和 101 等情况。

    • 等价类划分法(Equivalence Partitioning):该方法将测试数据分成几个等价类,并为每个等价类选择一个代表性的值作为测试数据进行测试。例如,一个要求输入 1~100 的程序,可以将数据分成三个等价类:小于等于 0、大于 100、和 1~100 之间的数。

    • 布尔测试法(Decision Table Testing):该方法将程序的功能视为布尔逻辑关系,根据各种输入条件和输出结果之间的关系构建决策表,在表中记录每一条路径的测试结果。

  2. 性能测试

    • 负载测试(Load Testing):该测试方法用于模拟不同负载下的用户并发访问,以测试在高负载情况下的软件系统的性能表现,例如响应时间、稳定性等。

    • 压力测试(Stress Testing):该测试方法用于测试在超出软件系统正常负载范围时,软件系统的性能表现情况。压力测试可以帮助开发人员了解软件系统的性能极限,为优化软件系统提供数据。

    • 异常测试(Exceptional Testing):该测试方法主要用于测试在一些异常情况下软件系统的表现情况,例如在网络断开、硬件故障等突发情况下是否能够正常地运行或者合理地处理错误。

  3. 安全测试

    • 渗透测试(Penetration Testing):该测试方法是模拟黑客攻击的一种测试方法,主要用于检测软件系统的安全漏洞和潜在风险,以查找和修复可能导致安全问题的漏洞。

    • 漏洞扫描(Vulnerability Scanning):该测试方法是使用自动化工具来扫描软件系统中可能存在的安全漏洞,以帮助开发人员及时发现和解决安全问题。

    • 风险评估(Risk Assessment):该测试方法是通过分析软件系统的各种安全风险和可能的威胁,为软件系统制定相应的安全措施和风险管理策略。

  4. 自动化测试

    • 单元测试自动化(Unit Testing Automation):该测试方法主要用于自动执行单元测试用例,并自动化比对预期结果和实际结果之间的差异。常用单元测试自动化工具有 JUnit、NUnit 等。

    • 功能测试自动化(Functional Testing Automation):该测试方法主要用于对功能性测试进行自动化处理,例如用 Selenium 自动化测试 Web 应用程序等。

    • 性能测试自动化(Performance Testing Automation):该测试方法主要用于对性能测试进行自动化处理,例如用 JMeter 自动化测试 Web 应用程序等。

  5. 黑盒测试
    • 黑盒测试也被称为功能测试或输入/输出驱动测试。在黑盒测试中,测试人员不需要了解程序的内部实现细节和代码结构,只需要根据软件的功能需求和规格说明书等文档来编写测试用例进行测试。黑盒测试主要关注软件系统的功能是否符合用户需求、是否满足系统的功能规格说明等。
    • 黑盒测试的优点是测试人员可以从用户的角度出发,摆脱程序的上下文和细节的干扰,专注于测试软件的功能和用户界面,探测潜在的输入错误、输出错误及其他问题。但黑盒测试无法检查程序内部的错误、逻辑错误等细节性问题,往往需要配合白盒测试来进行综合性测试。
  6. 白盒测试
    • 白盒测试也被称为结构测试、逻辑驱动测试或基于代码的测试。在白盒测试中,测试人员需要了解软件程序的内部结构和实现细节,深入地了解程序逻辑和代码的执行流程。测试用例编写时要针对程序的内部逻辑和代码路径进行设计,主要用于查找程序中的逻辑错误、语法错误、性能问题等等。

    • 白盒测试的优点是可以检查程序的内部逻辑和代码路径,发现隐藏在软件底层的问题,同时也能评估程序性能问题。但白盒测试需要大量的时间和精力来编写测试用例、执行测试、分析结果,测试人员要有一定的开发经验和技术能力。

欢迎补充~~~

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值