软件测试理论基础集合

什么是软件测试?

软件测试是在规定的条件下对程序进行操作,以发现错误,对软件质量进行评估。

软件测试的目的是什么?

软件测试的目的在于(1)发现软件的缺陷和错误(2)保证软件的质量,确保能够满足用户以及产品的需求。(标重点)软件测试的目的是为了找bug,并不是验证软件没有bug。

白盒测试用例设计常用方法

静态测试:不用运行程序的测试,如文档测试、代码检查等

动态测试:需要执行代码、接口测试、覆盖率分析、性能分析、内存分析等。

逻辑覆盖法:主要包括语句覆盖,判断覆盖,条件覆盖,判断/条件覆盖,条件组合覆盖,路径覆盖等。

六种覆盖标准发现错误的能力由弱到强的变化:

  • 语句覆盖,每条语句至少执行一次。
  • 判断覆盖,每个判断的每个分支至少执行一次。
  • 条件覆盖,每个判段的每个条件应取到的各种可能的值。
  • 判断/条件覆盖,同时满足判断覆盖条件覆盖。
  • 条件组合覆盖,每个判定中各条件的每一种组合至少出现一次。
  • 路径覆盖,使程序中每一条可能的路径至少执行一次。
  • 黑盒测试用例设计常用方法

  • 等价类分类
  • 边界值分析
  • 错误推测法
  • 因果图法
  • 场景法
  • 正交试验设计法
  • 判定表驱动分析法
  • 功能图分析法
  • 列举出你所了解的软件测试方式

  • 按照软件的生命周期划分:单元测试、集成测试、系统测试、回归测试、验收测试
  • 按照测试关注点划分:功能测试、性能测试、稳定性测试、易用性测试、安全性测试。
  • 按照测试实施者划分:开发方测试(α测试)、用户测试(β测试)、第三方测试。
  • 按照技术/测试用例设计划分:白盒测试、黑盒测试、灰盒测试。
  • 按照分析方法划分:静态测试、动态测试。
  • 按照测试执行方式划分:手工测试、自动化测试。
  • 按照测试对象划分:程序测试、文档测试。
  • 什么是单元测试

    完成最小的软件设计单元(模块)的验证工作,确保模块被正确编码。通常情况下是白盒的,对代码风格和规则、程序设计和结构、业务逻辑等进行静态测试,及早发现和解决不易显现的错误。

    单元测试、集成测试、系统测试、验收测试、回归测试这几步最重要的是哪一步?

    这些测试步骤分别在软件开发的不同阶段对软件进行测试,我认为对软件完整功能进行测试的系统测试很重要,因为此时单元测试和集成测试已完成,系统测试能够对软件所有功能进行功能测试,能够覆盖系统所有联合的部件,是针对整个产品系统进行的测试,能够验证系统是否满足需求规格的定义,因此,我认为系统测试很重要。

    集成测试和系统测试的区别,以及应用场景分别是什么?

    区别:

  • 执行顺序:先执行集成测试,待集成测试问题修复后,再做系统测试。
  • 用例粒度:集成测试比系统测试用例更详细,集成测试对于接口部分也要重点写,而系统测试的用例更接近用户接受的测试用例。
  • 应用场景:

  • 集成测试:一般包含接口测试,对程序的提测部分进行测试。测试方法一般选用黑盒测试和白盒测试相结合。
  • 系统测试:针对整个产品的全面测试,既包含各模块的验证性测试和功能性测试,又包含对整个产品的健壮性、安全性、可维护性及各种性能参数的测试。测试方法一般采用黑盒测试法。
  • 测试开发需要哪些知识?具备哪些能力?

    软件测试基础理论知识,如黑盒测试、白盒测试等;

    编程语言基础,如C/C++、java、python等;

    自动化测试工具,如Selenium、Appium等;

    计算机基础知识,如数据库、Linux、计算机 络等;

    测试卡框架,如JUnit、Pytest、Unittest等。

    具备的能力:业务分析能力、缺陷洞察能力、团队协作能力、专业技术能力、逻辑思考能力、问题解决能力、沟通表达能力和宏观把控能力。

    自动化测试的运用场景举例

  • 线上巡检(UI+接口)
  • 简单场景监控
  • 稳定性测试(monkey+遍历测试)
  • 软件测试的核心竞争力是什么?

    早发现问题和发现别人无法发现的问题。

    测试和开发要怎么结合才能使软件的质量得到更好的保障

    测试和开发可以按照V模型或W模型的方式进行结合。但应该按照W模型的方式进行结合比较合理。

    测试过程加在开发过程的后半段,比较被动。

    测试提前,甚至和开发是同步进行,测试不仅是程序,还包括需求和设计。W模型有利于尽早地全面的发现问题,降低软件开发的成本,风险前置。

    怎么实施自动化测试

  • 首先判断项目适不适合进行自动化测试。
  • 对项目做需求分析。
  • 制定测试计划和测试方案。
  • 搭建自动化测试框架。
  • 设计或编写测试用例。
  • 执行自动化测试。
  • 评估。
  • 测试的相关流程

    谈谈对敏捷的理解

    提到敏捷,不得不联想到瀑布开发,瀑布开发按项目为核心,一般都会有一个相对较长的项目周期,一开始把项目设计得大而全,完成项目并交付后,工作重心就会转移到另一个项目去。而敏捷开发是以需求为核心,一开始不会把产品设计得大而全,而是通过快速迭代的方式,不断采集需求,不断更新迭代。敏捷开发的开发周期更短,能够快速试错,快速迭代,敏捷开发比瀑布开发更顺应目前的软件开发趋势。

    敏捷开发也对应着有敏捷测试,测试环节贯穿整个迭代周期,从需求评审到发布上线,都离不开测试快速跟进。测试左移:需求评审、用例设计、自测工具、静态代码扫描等;测试中:业务测试,接口测试,性能测试等;测试右移:稳定性测试,回归测试,灰度测试等

    什么是压力测试?压力测试需要考虑哪些因素?

    压力测试是在高负载情况下,对系统稳定性进行测试。在高负载的情况下,系统出现异常的概率要比正常负载时要高。高负载包含长时间运行、大数据、高并发等情况。

    ? 在做压力测试时,一般要考虑环境因素、性能指标、运行时间等要素。

    压测环境最好和生产环境一致,假如要在生产环境进行压测,需要在凌晨等在线用户量极少的情况下进行。在生产环境测试时要做好数据隔离,生产环境需提供虚拟数据,采用虚拟账 ,避免对真实线上用户造成影响。

    ? 性能指标包括,内存、CPU、TPS、QPS、 络流量、错误统计等,这些指标需要监控。

    压测一般需要运行长时间,最好能够通过长时间的压测,绘制出曲线图,这样更容易观察到性能瓶颈。

    声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

    上一篇 2022年5月20日
    下一篇 2022年5月20日

    相关推荐