软件测试必须知道的方法和知识

这篇具有很好参考价值的文章主要介绍了软件测试必须知道的方法和知识。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

“软件测试技术是软件开发过程中的一个重要组成部分,是贯穿整个软件开发生命周期、对软件产品(包括阶段性产品)进行验证和确认的活动过程,其目的是尽快尽早地发现在软件产品中所存在的各种问题——与用户需求、预先定义的不一致性。检查软件产品的bug。写成测试报告,交于开发人员修改。软件测试人员的基本目标是发现软件中的错误。”

软件测试带虚线的v,职场经验,软件测试,IT,单元测试,python,职场和发展,程序人生,自动化测试

01 软件测试步骤

第一步为测试计划。编写测试计划通俗一点讲就是什么人在什么时间做什么事,最后产出什么东西。测试人员要测试哪些模块、在什么期限内,提交哪些文档。

第二步为测试设计与开发。主要是编写测试用例,测试用例就是指导测试的文档,比如我们要测试商城登录、买东西等功能,通过测试方法和策略设计测试用例。评审就是评价审查,不能想当然该怎么测。不能只是输入正确的用户名和密码,能登录进去就完事了。作为软测工程师需要有破坏性,比如密码输错时怎么办,会不会有相应的报错等等。

第三步为执行测试。bug就是缺陷,发现bug之后,要提交给开发人员让他们去修改,然后进行回归测试,验证开发人员有没有改好。

02 软件测试模型-V模型

软件测试带虚线的v,职场经验,软件测试,IT,单元测试,python,职场和发展,程序人生,自动化测试

V模型的阶段包括:需求说明、系统功能设计、概要设计、详细设计、编码、单元测试、集成测试、系统测试、验收测试。

V模型左边表示开发过程中的各阶段,右边表示测试过程中的各阶段

V模型中每个开发阶段对应一个测试阶段

软件测试带虚线的v,职场经验,软件测试,IT,单元测试,python,职场和发展,程序人生,自动化测试

V模型水平虚线上部表明,其需求分析、功能设计和验收测试等主要工作是面向用户,要和用户进行充分的沟通和交流或者是和用户一起完成

V模型水平虚线下部的大部分工作,相对来说,都是技术工作,在开发组织内部进行,由工程师完成

V模型优点

  • 将负责的测试工作按阶段划分为各个小阶段来实现
  • 从多角度测试系统找出更多的缺陷

V模型缺点

  • 软件测试容易误导为软件开发的最后一个阶段
  • 需求、设计阶段产生的问题不能很早发现
  • 质量控制和测试效率无高效发挥

03 软件测试类型

软件测试可以从不同维度进行分类,可以从按照开发阶段划分、按照测试实施组织划分、按照测试技术划分、按照测试执行方式划分、按照测试对象类型划分。

软件测试带虚线的v,职场经验,软件测试,IT,单元测试,python,职场和发展,程序人生,自动化测试

单元测试又称模块测试,是针对软件设计的最小单元(程序模块)进行正确性验证的工作。

单元测试可以作为无错误编码的一种辅助手段,也可以作为规格说明书来工作

单元测试原则

  • 应该尽早地进行软件单元测试
  • 应该保证单元测试的可重复性
  • 尽可能采用测试自动化手段来支持单元测试活动

单元测试包括单元功能测试、单元接口测试、单元局部数据结构测试、单元中重要的执行路径测试、单元的各类错误处理路径测试、单元边界条件测试

集成测试又称组装测试、联合测试、子系统测试或部件测试。集成测试是在单元测试的基础上,将所有模块按照设计要求组成子系统或系统进行的测试活动。

集成测试的目的是要找出在模块接口上面,包括整体系统结构上的问题。

集成策略包括增值策略和非增值策略,其优缺点如下

软件测试带虚线的v,职场经验,软件测试,IT,单元测试,python,职场和发展,程序人生,自动化测试
集成测试包括模块间接口测试、模块间数据传递、全局数据结构测试。

系统测试是对已经集成好的软件系统进行测试,以验证软件系统的正确性和性能等是否满足其规约所指定的要求。
系统测试的目的是在真实系统工作环境下通过与系统的需求定义作比较,检验完整的软件配置项能否和系统正确连接,发现软件与系统设计文档或软件开发合同规定不符合或与之矛盾的地方。并且还要检验系统的文档是否完成、有效。

系统测试一般使用黑盒测试,并由独立的测试人员完成。

系统测试包括从用户角度对系统做功能性的验证和非功能性的验证。

验收测试是在软件产品完成了功能测试和系统测试之后、产品发布前进行的软件测试活动,是技术测试的最后一个阶段,也被称为交付测试、发布测试或确认测试。

验收测试是按照项目任务书或合同、供需双方约定的验收依据文档进行的对整个系统的测试与评审,决定是否接收系统。

验收测试包括易用性测试、兼容性测试、安装测试、文档(如用户手册、操作手册)等内容。

验收测试完成标准

  • 完全执行了验收测试计划中的每个测试用例
  • 在验收测试中发现的错误已经得到修改并且通过了测试
  • 完成软件验收测试报告

验收测试注意事项

  • 必须编写正式的、单独的验收测试计划
  • 验收测试必须在实际用户运行环境中运行
  • 由用户和测试部门共同执行比较好

验收测试包括对整个系统的测试与评审、根据验收通过准则分析测试结果、决定是否接收系统及测试评价。

软件测试带虚线的v,职场经验,软件测试,IT,单元测试,python,职场和发展,程序人生,自动化测试

开发方测试也叫验证测试或者Alpha测试即α测试。开发方通过检测和提供客户证据,证实软件的实现是否满足规定的需要。

开发方测试特点

  • 由公司内部的用户进行的受控测试
  • 证实软件满足规定的需求
  • 注重产品的界面和特色

用户测试也叫Beta测试(即β测试),该测试是在用户的应用环境下,用户通过运行和使用软件,检测与核实该软件实现是否符合自己预期的要求。

用户测试特点

  • 由最终用户在客户场所进行验证
  • 不受开发者控制
  • 注重产品的支持性

第三方测试也称为独立测试,是介于软件开发方和用户之间的测试组织的测试,其目的是为了保证测试工作的客观性,并且尽量多地发现程序中的错误。

第三方测试特点

  • 介于开发方和用户方间的组织的测试
  • 保证测试工作的客观性
  • 评审需求、设计、用户类文档
  • 单元测试、功能测试、性能测试等

软件测试带虚线的v,职场经验,软件测试,IT,单元测试,python,职场和发展,程序人生,自动化测试

黑盒测试也称为功能测试,在测试中把程序看成一个不能打开的黑盒子,在接口处进行测试而不是考虑程序内部结构。

黑盒测试优点

  • 简单,不需要了解程序内部代码及实现
  • 与软件的内部实现无关
  • 从用户角度出发
  • 基于软件开发文档测试,能了解软件实现了文档的哪些功能
  • 做自动化测试方便

黑盒测试缺点

  • 代码覆盖率较低,只有总代码量的30%
  • 自动化测试的复用性较低

黑盒测试主要用于发现以下几类错误

  • 功能不正确或遗漏
  • 界面措施
  • 输入和输出错误
  • 数据库访问错误
  • 性能错误
  • 初始化和终止错误

黑盒测试包括对界面测试、对功能测试、从用户的角度出发。

白盒测试又称为结构测试,把程序看成是装在一个透明的盒子里,能清楚了解程序结构和处理过程。

白盒测试优点

  • 可以检查内存的泄露
  • 检查异常处理分支语句是否正确
  • 执行了多少逻辑,可以作为衡量测试是否完整的一个指标

白盒测试原则

  • 保证一个模块中的所有独立路径至少被测一次

  • 所有逻辑覆盖均需测试真和假两种情况

  • 检查程序的内部数据结构,保证其结构的有效性

  • 在上下边界及可操作范围内运行所有循环

白盒测试包括检查所有的结构及路径是否正确、检查软件内部动作是否按照规定进行。

灰盒测试是一种综合测试法,它将“黑盒”测试与“白盒”测试结合在一起,是基于程序运行时的外部表现又结合内部逻辑结构来设计用例,执行程序并采集路径执行信息和外部用户接口结果的测试技术。

灰盒测试优点

  • 能够进行基于需求的覆盖测试和基于程序路径覆盖的测试
  • 测试结果可以对应到程序内部路径,便于Bug的定位、分析和解决
  • 能够保证设计的黑盒测试用例的完整性,防止遗漏软件的一些不常用的功能或功能组合
  • 能够减轻需求或设计不详细或不完整对测试造成的影响

灰盒测试缺点

  • 投入的时间黑盒测试大概多20%-40%的时间
  • 对测试人员的要求比黑盒测试高
  • 不如白盒测试深入
  • 不适用于简单系统(只有一个模块的系统)

灰盒测试关注输出对于输入的正确性、关注内部表现、介于白盒和黑盒测试之间。

软件测试带虚线的v,职场经验,软件测试,IT,单元测试,python,职场和发展,程序人生,自动化测试

静态测试是指不运行程序,通过人工对程序和文档进行分析与检查。它实际上是对软件中的需求说明书、设计说明书、程序源代码、用户手册等进行非运行的检查。

静态测试方式包括人工进行和借助软件工具自动进行。

静态测试包括代码检查、静态结构分析、代码质量度量。

动态测试通过运行被测程序,检查运行结果与预期结果的差异,并分析运行效率结果与预期的差异,分析运行效率和健壮性等性能。

动态测试包括编写测试用例、执行程序、分析程序输出结果。

静态测试和动态测试的区别

  • 静态测试是用于预防的,动态测试是用于校正
  • 多次的静态测试比动态测试效率要高
  • 静态测试综合测试程序代码
  • 在相当短的时间里,静态测试的覆盖率能达到100%,而动态测试是50%左右
  • 动态测试比静态测试更花时间
  • 静态测试比动态测试更能发现Bug
  • 静态测试的执行可以在程序编码编译前,动态测试只能在编译后才能执行

04 软件测试技术

软件测试技术包括黑盒测试法、白盒测试法。

软件测试带虚线的v,职场经验,软件测试,IT,单元测试,python,职场和发展,程序人生,自动化测试

黑盒测试用例的设计方法包括测试区域确定法、组合覆盖法、逻辑推断法、业务路径覆盖法等。

软件测试带虚线的v,职场经验,软件测试,IT,单元测试,python,职场和发展,程序人生,自动化测试

等价类划分法:该方法把所有可能的输入数据即程序的输入域划分为若干部分(子集),然后从每个子集中选取少数具有代表性的数据作为测试用例。如学生成绩是0-100分,那么0≤X≤100就是有效等价类,X>100和X<0就是两个无效等价类。

边界值分析法:它是对输入或输出的边界值进行测试的一种黑盒测试方法,如重量在10-50kg范围内的包裹,其邮费计算公式为…,作为测试用例,我们应该取10及50,以及10.01、49.99、9.99、50.01等。

组合覆盖市覆盖率很高的一种方法。

因果图法:它适用于描述对于多种输入条件组合的测试方法。

判定表法:是最为严格、最具有逻辑性的测试方法。它能够将复杂问题一一列举出来,简明且避免遗漏,同时能够处理针对不同条件的组合值,进行不同的操作。

大纲法:是着眼于需求的测试方法。

场景分析法:包括四种类型:正常的用例场景、备选的用例场景、异常的用例场景、假定推测的场景。

功能图法:是黑盒白盒混合用例设计方法,包括状态迁移图和逻辑功能模型

软件测试带虚线的v,职场经验,软件测试,IT,单元测试,python,职场和发展,程序人生,自动化测试

白盒测试法包括静态白盒测试、动态白盒测试,静态白盒测试包括代码检查法、静态结构分析法、静态质量度量法,动态白盒测试包括覆盖测试、控制结构测试、其他白盒测试方法等。


资源分享

下方这份完整的软件测试视频学习教程已经上传CSDN官方认证的二维码,朋友们如果需要可以自行免费领取 【保证100%免费】

软件测试带虚线的v,职场经验,软件测试,IT,单元测试,python,职场和发展,程序人生,自动化测试

软件测试带虚线的v,职场经验,软件测试,IT,单元测试,python,职场和发展,程序人生,自动化测试文章来源地址https://www.toymoban.com/news/detail-659406.html

到了这里,关于软件测试必须知道的方法和知识的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 入行软件测试7年,才知道原来字节跳动这么容易进

    当前就业环境,裁员、失业消息满天飞,好像有一份工作就不错了,更别说高薪了。其实这只是一方面,而另一方面,各大企业依然求贤若渴,高技术人才依然紧缺,只要你技术过硬,拿个年薪50w不是问题。 我的人生格言:“ 比你优秀的人不可怕,可怕的是比你优秀的人比

    2024年02月07日
    浏览(36)
  • 掏空腰包,日子难过,机缘转岗软件测试,这100个日夜的心酸只有自己知道...

    我今年27岁,原本从事着土木工程相关的工作,19年开始有了转行的想法... 大学刚毕业那年,我由于学的是土木工程专业,自然而然的从事了和土木工程相关的工作,房贷、车贷,在经济的高压下,当代社会许多年轻人都会有一定的压力,因此在我刚毕业时期,觉得土木行业

    2023年04月25日
    浏览(35)
  • 7个银行的软件测试项目实战,别再说简历项目不知道怎么写了

    目录 前言 项目描述1:上海华瑞银行直连票据项目 项目描述2:平安金服风控中台系统 项目描述3:众安创展APP项目 项 目4: 招商银行VTM自助渠道服务系统 项 目5:招商银行票据支付 项 目6: 平安银行风控系统 项 目7:平安信用卡进件系统 总结 最近很多人都跟我抱怨找不到

    2024年02月06日
    浏览(47)
  • 软件测试-功能测试-知识点

    1.软件测试的分类(重点) 按照是否覆盖源代码 黑、白、灰盒测试; 按照测试阶段 单元、集成、系统、验收测试; 按照是否运行 静态、动态测试; 按照是否自动化 手工、自动化测试; 其他 冒烟、回归、随机、探索; 黑盒测试: 又称功能性测试或行为测试; 关注点在测

    2024年02月02日
    浏览(42)
  • 软件测试基础知识整理(八)- 软件缺陷

    目录 一、软件缺陷 1.1 缺陷定义 1.2 缺陷判定标准 1.3 软件缺陷产生的原因 1.4 软件缺陷产生的根源 1.5 软件缺陷信息  1.5.1 缺陷状态 1.5.2  缺陷严重程度  1.5.3 缺陷优先级 1.6 缺陷报告模板 1.7 缺陷报告注意事项 1.8 缺陷跟踪流程 1.9 缺陷数据分析关注的问题  软件或者程序中

    2024年02月06日
    浏览(52)
  • 软件测试的理论知识

    1.1什么是软件测试? 软件测试是一系列过程活动,包括软件需求分析,测试计划分析,测试用例设计,执行测试用例等。它贯穿于整个软件测试的周期,在软件项目的每个阶段,都需要进不同目的的内容的测试活动,以保证各个阶段的正确性。 1.2为什么要进行软件测试? 假

    2023年04月20日
    浏览(36)
  • 软件测试基础知识

    本人通过在哔哩哔哩学习以下视频,学习过程中自己整理的关于软件测试基础知识的所有笔记,大家可以用作参考! 软件测试基础入门到项目实战 什么是软件:控制计算机硬件工作的工具 软件测试的定义:使用 技术 手段 验证 软件是否满足使用需求 软件测试的目的: 减少

    2024年02月02日
    浏览(34)
  • 软件测试人需要掌握的测试知识架构体系(上)

    软件计划与可行性研究(问题定义、可行性研究);需求分析;软件设计(概要设计、详细设计);编码;软件测试;运行与维护。 一、软件的生命周期(SDLC) 1、生存周期划分 各阶段的任务彼此间尽可能相对独立,同一个阶段各项任务的性质尽可能相同,从而降低每个阶段任

    2024年02月10日
    浏览(32)
  • 【软件测试】基础知识第一篇

    软件测试就是验证软件产品特性是否满足用户的需求 。 那需求又是什么呢?在多数软件公司,会有两种需求,一种是用户需求,一种是软件需求: 用户需求 :可以简单理解为甲方提出的需求,该需求一般比较简略 软件需求 :或者叫功能需求,该需求会详细描述开发人员必

    2023年04月14日
    浏览(51)
  • 软件测试常见基础知识面试题

    为了发现程序中的错误而执行程序的过程 1)需求调查 2)制定初步的项目计划 3)测试准备 4)测试设计 5)测试实施 6)测试评估 单元测试、集成测试、确认测试、系统测试、验收测试 单元测试:是用来对一个模块,一个函数或者一个类来进行正确性检验的测试工作 集成测

    2024年02月12日
    浏览(31)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包