ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

软件测试基础知识

2022-07-04 17:02:52  阅读:175  来源: 互联网

标签:是否 Testing 用户 基础知识 Beta 测试 软件 软件测试


软件测试的定义(Software Testing)

官方释义:

  • a.用来促进鉴定软件的正确性、完整性、安全性和质量的过程;
  • b.是一种实际输出与预期输出间的审核或者比较过程;
  • c.使用人工和自动手段来运行或测试某个系统的过程,其目的在于检验它是否满足规定的需求或是弄清预期结果与实际结果之间的差别;

理解:

在规定的条件下对程序进行操作,以发现程序的错误,衡量软件质量,并对其是否能满足设计要求进行评估的过程。

  1. 规定条件 --> 测试用例
  2. 发现程序的错误 --> 找bug
  3. 衡量软件质量 --> 根据各项指标评估软件的质量
  4. 满足设计要求 --> 是否满足用户需求、需求规格说明书、概要设计、软件设计等

软件测试的分类

  • 开发阶段来分:单元测试、集成测试、系统测试、验收测试。
  • 按是否手工执行划分:手工测试、自动化测试。
  • 测试技术来分:白盒测试、黑盒测试、灰盒测试。
  • 按是否运行划分:静态测试、动态测试。
  • 测试的实施单位来分:开发方测试、用户测试、第三方测试。

1.1、单元测试(Unit Testing)

又称模块测试。对软件的组成单位进行测试,其目的是检验软件基本组成单位的正确性。测试的对象是软件测试的最小单位:模块。【例如:登录测试】

1.2、集成测试(Integration Testing)

集成测试也称联合测试(联调)、组装测试:将程序模块采用适当的集成策略组装起来,对系统的接口及集成后的功能进行正确性检测的测试工作。集成主要目的是检查软件单位之间的接口是否正确。【例如:京东购物用微信支付】

1.3、系统测试(System Testing)

将软件系统看成是一个系统的测试。包括对功能、性能以及软件所运行的软硬件环境进行测试。时间大部分在系统测试执行阶段,包括回归测试和冒烟测试。【例如:房子能不能住人(功能) 房子抗不抗台风(性能);QQ能不能注册,能不能登录,能不能聊天发消息(功能) 人数太多会不会卡顿(性能)】

系统测试如何开展?

需求评审(功能需求、性能需求、接口需求) - 测试计划 - 测试用例 - 用例评审 - 测试环境搭建(平台、架构、web服务器、数据库) - 执行用例 - 提交问题 - 缺陷的跟踪和回归测试 - 测试报告

1.4、验收测试(Acceptance Testing)

是部署软件前的最后一个测试操作。它是技术测试的最后一个阶段,也称为交付测试。向软件购买者展示该软件系统满足原始需求。

实施验收测试的策略有三种:

  • 正式验收测试
  • 非正式验收测试或α测试
  • β测试

α测试和β测试

α测试是指软件开发公司组织内部人员模拟各类用户对即将面市软件产品(称为α版本)进行测试,试图发现错误并修正。α测试的关键在于尽可能逼真地模拟实际运行环境和用户对软件产品的操作并尽最大努力涵盖所有可能的用户操作方式。

经过α测试调整的软件产品称为β版本。β测试是指软件开发公司组织各方面的典型用户在日常工作中实际使用β版本,并要求用户报告异常情况、提出批评意见

2.1、手工测试(Manual Testing)

手工测试是由人一个一个的输入用例,然后观察结果,和机器测试(指使用机器去测试,例如:手机、电脑)相对应,属于比较原始但是必须的一种。

2.2、自动化测试(Automation Testing)

所谓自动化测试,就是在预设条件下运行系统或应用程序,评估运行结果。(预先条件包括:正常条件和异常条件)。简单来说,自动化测试就是把人为驱动的测试行为,转化为机器执行的一种过程。

3.1、黑色测试(Black-Box Testing)

黑盒测试也是功能测试,测试中把被测的软件当做一个黑盒子,不关心盒子的内部结构是什么,只关心软件的输入数据和输出数据。因此黑盒测试又叫功能测试数据驱动测试

黑盒测试方法包括:等价类划分、边界值分析、因果图分析、错误推测法、功能图分析等。

3.2、白盒测试(White-Box Testing)

白盒测试又称结构测试、透明盒测试、逻辑驱动测试或基于代码的测试。白盒测试是指打开盒子,去研究里面的源代码和程序结果。因此白盒测试又称为结构测试逻辑驱动测试。

白盒测试方法包括:语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、条件组合覆盖、路径覆盖等。

3.3、灰盒测试(Gray-Box Testing)

灰盒测试是介于白盒测试和黑盒测试之间的一种,灰盒测试多用于集成测试阶段,不仅关注输入、输出的正确性,同时也关注程序内部的情况。

4.1、静态测试(Static Testing)

静态方法是指不运行被测程序本身,仅通过分析或检查源程序的语法、结构、过程、接口等来检查程序的正确性,对需求规格说明书、软件设计说明书、源程序做结构分析、流程图分析、符号执行来找错。【静态测试属于白盒测试】

4.2、动态测试(Dynamic Testing)

动态测试是指通过运行被测程序,检查运行结果与预期结果的差异。【黑盒测试属于动态测试】

5.1非功能测试

性能测试(Performance Testing)

检查系统是否满足需求规格说明书中规定的性能。

通常表现在以下方面:

稳定性【例如:一万人的时候和十万人的时候,甚至一百万的时候系统会不会卡顿】

响应时间【例如:等待相应的时间是否过慢】

吞吐量(TPS)

安全测试(Safety Testing)

安全测试是一个相对独立的领域,需要更多的专业知识。

如:WEB的安全测试、需要熟悉各种网络协议、防火墙、CDN、熟悉各种操作系统的漏洞、熟悉路由器等。

兼容性测试(Compatibility Testing)

兼容性测试主要指软件之间能否很好的运作,会不会有影响、软件和硬件之间能否发挥很好的效率工作,会不会影响导致系统的崩溃。

  • 平台测试【例如:各种不同品牌型号、不同操作系统(如:android、iOS)的手机是否兼容】
  • 浏览器测试【例如:不同浏览器兼容性测试(火狐、谷歌、360等)】
  • 软件本身是否向前或向后兼容【例如:本版本和上一版本是否兼容】
  • 测试软件是否与其他相关软件兼容【例如:同时下载两款软件是否都能正常使用】
  • 数据兼容性测试【数据之间有一定的隔离性,两个软件里面的数据不会串、相互隔离、兼容】

文档测试(Document Testing)

  • 开发文件:可行性研究报告、软件需求说明书、数据要求说明书、概要设计说明书、详细设计说明书、数据库设计说明书、模块开发卷宗。
  • 用户文件:用户手册、操作手册,用户文档的作用:改善易安装性;改善软件的易学性与易用性;改善软件可靠性;降低技术支持成本。
  • 管理文件:项目开发计划、测试计划、测试分析报告、开发进度月报、项目开发总结报告。

在实际的测试中,最常见的就是用户文件的测试,例如:用户操作说明书等。

文档测试关注的点:

  • 文档的术语
  • 文档的正确性
  • 文档的完整性
  • 文档的一致性
  • 文档的易用性

易用性(用户体验性测试)(User Ability Testing)

易用性是交互的适应性、功能性和有效性的集中体现。又叫用户体验测试。

界面测试(User Interface Testing)

界面测试(简称UI测试),测试用户界面的功能模块的布局是否合理、整体风格是否一致、各个控件的放置位置是否符合客户使用习惯,此外还要测试界面操作便捷性、导航简单易懂性,页面元素的可用性,界面中文字是否正确,命名是否统一,页面是否美观,文字、图片组合是否完美等。

安装测试(Installation Testing)

安装测试是指:测试程序的安装、卸载。最经典的就是APP的安装、卸载。

5.2功能测试(Functional Testing)

功能测试就是对产品的各功能进行验证,根据功能测试用例,逐项测试,检查产品是否达到用户要求的功能。也是黑盒测试,测试中把被测的软件当做一个黑盒子,不关心盒子的内部结构是什么,只关心软件的输入数据和输出数据。

6.1、α测试(Alpha Testing)

由用户在开发者的场所进行,并且在开发者对用户的“指导”下进行测试。开发者负责记录发现在错误和使用中遇到的问题。总之,Alpha测试是在受控的环境中进行的。

6.2、β测试(Beta Testing)

由软件的最终用户们在一个或多个客房场所进行。与Alpha测试不同,开发者通常不在Beta测试的现场,因Beta测试是软件在开发者不能控制的环境中的“真实”应用。用户Beta测试过程中遇到的一切问题(真实在或想像的),并且定期把这些问题报告给开发者。接收到在Beta测试期间报告的问题之后,开发者对软件产品进行必要的修改,并准备向全体客户发布最终的软件产品。

α测试与β测试区别:

测试的场所不同:Alpha测试是指把用户请到开发方的场所来测试,Beta测试是指在一个或多个用户的场所进行的测试。【例如:游戏内测版本】

Alpha测试的环境是受开发方控制的,用户的数量相对比较少,时间比较集中。

Beta测试的环境是不受开发方控制的,用户数量相对比较多,时间不集中。

Alpha测试先于Beta测试执行。通用的软件产品需要较大规模的Beta测试,测试周期比较长。

6.3、第三方测试(Third-party Testing)

介于开发方和用户之前的测试组织。【例如:众测网】

其他测试

冒烟测试

可以根据其名称理解为该种测试耗时短,仅用一袋烟功夫足够了;其实是对软件基本的功能进行测试,测试的对象是每一个新编译的需要正式测试的软件版本,目的是确认软件基本的功能正常,保证软件系统能跑的起来,可以进行后续的正式测试工作。

回归测试

是指修改了旧代码后,重新进行测试以确认修改没有引入新的错误或导致其他代码产生错误,回归测试的困难在于不好确定哪些内容应当被重新测试。

软件测试的目的

软件测试的目的在于发现错误;一个好的测试用例在于发现从前未发现的错误;一个成功的测试是发现了从前未发现的错误的测试。

  • 确认软件的质量,其一方面是确认软件做了你所期望做的事情,另一 方面是确认软件以正确的方式来做了这个事情。
  • 提供信息,比如提供给开发人员或程序经理的回馈信息,为风险评估所准备的信息。
  • 保证整个软件开发过程是高质量的。

 

标签:是否,Testing,用户,基础知识,Beta,测试,软件,软件测试
来源: https://www.cnblogs.com/test-shirley/p/16443563.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有