测试开发常用知识点

测试基础知识

什么是软件测试,软件测试的目的是什么?

为了发现程序中的错误而执行程序的过程就是软件测试。

软件测试的目的是按照软件需求,找出软件中存在的错误,发现软件的缺陷,帮助改进软件。

为什么选择测试

无论在哪个行业,产品的质量是第一位的,测试工程师的主要工作就是发现程序中的错误,撰写测试报告,进而保证产品质量。因此测试工程师这一岗位一定是不可或缺的。
要想做好测试的工作,非常需要耐心和细心两个品质,并且需要发散的思维去对测试对象进行“破坏”。我相信我能够胜任测试的工作。

软件测试的流程

  • 测试需求分析阶段:阅读需求,理解需求,分析需求点,参与需求评审会议
  • 测试计划阶段:参考软件需求编写测试计划,内容包括测试范围(来自需求文档),进度安排,人力物力的分配,整体测试策略的制定。
  • 测试设计阶段:参考需求文档编写测试用例,用例编写完成之后会进行评审。
  • 测试执行阶段:搭建测试环境,执行测试,bug管理直到测试结束
  • 测试评估阶段:出测试报告,确认是否可以上线

常见的测试模型

V模型
在这里插入图片描述

W模型
在这里插入图片描述

测试方法分类

按测试阶段划分

  • 单元测试:单元测试属于白盒测试,单元测试是最微小规模的测试,是对软件中的单元模块进行测试,测试的是某个功能或代码块。
  • 集成测试:集成测试属于灰盒测试,集成测试又称为组装测试,就是在单元测试的基础上,对单元模块之间的接口进行测试。
  • 系统测试:系统测试属于黑盒测试,主要测试系统是否符合需求,包括对功能、性能,以及软件所运行的软硬件环境进行测试。
  • 验收测试:验收测试是基于客户或最终用户的规格书的最终测试,或基于用户一段时间的使用后,看软件是否满足客户要求。一般从功能、用户界面、性能、业务关联性进行测试。
  • 回归测试:回归测试是指在发生修改之后重新测试先前的测试以保证修改的正确性。理论上,软件产生新版本,都需要进行回归测试,验证以前发现和修复的错误是否在新软件版本上再次出现。

验收测试中的测试方法

  • α测试:在软件发布前,由开发机构人员来模拟潜在用户开展的测试,则称为α测试。
  • β测试:软件的早期版本被发布给具有代表性用户群来测试,称为β测试

按是否查看程序内部结构划分

  • 白盒测试:对软件内部的逻辑结构进行详细检查,对程序的所有逻辑进行测试。
  • 黑盒测试:把测试对象看成一个黑盒子,不需要考虑程序内部的逻辑结构,只需要依照程序的需求规格说明书,检查程序功能是否能够实现即可。黑盒测试又分为功能测试和性能测试。功能测试检查实际软件的功能是否符合用户的需求。包括逻辑功能测试、界面测试、易用性测试和兼容性测试。性能测试主要有时间性能和空间性能两种。其中,时间性能主要指软件的一个具体事务的响应时间,而空间性能主要指软件运行时所消耗的系统资源。
  • 灰盒测试:是介于白盒测试和黑盒测试之间的一种测试,不仅关注输出输入情况,也关注程序内部的逻辑。

功能测试中的测试方法

  • 冒烟测试:对软件基本功能的测试
  • 兼容性测试:兼容测试主要是检查软件在不同的平台上是否可以正常的运行,即是通常说的软件的可移植性。兼容性测试属于非功能性测试,我们拿到一个产品时,应优先保证功能性测试的验证,再去兼顾其它非功能性测试。

性能测试中的测试方法

  • 负载测试:负载测试是通过改变系统负载方式、逐渐增加负载等来发现系统中所存在的性能问题。负载测试是一种测试方法,可以为性能测试、压力测试所采用。

  • 压力测试:压力测试通常是在高负载情况下来对系统的稳定性进行测试,更有效地发现系统稳定性的隐患和系统在负载峰值的条件下功能隐患等。

按是否运行程序划分

  • 静态测试:静态测试指测试不运行的部分,只是静态地检查程序代码、界面或文档可能存在的错误的过程。例如测试产品说明书,对此进行检查和审阅.。
  • 动态测试:动态测试是指通过运行软件来检验软件的动态行为和运行结果的正确性。具体操作就是输入相应的测试数据,检查输出结果和预期结果是否相符的过程。

按测试执行方式划分

  • 手动测试:人工执行测试
  • 自动化测试:软件测试自动化,目的是节省人力、时间或硬件资源,提高测试效率

黑盒测试中测试用例的设计方法有哪些

有基于需求的设计方法、等价类划分、边界值分析、因果图、判定表、正交表、场景法。

基于需求的设计方法:

  • 定义:依据客户需求设计测试用例,但是在设计的过程中一定要辩证的看待需求(即:需求不一定都是正确的)

等价类划分法

  • 定义:依据需求将输入划分为若干等价类,从等价类中选定一个测试用例,如果该测试用例通过,则表明整个等价类通过测试。
  • 适用场景:对于等价类这个方法,一般适用于有无限多种输入,我们不可能完成穷举测试,等价类可以使我们用较少的测试用例尽可能多的将功能覆盖。
  • 一般划分为:有效等价类、无效等价类。有效等价类:有意义的输入构成的集合,对于需求规格说明书是合法的;无效等价类:不满足需求的集合。

边界值分析法

  • 定义:边界值法是对输入数据的边界测试,一般来说边界值法是对等价类划分后的补充。

例:对于设定密码的测试,要求密码必须为6-15位
分析过程:有效等价类为>=6 && <=15 无效等价类为:<6 || >15
设定边界值:5、6、10、15、16

解释:
A. 6和15作为有效等价类中的内容,又是边界值,可以判定有效等价类的内容是否满足要求
B. 但是6和15又很特殊,它不仅代表了有效等价类,还代表了边界值,所以我们选定一个普通的有效等价类作为一个测试用例,如:10
C. 5和16作为无效等价类中的内容,又是边界值(比4或者17更具有代表性),可以判定无效等价类的内容

白盒测试中测试用例的设计方法有哪些?

有逻辑覆盖法和基本路径法,其中逻辑覆盖法分为:语句覆盖、判定覆盖、条件覆盖、判定-条件覆盖、条件组合覆盖与路径覆盖。

  • 语句覆盖:在测试时,首先设计若干个测试用例,然后运行被测程序,使程序中的每个可执行语句至少执行一次。
  • 判定覆盖法:在测试时,首先设计若干个测试用例,然后运行被测程序,使得程序中的每个判断的取真分支和取假分支至少经历一次,即判断的真假值均曾被满足。
  • 条件覆盖法:在测试时,首先设计若干个测试用例,然后运行被测程序,要使每个判断中每个条件的可能取值至少满足一次。
  • 判定条件覆盖法:在测试时,首先设计若干个测试用例,然后运行被测程序,使得判断中每个条件的所有可能至少出现一次,并且每个判断本身的判定结果至少出现一次。
  • 路径覆盖法:在测试时,首先设计若干个测试用例,然后运行被测程序,要求覆盖程序中所有可能的路径。

从哪几个维度设计测试用例?

功能,性能,界面,安全,兼容性,网络,专项测试

什么是测试用例?什么是测试脚本?两者的关系是什么?

  • 测试用例是为实施测试而向被测试系统提供的输入数据、操作或各种环境设置以及期望结果的一个特定的集合。
  • 测试脚本是为了进行自动化测试而编写的脚本。
  • 测试脚本的编写必须对应相应的测试用例。

自动化测试的优缺点

  • 优点: 自动化测试,可以很好的进行回归测试,自动化测试,能够解决手动测试一些难以测试的场景 自动化测试,可以解决一些复杂的业务逻辑。
  • 缺点: 不能完全代替手工测试, 自动化测试的脚本的编写和维护比较困难,对于质量比较低的代码,不适合做自动化。 对于需求变更频繁的项目,项目周期比较短的项目也不适合做自动化。

一条bug记录应该包括哪些内容?

bug编号;
bug优先级;
bug出现的环境(如测试环境、生产环境);
bug产生的模块;
bug详细现象描述,如使用截图、录像等进行描述;
bug详细复现步骤。

测试用例设计

如何测试App

  • 功能:根据产品的需求文档,针对性地进行测试;
  • 性能:App最大支持的用户并发数量。
  • 安全:对app的登录界面进行测试,查看敏感信息是否加密。
  • 兼容:测试不同操作系统(android、ios等,每个还包含多个版本)、不同厂家手机(华为、小米和苹果等)、不同屏幕尺寸的兼容性;新功能在App的旧版本上进行测试。
  • 网络:断网或弱网或切换网络环境进行测试。
  • 专项测试:异常场景测试(前后台切换、来电、短信、关机、重启)、App的安装与卸载测试。

如何测试Web

  • 功能:根据产品的需求文档,针对性地进行测试;
  • 性能:Web响应时间测试;某个时刻同时访问Web系统的最大用户数量测试
  • 界面:Web导航是否直观,风格是否符合大众审美
  • 安全:查看用户登录的功能是否安全
  • 兼容:测试不同操作系统(比如windows、MAC和linux等,每个还包含多个版本)、不同浏览器(比如IE、chrome和firefox等)、不同分辨率的兼容性

App测试和Web测试的区别

  • 架构:web 项目 ,一般都是b/s架构,基于浏览器的。App则是C/S的,必须要有 客户端 。那么在系统测试测试的时候就会产生区别。
    首先从系统架构来看的话,Web测试只要更新了服务器端, 客户端 就会同步会更新。而且 客户端 是可以保证每一个用户的 客户端 完全一致的。但是App端是不能够保证完全一致的,除非用户更新 客户端 。如果是App下修改了服务端,意味着 客户端 用户所使用的核心版本都需要进行回归测试一遍。
  • 性能:Web页面关注响应时间。App还需要关心流量、电量、CPU、GPU、Memory等。
  • 兼容性:Web是基于浏览器的,而浏览器的兼容一般选择不同的浏览器内核进行测试(IE、chrome、Firefox)。App的测试则必须依赖手机或者是平板,需要考虑分辨率,屏幕尺寸,设备系统的兼容性。
  • 专项测试:相比较Web测试,App多了一些专项测试。比如异常场景测试(中断、来电、短信、关机、重启)、弱网测试(弱网、网络切换)、安装、卸载测试。

App测试和小程序测试的区别

  • 下载渠道及安装卸载不同
    小程序: 主要通过扫二维码、用户分享推荐、搜索小程序等获取;并且不需下载安装,清除时直接删除小程序
    APP: 需要去应用市场下载;并且安装后才能使用,清除时需卸载
  • 开发周期及发布审核不同
    小程序:一个版本可兼容不同的手机平台,小程序的开发周期约2周;发布审核时周期较短
    APP: 支持的android和ios平台需分别开发,周期较长大约3个月;且在各大应用商店发布的审核周期也较长
  • 登录权限不同
    小程序:一般授权微信登录,无需注册;例如微信未授权/授权登录程序,同一微信号不同手机登录查看数据是否同步显示;
    APP:需要注册登录系统,权限方面需要考虑是否可以访问手机通讯录、相册、相机等权限;
  • 兼容性测试不同:
    小程序:基于不同的公众平台,比如微信,主要兼容不同的微信版本
    APP:考虑不同机型的兼容,不仅要看分辨率,屏幕尺寸,还要看操作系统

如何测试一个登录窗口

  • 功能:1. 什么都不输入,点击登录,查看提示信息;2. 输入正确的用户名及密码,点击登录,查看提示信息;3. 输入错误的用户名或错误的密码,点击登录,查看提示信息;4. 若登录成功,查看是否能跳转到正确的界面;5. 输入过短或过长的用户名,查看提示信息;6. 输入过短或过长的密码,查看提示信息;7. 用户名或密码输入不允许输入的字符,点击登录,查看提示信息;8. 输入密码时,切换大小写,查看是否有大小写提示信息。9. 记住用户名的功能
  • 性能:模拟大量用户同时登录,检查一定压力下能否正常登录跳转
  • 界面:用户名输入框与密码输入框布局是否合理,按钮大小是否合理。
  • 安全:用户名和密码的输入框,应该屏蔽SQL注入攻击,禁止输入脚本(防止XSS攻击);密码输入次数是否有上限,达到上限次数后,是否有冷却期;同一用户是否可以在多台计算机上登录
  • 兼容:1. 若登录界面是web端,则测试此登录窗口在不同的浏览器中能否正常工作;2. 若登录界面是客户端,则测试此客户端在不同操作系统中能否正常使用;3. 若登录界面是移动端app,则测试此app能否在不同系统的设备中使用。

如何测试搜索框

  • 功能:搜索内容为空,查看提示信息;搜索内容为空格,查看提示信息;输入超长字符串,查看提示信息,验证系统是否会截取允许最大长度来进行搜索;输入合法长度字符串后,加空格验证搜索结果;是否支持回车搜索;输入敏感词汇后,是否提示用户无权限搜索;是否有搜索历史
  • 性能:搜索页面的打开速度是否满足设计要求
  • 界面:搜索框UI以及按钮布局是否合理美观
  • 安全:应该屏蔽SQL注入;应该禁止输入脚本;禁止搜索敏感内容
  • 兼容:1. 若搜索框是web端,则测试此登录窗口在不同的浏览器中能否正常工作;2. 若搜索框是客户端,则测试此客户端在不同操作系统中能否正常使用;3. 若搜索框是移动端app,则测试此app能否在不同系统的设备中使用。

手机扫描二维码如何测试

二维码基础知识:二维码本身就是一个URL,只是通过QR码的形式把URL和用户身份信息转换成二进制的0和1,二维码中黑色的色素块代表1,白色的色素块代表0,我们通过相机扫码,就获取了二维码中的URL

  • 功能:扫描成功是否有提示;扫描失败是否有提示;只扫描一半二维码是否能够扫描成功;打开扫描功能一段时间后没有扫描任何二维码,是否有提示用户或自动退出扫描功能;是否支持相册获取二维码;当扫描不是二维码时提示是否正确;同时扫描多个二维码
  • 性能:扫描二维码后的响应时间;
  • 界面:界面的按钮与文字说明是否清晰正确;界面设计风格是否符合大众审美
  • 安全:扫码是否会泄露用户敏感信息
  • 兼容:使用不同操作系统的手机扫码;使用不同品牌的手机扫码
  • 网络:断网扫码;弱网扫码
  • 专项:扫描二维码过程中的中断测试(前后台切换、来电、短信、关机等)

如何测试杯子

  • 功能:杯子漏不漏水;用户喝水方不方便;
  • 性能:检查杯子从不同高度落下后的损坏程度;将杯子装满水,24小时后检查泄露情况;
  • 界面:杯子外观是否符合大众审美
  • 安全:检查杯子自身细菌是否超标,是否会对用户健康造成影响;杯子是否有防滑措施
  • 兼容:检查杯子在不同温度下的使用情况;杯子是否可以装多种液体。
  • 1
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

吮指原味张

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值