hnust 湖南科技大学 2023 软件测试技术 期中考试 复习资料

news2024/11/29 10:47:07

前言

  1. 写的比较匆忙,重点也不明确,没什么参考价值
  2. 致谢:ly,zxq
  3. 重点来源:信安
  4. ※:补充内容
  5. ★:重点
  6. ✦:个人推测考点
  7. 考试范围:1-9章
  8. 获取最新版本

题型

  1. 判断:10
  2. 简答:40
  3. 应用:36
  4. 综合:14

软件缺陷★

定义

软件缺陷是指计算机或系统存在的任何一种破坏正常运行能力的问题,错误或隐藏的功能缺陷,瑕疵,其结果会导致软件产品在某种程度上不能满足用户需求。

  • 从产品内部看,软件缺陷是软件产品开发或维护过程中所存在的错误、毛病等各种问题;
  • 从外部看,软件缺陷是系统所需要实现的某种功能的失效或违背。

来源

  1. 技术问题

    算法错误,语法错误,计算和精度问题,接口参数传递不匹配

  2. 团队工作

    沟通不充分,误解

  3. 软件本身

    • 文档错误
    • 用户使用场合(user scenario)
    • 时间上不协调、或不一致性所带来的问题
    • 系统的自我恢复或数据的异地备份、灾难性恢复等问题

严重级别

  • 微小的(Minor)。一些小问题如有个别错别字、文字排版不整齐等, 对功能几乎没有影响,软件产品仍可使用。
  • 一般的(Major)。不太严重的错误,如次要功能模块丧失、提示信息 不够准确、用户界面差和操作时间长等。
  • 严重的(Critical)。严重错误,指功能模块或特性没有实现,主要功能 部分丧失,次要功能全部丧失,或致命的错误声明。
  • 致命的(Fatal)。致命的错误,造成系统崩溃、死机,或造成数据丢失、 主要功能完全丧失等。

处理流程※

image-20230513152413896

软件测试

原因

  • 没有测试,软件就没有质量;
  • 测试没有做好,软件问题就可能引发灾难或者软件企业带来巨大的损失。
  • 软件测试是质量保证的重要手段之一,是软件开发过程不可缺少的部分。

定义✦

  • 从一个通常是无限的执行域(集合)中选择合适的、有限的的测试用例,对程序所期望的行为进行动态验证的活动过程。
  • 在特定的条件下运行系统或构件,观察或记录结 果,对系统的某个方面做出评价
  • 分析某个软件项以发现现存的和要求的条件之差别(即错误)并评价此软件项的特性
  • 软件测试是由“验证(Verification)”和“有效性 确认(Validation)”活动构成的整体(IEEE1012)
    • “验证”是检 验软件是否已正 确地实现了产品 规格书所定义的 系统功能和特性
    • “有效性确认 ”是确认所开发 的软件是否满足 用户真正需求的 活动。

目的✦

  1. 提高软件的质量;
  2. 保证软件的安全;
  3. 降低软件开发成本;
  4. 降低企业风险;
  5. 提升用户体验感

流程✦

  1. 分析测试需求
  2. 制定测试计划
  3. 设计测试用例
  4. 执行测试
  5. 编写测试报告

分类※

按照测试阶段分类

  • 单元测试:验证软件单元(组件/模块/类/函数)是否符合软件需求与设计,开发人员自测。
  • 冒烟测试/接口测试:软件构建版本建立后,对系统的基本功能进行简单的测试, 这种测试重点验证的是程序的主要功能,而不会对具体功能进行深入测试。
  • 集成测试:冒烟测试之后,将已经测试过的软件单元组合在一起测试它们之间的接口,用于验证软件是否满足设计需求。
  • 系统测试:将经过测试的软件在实际环境中运行,并与其他系统的成分(如数据库、硬件和操作人员等)组合在一起进行测试。
  • 验收测试:主要是对软件产品说明进行验证,逐行逐字的按照说明书的描述对软件产品进行测试,确保其符合客户的各项要求。

按照测试技术分类

  • ★黑盒测试:基于需求的测试方法,把软件(程序)当作一个有输入与输出的黑匣子,它把程序当作一个输入域到输出域的映射,只要输入的数据能输出预期的结果即可,不必关心程序内部是怎么样实现的。

    • 等价类划分法
    • 边界值分析法
    • 判定表方法
    • 因果图法
    • Pairwise方法
    • 正交试验法
    • 功能图法
  • ★白盒测试:结构化测试方法,测试人员了解软件程序的逻辑结构、路径与运行过程,在测试时,按照程序的执行路径 得出结果。白盒测试就是把软件 (程序)当作一个透明的盒子, 测试人员清楚的知道从输入到输出的每一步过程。

    • 语句覆盖
    • 判定覆盖
    • 条件覆盖
    • 判定条件覆盖
    • 条件组合覆盖
    • 基本路径覆盖

按照软件质量特性分类

  • 功能测试:测试软件的功能是否满足客户的需求,包括准确性、易用性、 适合性、互操作性等。
  • 性能测试:测试软件的性能是否满足客户的需求,性能测试包括负载测试、压力测试、兼容性测试、可移植性测试和健壮性测试等。

按照自动化程度分类

  • 手工测试:测试人员一条一条的执行代码完成测试工作。费时费力且很验证保证测试效果。
  • 自动化测试:借助脚本、自动化测试工具等完成相应的测试工作,它也需要人工的参与,但是它可以将要执行的测试代码或流程写成脚本,执行脚本完成整个测试工作。

按照测试项目分类

  • 界面类测试:验证软件界面是否符合客户需求。
  • 安全性测试:试软件在没有授权的内部或外部用户的攻击或恶意破坏时如何进行处理,是否能保证软件与数据的安全。
  • 文档测试:以需求分析、软件设计、用户手册、安装手册为主,主要验证文档说明与实际软件之间是否存在差异。

按照测试时程序是否运行分类★

  • 静态测试

    包括对软件产品的需求和设计规格说明书的评审、对程序代码的审查和静态分析等

  • 动态测试

    • 通过真正运行程序发现错误,通过观察代码运行过程,获取系统行为、变量实时结果、内存、堆栈、线程和调试覆盖度等各方面的信息,以判断系统是否存在问题
    • 通过有效的测试用例和对应的输入/输出关系来分析被测程序的运行情况,以发现缺陷

按测试目的/测试类型分类

  1. 功能测试( Functionality Testing ),也称正确性测试( Correctness Testing ),验证每个功能是否按照事先定义的要求那样正常工作。

  2. 性能测试( Performance Testing ):评测与分析系统在不同负载(如并非用户、连接数、请求数据量等)条件下的系统运行情况、性能指标等。

    ★压力测试( Stress Testing )也可以算性能测试,侧重在高负载、极限负载下的系统运行情况,以发现系统不稳定、系统性能瓶颈、内存泄漏、 CPU 使用率过高等问题。

  3. 安全性测试( Security Testing ):测试系统在应对非授权的内部/外部访问、故意损坏时的系统防护能力。

  4. 兼容性测试( Compatibility Testing ):测试在系统不同运行环境(如网络、硬件、第三方软件等)环境下的实际表现,也包括共存、互操作的验证。

  5. 可靠性测试( Reliability Testing ):检验系统是否能保持长期稳定、正常地运行,如确定正常运行时间,即平均失效时间( Mean Time Between Failures , MTBF )。可靠性测试包括强壮性测试( Robustness Testing )和异常处理测试( Exception Handling Testing )。可恢复性测试( Recovery Testing )也可以归为可靠性测试,侧重在系统崩溃、硬件故障或其他灾难发生之后,重新恢复系统和数据的能力测试。

  6. 易用性测试( Usability Testing ):也称为用户体验测试,检查软件是否容易理解、使用方便和流畅、界面美观、交互友好等。

  7. 回归测试( Regression Testing )★:为保证软件中新的变化(如新增加的代码、代码修改等)不会对原有功能的正常使用有影响而进行的测试。也就是说,满足用户需求的原有功能不应该因为代码变化而出现任何新的问题。

其他分类

  • α测试★:软件上线之前进行的版本测试。由开发人员和测试人员或者用户协助进行测试。测试人员记录使用过程中出现的错误与问题,整个测试过程是可控的。
  • β测试★:软件上线之后进行的版本测试。由用户在使用过程中发现错误与问题并进行记录,然后反馈给开发人员进行修复。
  • γ测试★:伽马测试是终级测试。测试之后,该软件几乎就是上市的最终版本了。此时,不再进行软件的功能开发或改进。在这一阶段唯一可能修改的是限定范围内的代码错误。
  • 回归测试:对修改后的程序重新进行测试确认原有的缺陷已经消除并且没有引入新的缺陷,这个重新测试的过程就叫作回归测试。
  • 随机测试:没有测试用例、检查列表、脚本或指令的测试,它主要是根据测试人员的经验对软件进行功能和性能抽查。

测试和质量保证的关系

软件质量保证

软件质量保证(Software Quality Assurance,SQA)活动是通过对软件产品有计划的进行评审和审计来验证软件是否合乎标准的系统工程,通过协调、审查和跟踪以获取有用信息,形成分析结果以指导软件过程。

关系

  • SQA指导、监督软件测试的计划和执行,督促测试工作 的结果客观、准确和有效,并协助测试流程的改进。
  • 软件测试是SQA重要手段之一,为SQA提供所需的数据, 作为质量评价的客观依据。
  • SQA是一项管理工作,侧重于对流程的评审和监控
  • 测试是一项技术性的工作,侧重对产品进行评估和验证

软件质量

定义

软件质量是指软件产品满足基本需求及隐式需求的程度。

软件产品满足基本需求是指其能满足软件开发时所规定需求的特性,其次是软件产品满足隐式需求的程度。

与缺陷之间的关系

缺陷越多,质量越差,这是对立关系;发现缺陷,及时修复,提高质量,这是统一关系。

产品质量特性

image-20230513213645575

方法

基于输入域的方法

等价类划分法
等价类
  • 某个输入域的一个特定子集合中各个输入数据对于揭露程序中的错误都是等效的
  • 若用这个等价类中的代表值作为测试样例未发现程序错误,那么该类中其它的测试数据也不会发现程序的错误
  • 测试某等价类的代表值等效于对这一类其他值的测试
有效等价类

有效等价类就是有效值的集合,它们是符合程序要求、合理且有意义的输入数据。

无效等价类

无效等价类就是无效值的集合,它们是不符合程序要求、不合理或无意义的输入数据。

划分原则
  1. 如果程序要求输入值是一个 有限区间的值,则可以将输入数据划分为一个有效等价类和两个 无效等价类,有效等价类为指定 的取值区间,两个无效等价类分 别为有限区间两边的值。
  2. 如果程序要求输入的值是一个“必须成立” 的情况,则可以将输入数据划分为一个有效等价类和一个无效等价类。
  3. 如果程序要求输入数据是一组可能的值,或者要求输入值必须符合某个条件,则可以将输入数据划分一个有效等 价类和一个无效等价类。
  4. 如果在某一个等价类中, 每个输入数据在程序中的处理方 式都不相同,则应将该等价类划 分成更小的等价类,并建立等价表。
划分方法
输入数据类型划分等价类规则划分等价类规则
布尔值1个有效等价类:TRUE1个无效等价类:FALSE
连续取值范围1个有效等价类:正确取值范围2个无效等价类:大于和小于取值范围
数据个数1个有效等价类:正确数据个数2个无效等价类:大于和小于数据个数
集合1个有效等价类:正确的集合取值1个或多个无效等价类
需分别处理的输入数据多个有效等价类:每个输入数据为1个等价类1个无效等价类
符合某些规则的输入多个有效等价类:符合某个规则的输入数据为1个等价类若干个无效等价类
  1. 区间

    如果某个输入条件指定了一个连续的有效取值范围,则可以定义一个有效等价 类和两个无效等价类

  2. 数据个数

    如果某个输入条件指定了输入的数据个数约束,则可以定义一个有效等价类和两个无效等价类

  3. 数据长度

  4. 数据类型

例题

三角形问题的等价类划分✦

输入3个正数a、b、 c作为三角形的三条边,判断这3个数构成的是一般三角形、等边三角形、 等腰三角形,还是无法构成三角形。

  1. 等价类表

    image-20230513091319670

  2. 测试用例表

    1. 覆盖有效等价类

      image-20230513091624797

    2. 覆盖无效等价类

      image-20230513091707194

余额宝提现的等价类划分

快速到账可以累积分次提取:快速到 账的日提现金额为10000,表明在一 天之内,只要提现金额没有累积到 10000,则可多次提取,据此,可以 将快速到账细分为第1次提现和第n次 提现,第n次提现的最大金额为 10000减去已经提现的金额。

  1. 等价类表

    image-20230513092044646

  2. 测试用例表

    1. 覆盖有效等价类

      image-20230513092222372

    2. 覆盖无效等价类

      image-20230513092258958

边界值分析法
定义

在边界附近寻找某些点作为测试数据,而不是在等价类内部选择测试数据。

选择测试数据

image-20230513092820815

技巧※

image-20230513093503394

上点:边界上的点(绿色)

离点:离边界最近的点(黄色)

内点:范围内的点(蓝)

  1. 上点:必选(不考虑区间开闭)
  2. 内点:必选(建议选择中间范围)
  3. 离点:开内闭外(考虑开闭区间,开区间选择内部离点,闭区间选择外部离点)
例题
  1. 三角形问题

    输入3个正数a、b、 c作为三角形的三条边,判断这3个数构成的是一般三角形、等边三角形、 等腰三角形,还是无法构成三角形。

    如果要求三角形的边长取值范围为 1~100,则可以使用边界值分析法对 三角形边界边长进行测试,在设计测试用例时,分别选取1、2、50、99、 100五个值作为测试数据。

    测试用例:

    image-20230513093136015

  2. 余额宝提现的等价类划分

    快速到账可以累积分次提取:快速到 账的日提现金额为10000,表明在一 天之内,只要提现金额没有累积到 10000,则可多次提取,据此,可以 将快速到账细分为第1次提现和第n次 提现,第n次提现的最大金额为 10000 减去已经提现的金额。

    假设余额宝中余额为50000

    1. 如果是第一次快速到账提现,则分别对0和10000两个边界值进行测试, 分别取值-1、0、1、5000、9999、 10000、10001七个值作为测试数据。
    2. 如果是第n次提现(假设已提现2000),则分别对0和8000 两个边界值进行测试,分别取值-1、0、1、5000、7999、 8000、8001七个值作为测试数据。
    3. 对于普通到账提现,则对0和50000两个边界值进行测试,分 别取-1、0、1、20000、49999、50000、50001七个值作为 测试数据。

    测试样例

    image-20230513093932332

    image-20230513093943648

    image-20230513093954163

基于组合技术和组合优化的测试方法

基于判定表的测试法
决策表/判定表

实质是一种逻辑表。 它可以把复杂的逻辑关系和多种条件组合的情况表达的既具体又明确,利用决策表可以设计出完整的测试用例集合。

决策表组成
  1. 条件桩:列出问题的所有条件,除了某些问题对条件的先后次序有要求之外,通常决策表中所列条件的先后次序都无关紧要。
  2. 条件项:条件项就是条件桩的所有可能取值。
  3. 动作桩:动作桩就是问题可能采取的操作,这些操作一般没有先后次序之分。
  4. 动作项:指出在条件项的各组取值情况下应采取的动作。
无关条件项

不影响结果取值的原因称为无关条件项,用“-” 表示。忽略无关条件项,可以将多条规则合并。

例题
  1. 三角形问题✦

    1. 题干

      输入3个正数a、b、 c作为三角形的三条边,判断这3个数构成的是一般三角形、等边三角形、 等腰三角形,还是无法构成三角形。

    2. 原因

      1. c1:是否构成三角形
      2. c2:a=b?
      3. c3:b=c?
      4. c4:c=a?
    3. 结果

      1. e1:不构成三角形
      2. e2:一般三角形
      3. e3:等腰三角形
      4. e4:等边三角形
      5. e5:不符合逻辑(如果有两对边相等,但一对边不相等)
    4. 决策表

      image-20230513094733596

    5. 化简后的决策表

      image-20230513094759708

    6. 测试样例

      image-20230513095007024

  2. 工资发放决策表

    1. 题干

      某公司的薪资管理制度如下:员工工资分为年薪制与月薪制两种,员工的错误定位包括普通错误与严重错误两种,如果是年薪制的员工,犯普 通错误扣款2%,犯严重错误扣款4%;如果是月薪制的员工,犯普通错 误扣款4%,犯严重错误扣款8%。该公司编写了一款软件用于员工工资 计算发放,现在要对该软件进行测试。

    2. 原因和结果

      image-20230513100030639

    3. 决策表

      image-20230513100052599

    4. 测试用例

      image-20230513100128696

基于因果图的测试法
定义

因果图使用一些简单的逻辑符号和直 线将程序的因(输入)与果(输出) 连接起来,一般原因用ci表示,结果 用ei表示,ci与ei可以取值“0”或 “1”,其中“0”表示状态不出现, “1”表示状态出现。

原因与结果之间的关系

恒等(等价)关系

image-20230513100802347

若原因出现,则结果出现;若原因不出现,则结果也不出现。

非关系

image-20230513100827583

若原因出现,则结果不出现;若原因不出现,则结果出现。

或关系

image-20230513100912744

若几个原因中有1个出现,则结果出现;若原因都不出现,则结果不出现。

与关系

image-20230513101230298

若几个原因都出现,结果才出现。 若其中有1个原因不出现,则结果不出现。

原因与原因之间的关系

互斥 (E)

image-20230513101433226

表示C1、C2两个原因不会同时成立,两个中最多有一个可能成立。

包含 (I)

image-20230513101547666

表示C1、C2、C3这3个原因中至少有一个必须成立。

唯一 (O)

image-20230513101622314

表示C1和C2当中必须有一个,且仅有一个成立。

要求 (R)

image-20230513101755124

表示当C1出现时,C2必须也出现。C1出现时不可能C2不出现

结果与结果之间的关系

屏蔽 (M)

image-20230513101856056

表示当E1是1时,E2必须是0。而当E1为0时,E2的值不定。

例题
  1. 来源:PPT和实验三

    1. 题干

      当输入第一个字符是‘#’ 或者是‘*’ ,第二个输入字符是数字时,文档将被修改;如果第一个输入字符不是‘#’ 或 ‘*’ ,则输出消息N,如果第二个输入字符不是数字,则输出消息M。

    2. 原因和结果

      编号原因编号结果
      C1第一个输入是‘*’R1修改文件 (为了测试方便,输出‘T’)
      C2第一个输入是‘#’R2输出消息 N
      C3第二个输入是数字R3输出消息 M
    3. 因果图

      image-20230513110330461

    4. 决策表

      123456
      条件C1TFFTFF
      C2FTFFTF
      C3TTTFFF
      结果R1
      R2
      R3
    5. 测试用例

      测试用例编号决策表规则编号测试用例预期执行结果
      11*1T
      22#2T
      33a3N
      44*bM
      55#cM
      66deN和M
  2. 来源:课本P52

    实质上跟上面一样,只是换了种说法,但是书上的答案好像有点问题

Pairwise 方法
定义

PairWise(又称全对偶)策略是组合测试中的一种设计测试用例的方法,可以有效地、合理地减少输入条件的组合数

IPO基本步骤
  1. 选择2个因素,生成一组测试用例集,包含2个因素的所有取值组合;
  2. 在水平方向上扩展,即加入另一个因素,并从中选择一个新的取值,保证覆盖最多的因素成对取值组合;
  3. 如果水平扩展仍然存在没有被覆盖的成对组合,则在垂直方向上扩展,生成新的测试用例
正交实验法

从大量的(实验)数据(测试例)中挑选适量的、有代表 性的点(条件组合),从而合理地安排实验(测试)的一 种科学实验设计方法

image-20230513111724145

基于逻辑覆盖的测试方法

前面的是黑盒测试,这里是白盒测试

语句覆盖

image-20230513142809158

设计尽可能少的测试用例,使得被测模块中每一条语句都至少执行一次。

判定覆盖

image-20230513143032686

判定覆盖(Decision Coverage)又称为分支覆盖,其 原则是设计足够多的测试用例,在测试过程中保证 每个判定至少有一次为真值,有一次为假值

条件覆盖
定义

image-20230513144031510

条件覆盖(Condition Coverage)指的是设计足够多的测试用 例,使判定语句中的每个逻辑条件取真值与取假值至少出现一 次。

测试样例

image-20230513143404114

  • ((a>1)&&(b==0))判定表达式1
    • 条件c1:(a>1)
    • 条件c2:(b==0)
  • ((a==2)||(x>1))判定表达式2
    • 条件c3:(a==2)
    • 条件c4:(x>0)
判定/条件覆盖
定义
  • 设计尽可能少的测试用例,使得每个判定表达式为真和为假的路径都能被执行到,还要求所有条件都取得为真和为假的可能。
  • 要求设计测试用例,同时满足判定覆盖、条件覆盖要求。
技巧

image-20230513144357656

把复合判定表达式降维处理,使得每个流程图中每个判定节点中只包含一个条件。

测试样例
  • 测试数据1,要求(a>1)、(b==0)、 (a==2)和(x>1)同时满足,为此选择测试数据为a=2, b=0, x=5

  • 测试数据2,要求(a≦ 1)、(b≠0)、(a≠2) 和(x≦ 1)同时满足,为此选择测试数 据为a=1, b=1, x=1

    注意每一个条件的否定都要出现过

条件组合覆盖
定义

image-20230513144031510

设计尽可能少的测试用例,使得每个判定表达式中条件的所有可能组合都能被覆盖到。

测试样例
  1. 方案一

    image-20230513145416745

  2. 方案二

    image-20230513145432456

路径覆盖
定义

设计尽可能少的测试用例,使得被测软件模块中所有可能的执行路径都至少被执行一次。

测试样例

image-20230513145519026

独立路径测试

步骤
  1. 根据设计或代码导出程序流程图的拓扑结构-控制流图G;

  2. 计算流图G的圈(环路)复杂度 V(G);

    强连通图的圈 复杂度V(G)即图中独立路径的数量。

  3. 确定只包含独立路径的基本路径集;

  4. 设计测试用例使得集合中每一条独立路径均被执行一次。

圈复杂度计算方法

image-20230513151132182

  1. V(G)=e-n+2

    G为一个有向强连通图,e为图G中的边数,n为图G中的结点数。

  2. 判定节点数+1

    判定节点:出度为2的节点

  3. V(G)=R

    R代表平面被控制流图分割成的区域数

例题

三角形逻辑覆盖问题

  1. 流程图

    image-20230513151342787

  2. 流图

    image-20230513151407625

  3. 测试用例

    判定覆盖,使程序中每个判定语句至少有一次“真”值,至少有一 次“假”值

    image-20230513151506233

软件测试过程模型

V模型

image-20230514095526133

优点

将复杂的测试工作分成了目标明确的小阶段完成,具有阶段性、顺序性和依赖性,它既包含了对于源代码的底层测试也包含了对于软件需求的高层测试。

缺点

只能在编码之后才能开始测试,早期的需求分析等前期工作没 有涵盖其中,因此它不能发现需求分析等早期的错误,这为后期的系统测试、验收测试埋下了隐患。

W模型

image-20230514095830434

优点

测试范围不仅包括程序,还包括需求分析、软件设计等前期工 作,这样有利于尽早全面的发现问题。

缺点

它将软件开发过程分成需求、设计、编码、集成等一系列的串 行活动,无法支持迭代、自发性等需要变更调整的项目。

单元测试

定义

对软件模块的正确性进行分析和检验,测试软件模型的 功能、接口、数据结构、算法、错误处理等方面是否存 在问题。

内容

  • 模块接口测试
  • 局部数据结构测试
  • 路径测试
  • 错误处理测试
  • 边界测试

辅助模块

驱动模块(Driver)

相当于被测模块的主程序。它接收测试数据,把这 些数据传送给被测模块,最后输出实测结果。

桩模块(Stub)

用以代替被测模块调用的子模块。桩模块可以做少量的数据操作,不需要把子模块所有功能都带进来,但不允许什么事情也不做。

JUnit

定义

Junit是一个开放源代码的Java测试框架(单元测试框架体系xUnit的一个实例),用在编写和运行可重复的的测试上

特性

  • 提供了编写测试类的框架,使测试代码的编写更方便
  • 共享测试数据的测试工具
  • 方便地组织和运行测试的测试套件
  • 可以使测试代码与产品代码分开,这更有利于代码的 打包发布和测试代码的管理
  • 易于集成到程序构建过程中,JUnit和Ant的结合还可以实施增量开发。
  • 具有很强的扩展性

集成测试

定义

在单元测试的基础上,需要将所有模块按照设计要求组装成为系统。

这时需要考虑:

  • 穿越模块接口的数据是否会丢失;
  • 一个模块的功能是否会对另一个模块的功能产生不利的影响;
  • 各个子功能组合起来,能否达到预期的父功能;
  • 全局数据结构是否有问题;
  • 单个模块的误差累积起来,是否会放大,从而达到不能接受的程度。
  • 单个模块的错误是否会导致数据库错误。

策略

  • 一次性集成方式
  • 增殖式集成方式
    • 自顶向下增值方式
    • 自底向上增值方式
    • 混合增值方式

系统测试

定义

软件集成测试完成后、得到完整的软件系统时,由测试人员或 质量保证人员对软件进行分析和验证,来确保质量需求(功能、 性能、压力、负载、容错性、兼容性、安全性、可靠性,等等) 的满足情况。

功能测试

image-20230513154958716

回归测试✦

原因

一旦程序某些区域被修改了,就可能影响原来正常工作的区域,导致受影响的区域出现回归缺陷。

回归缺陷

原来正常工作的功能,没有发生需求变化,而由于受其它改动影响而产生的问题。

目的

为了发现回归缺陷而进行的测试。如果没有回归测试,产品就带着回归缺陷被发布出去了,造成严重后果。

策略✦

  1. 再测试全部用例
  2. 基于风险选择测试
  3. 基于操作剖面选择测试
  4. 再测试修改的部分

专项测试

性能测试

定义

发现系统性能问题或获取系统性能相关指标,如响应时间、吞吐量、并发用户数、TPS、点击率、资源利用率等。

分类

  1. 负载测试
  2. 压力测试
  3. 并发测试
  4. 配置测试
  5. 可靠性测试
  6. 容量测试。

流程

image-20230513155805196

常用工具

LoadRunner是一款适用于各种体系架 构的性能测试工具,它能预测系统行为并优化系统性能,其工作原理是通过模 拟一个多用户(虚拟用户)并行工作的 环境来对应用程序进行负载测试

Jmeter是由Apache开发维护一款开源免费的 性能测试工具,Jmeter以Java作为底层支撑 环境,它最初是为测试Web应用程序而设计 的,但后来随着发展逐步扩展到了其他领域。 现在Jmeter可用于静态资源和动态资源的测 试,例如,它可用于模拟服务器、服务器组、 网络或对象上的重负载以测试其强度、分析不同负载类型下的整体性能。

安全性测试

定义

软件安全性测试就是检验系统权限设置有效性、防范非法入侵的能力、数据备份和恢复能力等,设法找出上述各种安全性漏洞。

准则

使非法侵入的代价超过被保护信息的价值,此时非法侵入者已无利可图。

测试方法

  1. 静态的代码分析方法
  2. 动态的渗透测试
  3. 应用程序的安全测试
  4. API安全测试
  5. 配置扫描
  6. 安全审计

常用工具

  1. Web 漏洞扫描工具——AppScan
  2. 端口扫描工具——Nmap
  3. 抓包工具——Fiddler
  4. Web 渗透测试工具——Metasploit

兼容性测试

兼容性测试是在特定的或不同的硬件、网络环境和操作系统平台上、不同的 应用软件之间,验证软件系统能否正常地运行,以及能否正确存取原先版本的用 户数据所进行的测试。

可靠性测试

定义

软件系统在规定的时间内及规定的环境条件下,完成规定(的) 功能的能力

三要素

  1. 规定的时间
  2. 规定的环境条件
  3. 规定的功能

软件本地化测试

软件国际化(SW Internationalization,I18N)

I18N是借助功能设计和代码实现中软件系统有能力 处理多种语言和不同文化,使创建不同语言版本 时,不需要重新编写代码的软件工程方法。

软件本地化(SW Localization,L10N)

image-20230513161950960

L10N是将一个软件产品按特定国家/地区或语言市场的需要进行加工,使之满足特定市场上的用户对语言和文化的特殊要求的软件生产活动。

软件全球化(SW Globalization,G11N)

G11N = I18N + L10N

本地化测试6个方面

  1. 功能性测试,所有基本功能、安装、升级等测试;
  2. 翻译测试,包括语言完整性、术语准确性等的检查;
  3. 可用性测试,包括用户界面、度量衡和时区等;
  4. 兼容性调试,包括硬件兼容性、版本兼容性等测试;
  5. 文化、宗教、喜好等适用性测试
  6. 手册验证,包括联机文件、在线帮助、PDF文件等测试

测试自动化

书上好像把测试自动化与自动化测试混为一谈了…

自动化测试★

自动化测试(automated test)是相对手工测试而存在的一个概念,由手工逐个地运行测试用例的操作过程被测试工具自动执行的过程所代替。

自动化测试流程★

image-20230513162737111

测试自动化与自动化测试

  • 自动化测试焦点集中在测试执行,主要是由测试工具自动地完成测试。
  • 测试自动化指“一切可以由计算机系统自动完成的测试任务都已经由计算机系统或软件工具、程序来承担并自动执行”。强调的范围是整个测试的过程而不仅仅是测试执行过程

目前流行的技术怎么进行测试

如果考就随便在软件测试的类别中选一个熟悉的回答算了

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/523922.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

AMBER分子动力学模拟之TOP准备-- HIV蛋白酶-抑制剂复合物(1)

AMBER分子动力学模拟之TOP准备-- HIV蛋白酶-抑制剂复合物(1) 我们以HIV蛋白酶-抑制剂复合物为例子,跑Amber动力学模拟 下载1phv 从PBD下载文件:https://www.rcsb.org/ PDB文件预处理 我们以 “protein(water) ligandcomplex” 为例来说一下如何处…

系统设计基本原理-耦合与内聚

耦合 耦合是模块之间的相互独立性(互相连接的紧密程度)的度量,耦合取决于各个模块之间接口的复杂程度、调用模块的方式以及通过接口的信息类型等。 耦合类型 无直接耦合:指两个模块之间没有直接的关系,它们分别从属于不同模块的控制与调用&…

k8s基础11——安全控制之RBAC用户授权、RBAC用户组授权、SA程序授权

文章目录 一、K8s安全框架1.1 鉴权1.1.1 HTTPS证书认证1.1.2 HTTP Token认证 1.2 授权1.3 准入控制1.4 集群四大角色 二、RBAC给用户授权(TLS)2.1 签发客户端证书2.2 生成kubeconfig授权文件2.2.1 手动生成2.2.2 脚本生成2.2.3 切换操作集群 2.3 定义RBA…

移动应用开发实验-内容提供者-ContentResolver的使用

文章目录 前言读取通讯录信息要求环境 具体实现主页面布局(activity_main.xml)关于RecyclerView库的相关问题添加RecyclerView库操作 解决报错Item布局(info.xml)添加访问权限编写实体类(ContactInfo.java)编写适配器(MyAdapter.java&#xf…

20 散列表的查找

散列表的查找 简介:散列表(也成哈希表)是一种高效的数据结构,他可以在平均复杂度为O(1)的情况下实现查找、插入和删除操作。 哈希表的基本思想是根据关键字的值来计算其应存储的位置。这个计算过程就是通过哈希函数来实现的。 根…

计算机视觉——day 91基于双网络的鲁棒特征高光谱目标检测(偏门且很水啊)

基于双网络的鲁棒特征高光谱目标检测 I. INTRODUCTIONII. 提出的方法A. 总体框架B.训练集构建C. Dual Networks III. EXPERIMENTSIV. 结论 I. INTRODUCTION 用于高光谱目标检测的深度网络训练通常面临样本有限的问题,在极端情况下,可能只有一个目标样本…

黑盒测试方法

1 等价类划分 1.1 定义 等价类划分法是一种典型的,并且是最基础的黑盒测试用例设计方法。采用等价类划分法时,完全不用考虑程序内部结构,设计测试用例的唯一依据是软件需求规格说明书。 所谓等价类,是输入条件的一个子集合&…

kali整体版本更新方法,为啥更新?

玩过kali都知道,如果不更新版本,那么安装某个软件总是有很多依赖版本问题,解决起来的确麻烦,这篇文章彻底解决这些问题。 1,更新源 国外源与国内源的选择 kali默认配置的是国外源,但国外源的下载速度非常慢…

基于容器和Kubernetes的应用无限扩容

基于应用负载动态管理CPU、内存等资源的使用是云原生架构的最佳实践之一,Kubernetes通过资源请求和限制以及HPA/VPA等机制,为云原生应用资源管理提供了很好的支持。原文: Infinite Scaling with Containers and Kubernetes[1] 如果没有足够资源让容器完成…

matlab第八章_Simulink简介

目录 Simulink简介 基本知识 Simulink组成 模块库简介 Simulink系统仿真 Stateflow建模与应用 Stateflow的定义 状态图编辑器 Stateflow流程图 Simulink简介 基本知识 Simulink是实现动态系统建模,仿真和分析的软件包,被广泛应用于线性系统&…

土地报征简介

报征概念: 土地报征是指国家为了人民整体利益出发,根据我国相关法律和法规的要求和流程, 将集体土地性质转化为国有土地性质,并给予被征地的对象给予合理的补偿和安置工作。报征4个价段: 1、组卷阶段 (1&…

Linux系统之top命令的基本使用

Linux系统之top命令的基本使用 一、top命令介绍二、检查本地环境1. 检查操作系统版本2. 检查系统内核版本 三、top命令的使用帮助1. top命令的选项2. top命令的交换命令 四、top显示信息解释1. top的第一行解释2. top的第二、三行信息解释3. top的第四、五行信息解释4. top的进…

Java 常用注解的使用

在Java中,注解(Annotation)是一种元数据,它提供了一种机制,可以将元数据与代码一起存储,并使其可用于编译器、解释器或其他工具的处理。注解可以在Java源代码中添加元数据,以提供更多的信息&…

【Linux】Linux基本指令(3)

一.时间的相关指令 date显示 单纯的输入 date 会以这种形式输出: 但其实这种形式我们看着是不太习惯的,我们可以指定形式输出: 格式为:date 选项 %H : 小时(00..23) %M : 分钟(00..59) %S : 秒(00..61) %X : 相当于 %H:%M:%S %d …

Qt扫盲-QPieSlice理论总结

QPieSlice理论总结 一、概述二、标签三、属性设置四、信号说明 一、概述 QPieSlice 类表示饼图中的单个QPieSlice。饼图QPieSlice有一个值和一个标签。将QPieSlice添加到饼图时,QPieSeries对象将自动计算QPieSlice的百分比,并与序列中所有QPieSlice的总…

Java SE(十一)之包装类(各种类型之间的转换)

文章目录 Object类 &Number类1.Object2.Number类 包装类,装箱,拆箱1.手动装箱/拆箱2.自动装箱/ 拆箱 应用——常见包装类1.Integer类2.Character类3.实战——各种类型之间的转换(1)int和Integer相互转换(2&#xf…

20230514-SmartChat测试效果图

E:\20230514-SmartChat测试效果图您好,我是SmartChat,新生代智能机器人,通过运用自然语言处理、机器学习和人工智能等高精尖技术,可以与您进行自然、流畅、有趣的对话,帮助您获取所需的信息和服务。无论您想要写商业计…

如何提高跨职能团队的绩效和成果

在50年代,当计算机仍被视为复杂的计算器时,西北互助人寿保险公司就计算机对未来业务的影响进行了研究。有趣的是,该公司的首席执行官为这项研究设立了一个不同寻常的团队——由来自多个部门的员工组成,每个人都看到了计算机在保险…

redis批处理任务,多线程 or pipeline

前言 工作中使用redis的时候遇到一个问题,如果我们要对存储在redis中的一批数据进行操作,为了加快处理的速度,我们一般有两种方式: 建立多个线程,使用多个连接发送请求使用redis提供的pipeline 引发了一个小思考&…

股票量价关系基础知识9----图解各阶段量价关系:价平量平

价平量平是指股价涨跌幅度不大,成交量持平,反映多空双方受不明朗因素困扰,均对后市走势持观望态度,投资者在此阶段不宜盲目入市,但具体到某一阶段又略有差异。 一、上涨初期的价平量平 (一)形态…