测试知识整理

测试流程:

需求分析-->测试设计(测试计划,测试用例)-->执行测试--> 提交BUG-->测试总结

测试过程:

单元测试、集成测试、系统测试、验收测试

单元测试属于白盒测试范畴;集成测试属于灰盒测试范畴;系统测试属于黑盒测试范畴。

设计测试用例的方法:

1.黑盒测试:等价类划分法、边界值分析法、错误推测法、判定表法、正交实验法。

具体可参考 https://blog.csdn.net/guohao_zhang/article/details/80610561

2.白盒测试的手段:强度由低到高:语句覆盖、判定覆盖、条件覆盖、判定条件覆盖、条件组合覆盖、路径覆盖。

(1)语句覆盖:就是设计若干个测试用例,运行被测程序,使得每一可执行语句至少执行一次。

(2)判定覆盖:使设计的测试用例保证程序中每个判断的每个取值分支至少经历一次。

(3)条件覆盖:条件覆盖是指选择足够的测试用例,使得运行这些测试用例时,判定中每个条件的所有可能结果至少出现一次,但未必能覆盖全部分支

(4)判定条件覆盖:判定-条件覆盖就是设计足够的测试用例,使得判断中每个条件的所有可能取值至少执行一次,同时每个判断的所有可能判断结果至少执行,即要求各个判断的所有可能的条件取值组合至少执行一次。

(5)条件组合覆盖:在白盒测试法中,选择足够的测试用例,使所有判定中各条件判断结果的所有组合至少出现一次,满足这种覆盖标准成为条件组合覆盖。

(6)路径覆盖:是每条可能执行到的路径至少执行一次。

具体可参考 https://www.cnblogs.com/wangcp-2014/p/11363407.html

如何测试一个XXX

功能测试,性能测试,安全性测试,可用性测试,界面测试,兼容性测试

如何测试一个Web页面的登录页面 https://www.cnblogs.com/anqieryizhizai/p/8310431.html

两部电梯联动的测试用例 https://blog.csdn.net/qq_30758629/article/details/78795628

测试微信聊天功能 https://blog.csdn.net/liuli1926634636/article/details/100835408

测试百度搜索框 https://blog.csdn.net/weixin_44318102/article/details/105691693

安全测试的几个方面

用户认证安全、系统网络安全、数据库安全

具体可参考 https://blog.csdn.net/u011177782/article/details/9182019?utm_source=blogxgwz7

软件的生命周期
定义:软件从产生到报废的生命周期。
生命周期包括:问题的定义及规划(开发方与需求方讨论)、需求分析、软件设计、软件编码、软件测试(单元测试、集成测试、系统测试、验收测试)、运营维护阶段。(行业性概念)
 软件测试的基本流程
 
开发流程:需求分析--得知功能组成和具体逻辑--编写代码--单元测试--打包提交测试--测试提交bug--修复bug--测试再进行测试--...N轮--版本上线--面向用户使用
测试流程:需求分析+原型图--编写测试用例--评审测试用例--走开发流程,等待开发研发完成,提交测试(酱油期)--测试提交bug-修复bug--测试再进行测试--...N轮--版本上线--面向用户
 
回归测试
回归测试是指修改了旧代码后,重新进行测试以确认修改没有引入新的错误或导致其他代码产生错误。自动回归测试将大幅降低系统测试、维护升级等阶段的成本。回归测试是指重复以前的全部或部分的相同测试。
 
软件生命周期各个阶段 测试人员充当的角色
W模型
 

 详见 https://www.cnblogs.com/butaileng7/p/11243847.html

web端测试和app端测试的区别

系统架构方面: 
web项目,一般都是b/s架构,基于浏览器的 
app项目,则是c/s的,必须要有客户端,用户需要安装客户端。 
web测试只要更新了服务器端,客户端就会同步会更新。App项目则需要客户端和服务器都更新。

性能方面: 
web页面主要会关注响应时间 
而app则还需要关心流量、电量、CPU、GPU、Memory这些。 
它们服务端的性能没区别,都是一台服务器。

兼容方面: 
web是基于浏览器的,所以更倾向于浏览器和电脑硬件,电脑系统的方向的兼容 
app测试则要看分辨率,屏幕尺寸,还要看设备系统。 
web测试是基于浏览器的所以不必考虑安装卸载。 
而app是客户端的,则必须测试安装、更新、卸载。除了常规的安装、更新、卸载还要考虑到异常场景。包括安装时的中断、弱网、安装后删除安装文件 
此外APP还有一些专项测试:如网络、适配性。。。

APP测试特点

(除了按需求说明书外的 功能测试 之外还需要进行如下测试)

1: 适配性测试(也叫兼容性测试,不同的安卓版本,不同厂商,不同手机品牌)

2: 不同网络测试 (2G网络/3G网络/4G网络/WIFI网络)

3; 在线升级测试

4: 中断测试(电话、短中消息打扰)

5: 耗电量测试

6: 弱网测试(信号差,信号屏蔽实验室)

7: 安装卸载 (C/S)

8: 流量测试

来自 https://blog.csdn.net/xx199678/article/details/81485853

如何测试一个web页面

UI测试、链接测试、搜索测试、表单提交测试、输入域测试、分页测试、兼容性测试

具体详见 https://zhuanlan.zhihu.com/p/129235399

web测试定位问题

1.前端问题 F12打开浏览器的控制台

2.后端问题 查看日志文件定位问题

 详见 https://blog.csdn.net/qq_36260310/article/details/79099061

app测试定位问题

测试APP过程中,尽量把抓包工具打开做到随时抓包,我使用的是fiddler进行抓包;

在测试APP时,当发现问题先看请求数据和返回接口数据是否正确,如果返回值是正确的那么后台就是么有问题,请求值没有问题,返回值有问题那么就是后台问题,请求值和返回值都没有问题,那就考虑是不是APP页面上的问题,一般通过抓包基本能够辨别是后台问题还是前端问题
详见 https://www.jianshu.com/p/846e7e7ba28e
 
冒烟测试

首先冒烟测试英文叫smoke test.

ST测试一般在开发转测时,测试要进行的冒烟测试,冒烟测试是测试根据自己的测试用例抽离出比较核心的流程的case,一般建议在10-15%之间,不要太多,那么为什么要冒烟测试呢?因为前边我也说了是对核心流程的测试,如果这些核心流程测试不通过的话,那么对测试来说,其实成本会很高,为什么呢?因为核心流程不通过,那么我们要进行测试,可能流程是不通的,流程不通进行测试,会加大测试的返工率,这样影响测试的进度,反反复复修改,反反复复测试,进一步消耗了时间,所以保障st测试通过,测试对不同的流程就能更好进展。

详见 https://www.zhihu.com/question/314026625/answer/612591615

兼容性测试方法

1.手工测试

2.使用兼容性测试工具

第三方 Web的兼容性测试工具,推荐IEtester(离线)、SuperPreview(离线)和Browsershots:browsershots.org(在线)。

IETester,是专门用于测试网页在IE浏览器各个版本中兼容性的工具,版本包含IE5.5至IE9的各个版本。
Spoon Browser Sandbox,点击你需要测试的浏览器环境,安装插件就可以进行测试了。帮助你测试网页在Safari、Chrome、Firefox和Opera浏览器中是否正常。
BrowserShots,一款免费的跨浏览器测试工具,捕捉网站在不同浏览器中的截图。最有名,最古老的浏览器兼容性测试工具。
Multiple IEs这款工具同样用于测试网页在IE浏览器各个版本的兼容性。

第三方APP的兼容性测试工具,推荐百度众测平台和云测平台,这两款测试工具里面包含了安卓和iOS的测试;测试很齐全,包括 功能测试 、深度兼容测试、 性能测试 、网络环境测试,可以模拟海量用户测试,还可以导入自己编写的 测试用例进行功能测试,里面还包括测试专家的测试(需要付费)。测试工程师只需要将打包好的apk或者IPA文件,上传到测试平台,选择需要测试的设备型号,开始任务即可;测试完成后会生成一份测试报告,可以查看错误页面和错误日志,如果需要调整,可以提交bug,告知程序员修改即可。

通常来说,人工测试工作量大,且覆盖不全;第三方测试工作虽说比较省时省力,但是在主功能和主流程测试的时候没有侧重点,不够灵活,很难发现一些隐藏的问题;所以将人工和第三方工具兼容性测试结合起来才是最好的兼容性测试方法。
详见 https://www.jianshu.com/p/6b673d536988
 
自动化测试

什么是自动化测试

让程序代替人为去验证程序功能的过程。

为什么要进行自动化测试

  1. 解决回归测试(项目在发布新版本之后对项目之前的功能进行验证)
  2. 解决压力测试(多用户同时去操作软件,统计软件服务器处理多用户请求的能力)
  3. 解决兼容性测试(不同浏览器版本等等)
  4. 提高测试效率,保证产品质量

自动化测试在什么阶段开始

功能测试完毕(手工测试,就是由人去一个一个输入用例,然后观察结果)

自动测试所属分类

  1. 黑盒测试(功能测试):web自动化测试属于黑盒测试或功能测试
  2. 灰盒测试(接口测试)
  3. 白盒测试(单元测试)

自动化测试分类

  1. Web(UI)自动化测试
  2. 接口自动化测试
  3. 移动(APP)自动化测试
  4. 单元测试自动化测试

自动化测试优点和缺点

优点:

  1. 较少的时间内运行更多的测试用例
  2. 自动化脚本可重复运行
  3. 减少人为的错误
  4. 测试数据存储(把测试数据存在文本等,方便管理)

缺点:

  1. 不能取代手工测试
  2. 手工测试比自动化测试发现的缺陷更多
  3. 测试人员技能要求更多

什么Web项目适合做自动化测试

  1. 需求变动不频繁
  2. 项目周期长
  3. 项目需要回归测试

 来自 https://blog.csdn.net/qq_36761831/article/details/104383190?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-2.nonecase&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-2.nonecase

参考:

1.测试流程及方法 https://www.jianshu.com/p/548cf257beb8

硬件测试和软件测试的区别

其实硬件测试和软件测试的核心方法是一致的

测试工具的差异

-因为测试对象的差异,所以针对不同的测试主体可能会采取不同的测试工具。

要测试手机的耐摔,电池的充放电就会有对应的专业测试工具

测试网页接口的正确性,我们可能有数据对比工具。

测试软件下载速度可能我们有专门数据抓取和记录工具。

-当然针对不同的测试方向也会有不同的测试工具

压力测试

安全测试

性能测试 loadrunner

详见 https://www.jianshu.com/p/39c8fa185f67

电商测试和其他测试有什么不同

1、性能测试-流量,订单量是不会超过访问量的,也就是说想提升订单量,就必需要先解决访问量的问题。流量,我们的性能测试,压力测试,等等都是为这个目标服务的。

3、界面测试-感受,你就算去一个传统的大卖场去,你也会对这个卖场的环境产生好与不好的感受,这种感受直接影响你的购物欲望

5、安全测试-安全,网上购物第一大障碍就是安全,虽然现在有支付宝,保障了基本的财产安全。但是却无法保障消费者的心理安全。

性能测试

性能测试是通过自动化的测试工具模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进行测试。负载测试和压力测试都属于性能测试,两者可以结合进行。通过负载测试,确定在各种工作负载下系统的性能,目标是测试当负载逐渐增加时,系统各项性能指标的变化情况。压力测试是通过确定一个系统的瓶颈或者不能接受的性能点,来获得系统能提供的最大服务级别的测试。

原文地址:https://www.cnblogs.com/Annetree/p/13510577.html