软件测试复习与几道常见题型

第一章

1.1 软件测试定义

1.软件测试的理解:

软件测试的正向理解 : 验证软件是否符合用户需求,给用户以信心。

  1. 软件测试就是为程序或系统能够按预期设想运行而建立信心的过程。

  2. 软件测试是一系列活动以评价一个程序或系统的特性或能力并确定是否达到预期的结果”。

  3. 测试是为了验证软件是否符合用户需求,即验证软件产品是否能正常工作。

软件测试的反向理解: 发现错误

  1. 测试是为了证明程序有错,而不是证明程序无错误
  2. 一个好的测试用例是在于它能发现至今未发现的错误
  3. 一个成功的测试是发现了至今未发现的错误的测试

2.软件测试狭义和广义概念:

狭义的软件测试
仅仅指动态测试,即运行程序或系统以发现缺陷或验证是否满足需求、是否能正常工作。
广义的软件测试

  1. 不仅是运行程序或系统而进行测试,还包括需求/设计/代码等评审活动。
  2. 静态测试+动态侧试

3.测试=V&V 验证与确认

  1. 验证(Verificationy)”是检验软件是否已正确地实现了产品规格书所定义的系统功能和特性
  2. 有效性确认(Validation)”是确认所开发的软件是否满足用户真正需求的活动

在这里插入图片描述

1.2 软件测试公式

1. TEST ORCALE 的来源,如何确定预期测试结果

A mechanism for determining whether a test has passed or failed. The use of oracles involves comparing the outputs of the system under test, for a given test-case input, to the outputs that the oracle determines that product should have
一种确定测试是否通过或失败的机制。oracle的使用包括将在给定测试用例输入下的系统输出与oracle确定产品应该具有的输出相比较。

  1. 规范和文档
  2. 其他/竞争产品
  3. 启发式oracle为一些测试输入提供近似结果或精确结果
  4. 使用统计特征的统计oracle
  5. 一致性oracle,将一个测试执行的结果与另一个测试执行的结果相比较
  6. 基于模型的oracle使用相同的模型来生成和验证系统行为
  7. Human oracle

1.3软件测试分类

在这里插入图片描述

1. 黑盒,白盒 ,静态,动态测试 (四个组合)

在这里插入图片描述

  1. 静态测试(static testing),是指不实际运行被测软件,而只是静态地检查程序代码、界面或文档中可能存在的错误过程。
  2. 动态测试(dynamic testing):是指实际运行被测程序,输入相应的测试数据,检查实际输出结果和预期结果是否相符的过程。
  3. 黑盒测试(black-box testing):黑盒测试又称数据驱动测试,完全不考虑程序内部结构和内部特性,注重于测试软件的功能需求。
  4. 白盒测试(white-box testing):也称结构测试或逻辑驱动测试,是针对被测单元内部是如何进行工作的测试。它根据程序的控制结构设计测试用例,主要用于软件或程序验证。
    黑盒测试&白盒测试是软件测试领域中最基本的两个概念…
    • 在软件公司中,往往采用黑盒测试&白盒测试相结合的方式。
    • 软件的整体功能和性能进行黑盒测试
    • 软件的源代码采用白盒测试

2.单元,集成,系统,验收 α测试,β测试

在这里插入图片描述

  1. 单元测试(unit testing):单元测试又称模块测试,针对软件设计中的最小单位——程序模块,进行正确性检查的测试工作。单元测试需要从程序的内部结构出发设计测试用例。多个模块可以平行地独立进行单元测试。
  2. 集成测试(integration testing):集成测试又叫组装测试,通常在单元测试的基础上,将所有程序模块进行有序的、递增的测试。重点测试不同模块的接口部分。

1.什么时候进行集成测试?
• 单元测试&集成测试同步进行,理论上先有单元测试。
2.由谁来做集成测试?
• 白盒测试工程师或者开发工程师
3.集成测试的依据?
• 单元测试的模块+《概要设计》文档。

  1. 系统测试(system testing):指的是将整个软件系统看为一个整体进行测试,包括对功能、性能、以及软件所运行的软硬件环境进行测试。
    目前系统测试主要由黑盒测试工程师在系统集成完毕后进行测试,前期主要测试系统的功能是否满足需求,后期主要测试系统运行的性能是否满足需求,以及系统在不同的软硬件环境中的兼容性等
  2. 验收测试(acceptance testing):验收测试指按照项目任务书或合同、供需双方约定的验收依据文档进行的对整个系统的测试与评审,决定是否接收或拒收系统。在系统测试的后期,以用户测试为主或有测试人员等质量保证人员共同参与的测试。
    它包括Alpha测试和Beta测试,系统开发生命周期方法论的一个阶段,由相关的用户和/或独立测试人员根据测试计划和结果对系统进行测试和接收。它让系统用户决定是否接收该系统。它是一项确定产品是否能够满足合同或用户所规定需求的测试。这是管理性和防御性的控制。
  3. α测试:指的是由用户,测试人员、开发人员等共同参与的内部测试。既可以是一个用户在开发环境下进行的测试,也可以是公司内部的用户在模拟实际操作环境下进行的受控测试。Alpha测试由程序员或测试员完成。
  4. β测试:指的是内测后的公测,即完全交给最终用户测试软件的多个用户在一个或多个用户的实际使用环境下进行的测试。开发者通常不在测试现场,Beta测试不能由程序员或测试员完成。验收测试的重要性:验收签字,收钱。

3.功能测试、性能测试

  1. 功能测试(function testing):是黑盒测试的一方面,它检查实际软件的功能是否符合用户的需求。
    • 逻辑功能测试(function testing)
    • 界面测试(UI testing)
    • 易用性测试(usability testing)
    • 安装测试(installation testing)
    • 兼容性测试(compatibility testing)
  2. 性能测试(performance testing):Performance testing,在一定的负载情况下,系统的响应时间、资源利用、效率等特性是否满足特定的性能需求。
    是软件测试的高端领域,性能测试工程师的待遇和白盒测试工程师不相上下,通常我们所说的高级软件测试工程师一般就是指性能测试或是白盒测试工程师。
    • 时间性能(事务响应时间等)
    • 空间性能(系统资源消耗)
    • 一般性能测试
    • 可靠性测试
    • 负载测试
    • 压力测试

4.基准测试,负载测试,压力测试

基准测试的关键是要获得一致的、可再现的结果。可再现的结果有两个好处:减少重新运行测试的次数;对测试的产品和产生的数字更为确信。
性能基准测试是一项系统性能测量工作,基准测试有更短的回归周期与直观的趋势分析,并同时为混合业务性能场景的脚本线程配比计算提供依据。基准测试在日常中进行,特别是在发生重大变更事件(例如:系统配置、环境发生变更)之前与之后的测试,让测试结果数据更有实质上的参考意义。基准测试为系统创建性能基准后,基准数据作为性能指标的参照物,可用于判断任意一项变更为系统带来的具体影响。

Web基准测试:把新服务器的性能和已知的参考标准进行比较

负载测试:确认服务器在不同的负载条件下性能的可接受性
(操作条件不变)
压力测试:确认服务器在异常或者极限的条件时性能的可接受性
例如,减少资源或大数量的用户

5.回归测试,冒烟测试,随机测试

  1. 回归测试(regression testing):是指软件被修改后重新进行的测试,如重复执行上一个版本测试时的用例,是为了保证对软件所做的修改没有引入新的错误而重复进行的测试。
  2. 冒烟测试(smoke testing):是指在对一个新版本进行系统大规模的测试之前,先验证一下软件的基本功能是否实现,是否具备可测试性。
  3. 随机测试(random testing):是指测试中所有的输入数据都是随机生成的,其目的是模拟用户的真实操作,并发现一些边缘性的错误。

1.4软件缺陷管理

1.软件缺陷的定义,属性,级别,举例和生命周期

软件缺陷定义:

  1. 软件未达到产品说明书中标明的功能。
  2. 软件出现了产品说明书中指明的不会出现的功能。
  3. 软件功能超出了产品说明书中指明的范围。
  4. 软件未达到产品说明书中指明应达到的目标。
  5. 软件测试人员认为软件难以理解和使用、运行速度慢,或最终用户认为不好。

软件缺陷属性发现缺陷后,需要提交缺陷单,通常情况下,缺陷单需要包含以下的内容:

  1. ID
  2. 标题(Title)
  3. 测试环境(Environment)
  4. 严重等级(Severity)
  5. 优先级(Priority)
  6. 类别(Category)
  7. 状态(Status)
  8. 描述信息(Description)
  9. 重现步骤(Reproduce)
  10. 附件(Attachment)
  11. 测试人员(Created by)
  12. 处理人员(Assign to)

软件缺陷严重程度(Severity):描述因缺陷引起的故障对软件产品影响的程度。通常划分为以下几个级别:
在这里插入图片描述
软件缺陷优先级(Priority):描述缺陷必须被修复的紧急程度。通常划分为以下几个级别:

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值