软件测试 - 测试基础理论

1 软件测试定义和目的

软件测试是在规定的条件下对程序进行操作以发现程序错误、衡量程序质量并对其是否能够满足设计要求进行评估。简单来讲软件测试就是一种实际输出和预期输出之间的比较过程。

软件测试的目的就是用最少的人力、物力等资源找到软件中的问题进行评估从而降低商业风险。

2 软件测试原则

  • 只能证明软件存在问题,不能证明不存在问题

  • 不能进行穷尽测试,应该分类别进行测试

  • 测试工作要尽早进入,降低修复成本

  • 缺陷存在集群现象,二八原则:20%的模块中存在80%的缺陷

  • 测试依赖环境

    • CS架构

      • 电脑端:windows macos linux
      • 移动端:android ios
    • BS架构

      • IE Chrome Safari Firefox 欧鹏
  • 杀虫剂现象:同一个功能由不同的测试人员进行测试,可能会测出更多的缺陷

  • 不存在缺陷是一个谬论

3 测试策略

  • 冒烟测试

对系统进行基本功能的测试,保证基本的功能和流程能够走通,也称为测试的接受性测试。

  • 回归测试
  • 修复一个缺陷
  • 新版本中新的功能对旧功能有影响

上述两种情况下需要将之前的测试用例在新的代码环境下再次进行测试

  • 随机测试

主要针对被测软件的一些重要功能进行复测,也包括测试那些当前测试用例没有覆盖到的部分

  • 探索性测试

意味着同时设计测试和执行测试。测试人员通过测试来不断学习被测系统。

4 软件测试分类

  • 是否覆盖源代码

    • 黑盒测试:只关注数据的输入和输出,不关注代码内部如何实现
    • 白盒测试:关注代码内部的实现逻辑
    • 灰盒测试:关注数据的输入和输出也关注代码内部的实现逻辑
  • 按照阶段

    • 单元测试

      • 对程序中的单个模块或者功能进行测试,或者是对软件中最小的可测单元进行检查和验证
      • 比如登录功能的一个用户名输入框就是一个小的模块
    • 集成测试

      • 将不同的模块进行组装测试
      • 比如登录功能中涉及到的用户名输入框和密码输入框进行组装测试
    • 系统测试

      • 模拟使用环境对软件进行测试,将整个软件作为一个整体,测试包括软件以及运行的硬件环境
    • 验收测试

      • α测试:内测版本,bug较多,一般开发人员内部使用
      • β测试:公测版本,bug较少,对所有用户开放的测试版本,这一版本通常由软件公司免费发布, 用户可从相关的站点下载,通过一些专业爱好者的测试, 将结果反馈给开发者, 开发者们再进行有针对性的修改
      • γ测试:软件正式版本的候选版本
  • 是否运行

    • 静态测试:主要检查文档中的缺陷

      • 不实际运行被测软件,只是静态地检查程序代码、界面或文档中可能存在的错误过程。
    • 动态测试

      • 是指实际运行被测程序,输入相应的测试数据,检查实际输出结果和预期结果是否相符的过程。
  • 是否是自动化

    • 手工测试
    • 自动化测试

5 软件开发流程 - 瀑布模型

  • 流程

    • 需求分析:对盖房子的图纸进行分析
    • 概要设计:建造房子的整体架构
    • 详细设计:每个房间的详细布置
    • 程序开发:实现上述设计
    • 软件测试:检查是否满足设计要求
    • 软件维护:对房子进行维护和维修
  • 特点

    • 线性模型:每个步骤都只关注自己的工作
    • 文档驱动:每个步骤都有自己的设计文档
  • 优缺点

    • 优点:只需要关注当前进行的阶段
    • 缺点:不响应需求变化,按照线性阶段来分析的话,软件测试在比较靠后的阶段,如果不在需求分析时介入,如果需求分析就错了的话可能会造成一步错步步错然后从头开始的问题
  • 应用场景:

    • 需求清晰的大型项目

6 软件质量模型

  • 功能性:检查业务功能是否满足需求
  • 可靠性:容错能力(恢复正常的时间、能力)
  • 易用性:看的懂、会使用等
  • 效率性:性能(响应时间、消耗的资源(CPU、内存)等)
  • 维护性:为后续功能的开发与维护提供便利
  • 移植性:软件需要在不同的软件环境和硬件环境下都能正常的工作

    下面是配套资料,对于做【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!

软件测试面试小程序
被百万人刷爆的软件测试题库!!!谁用谁知道!!!全网最全面试刷题小程序,手机就可以刷题,地铁上公交上,卷起来!

涵盖以下这些面试题板块:

1、软件测试基础理论 ,2、web,app,接口功能测试 ,3、网络 ,4、数据库 ,5、linux 6、web,app,接口自动化 ,7、性能测试 ,8、编程基础,9、hr面试题 10、开放性测试题,11、安全测试,12、计算机基础

​编辑资料获取方式 :xiaobei_upup,添加时备注“csdn alex”

  • 9
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
软件测试是指对软件的程序、数据和文档进行检查、验证和评估的过程,以确保软件的质量和正确性。软件测试贯穿于整个软件生命周期中,包括需求分析、设计、编码和维护阶段。软件测试的目的是发现软件中的错误和缺陷,并评估和提高软件的质量。 软件测试的充分性准则指出,对于任何软件都存在有限的充分测试集合。如果一个软件系统在一个测试数据集合上的测试是充分的,那么再多测试一些数据也应该是充分的。但即使对软件的所有成分都进行了充分测试,也并不表示整个软件的测试已经充分。同样,即使对软件系统整体的测试是充分的,也并不意味着软件系统中各个成分都已经充分地得到了测试软件测试的充分性与软件的需求和实现都相关,而且软件越复杂,需要的测试数据就越多。然而,进行越多的测试,进一步测试所能得到的充分性增长就越少。 软件测试可以根据不同的分类标准进行分类。其中,单元测试是对软件中的最小可测试单元进行检查和验证的测试,它需要从软件的内部结构出发设计测试用例。多个模块可以独立地进行测试。其他常见的软件测试分类包括集成测试、系统测试、验收测试等。 在软件测试过程中,还有一组测试原则可以参考。这些原则旨在寻找软件的错误和缺陷,评估和提高软件的质量。这些原则包括测试的目标明确、测试应该在代码编写之前开始、测试用例应该覆盖所有可能的情况、测试应该是可重复的、测试应该独立于开发团队、测试应该进行验证和验证等。这些原则有助于确保软件测试的有效性和全面性。<span class="em">1</span><span class="em">2</span><span class="em">3</span><span class="em">4</span>

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值