3.测试分类
系统测试包括回归测试和冒烟测试
回归测试:修改了旧的代码后,重新测试功能是否正确,有没有引入新的错误或导致其它代码产生错误
冒烟测试:目的是确认软件基本功能正常,可以进行后续的正式测试工作
按是否查看代码
白盒(结构测试、逻辑驱动测试):要查看代码,对代码测试,结构测试
黑盒(功能测试):不用查看代码,对功能进行测试 ,看是否符合用户需求
灰盒:介于黑盒白盒,多用于集成测试
按测试对象
业务测试、界面测试、容错性测试、文档测试、
兼容性测试(平台、浏览器、与其他相关软件是否兼容、向前先后兼容)、
![](/qrcode.jpg)
性能测试:响应时间、吞吐量、执行间隔等、
内存泄露测试原因:
分配完内存之后没有回收
程序写法有问题,没办法进行回收
某些API函数的使用不正确,造成内存泄露
没有及时释放
3.1.单元测试、集成测试、系统测试的区别“
单元测试
单元测试是对软件组成单元进行测试,其目的是检验软件基本组成单位的正确性,测试的对象是软件设计的最小单位:函数、或者类。通常情况下是白盒的,一般由开发人员测试.能够尽早的发现错误,降低修改成本。
集成测试
集成测试也称综合测试、组装测试、联合测试,将程序模块采用适当的集成策略组装起来,对系统的接口及集成后的功能进行正确性检测的测试工作。其主要目的是检查软件单位之间的接口是否正确,集成测试的对象是已经经过单元测试的模块。
系统测试
系统测试是对整个系统的测试,将硬件、软件、操作人员看作一个整体,检验它是否有不符合系统说明书的地方,主要包括功能测试、界面测试、可靠性测试、易用性测试、性能测试。 功能测试主要针对包括功能可用性、功能实现程度(功能流程&业务流程、数据处理&业务数据处理)方面测试。在集成测试之后。 在系统实际运行环境下来进行测试。
三者区别
- 粒度不同:
- 单元测试粒度最小,测试的是软件的基本模块或接口 - 集成测试粒度居中,测试的是集成各个单元模块之间的接口 - 系统测试粒度最大,测试的是 整个系统的功能和性能
- 测试方式不同:
- 单元测试一般由开发小组采用白盒方式来测试; - 集成测试一般由开发小组采用白盒加黑盒的方式来测试; - 系统测试一般由独立测试小组采用黑盒方式来测试。
- 测试内容不同:
- 单元测试主要测试单元是否符合“设计”; - 集成测试既验证“设计’,又验证“需求”;偏技术 - 系统测试主要测试系统是否符合“需求规格说明书”,偏业务
-
使用阶段不同:
- 单元测试为开发人员在开发阶段要做的事情; - 集成测试和系统测试为测试人员在测试周期内级层做的工作。
3.2 验收测试
也称交付测试,是针对用户需求、业务流程进行的正式的测试,以确定系统是否满足验收标准,由用户、客户或其他授权机构决定是否接受系统。
验收测试包括alpha测试和beta测试,alpha测试是由开发者进行的软件测试,beta测试是由用户在脱离开发环境下进行的软件测试。
3.3 白盒和黑盒的区别
- 白盒测试
- 白盒测试也称为结构测试或逻辑驱动测试,是针对被测单元内部是如何进行工作的测试。检查程序内部逻辑结构,对所有的逻辑路径进行测试,是一种穷举路径的测试方法,
- 常见的白盒测试的方法有:语句覆盖,条件覆盖,判定覆盖,条件组合覆盖,基本路径覆盖等等。
- 优点:可以检测代码的每条分支和路径;可以揭示隐藏在代码中的错误;对代码的测试比较彻底。
-
缺点:耗费比较大;不能检测到代码中遗漏的逻辑;不能直接验证需求的正确性
- 黑盒测试
- 黑盒测试用例设计方法:基于用户需求的测试、等价类划分方法、边界值分析方法、错误推测方法、因果图方法、判定表驱动分析方法、正交实验法、场景法。依据是用户需求规格说明书,详细设计说明书
- 黑盒测试也称功能测试或数据驱动测试,它不看代码内部的逻辑,只检查程序功能是否按照需求规格说明书的规定正常使用,程序是否能适当地接收输入数锯而产生正确的输出信息,并且保持外部信息(如数据库或文件)的完整性。
- 优点:容易实施,不需要关注内部实现;贴近用户需求。
- 缺点:覆盖率比较低,因为不知道内部逻辑
3.4 性能测试关注啥
指标:响应时间(RT)、每秒能完成的响应数(TPS)、CPU利用率、内存占用、网络(带宽使用率)、手机app的话还考虑耗电量……
考虑负载加大时,各项指标如何变化,联网的考虑各种不同的网络环境(正常网、超快网、网速慢、断网)时指标的变化
3.5 压力测试关注啥
通常要进行软件压力测试的资源包括内部内存、CPU 可用性、磁盘空间和网络带宽。
3.6并发用户数和在线用户数的区别
在线用户数:用户同时在一定时间段的在线数量
并发用户数:某一时刻同时向服务器发送请求的用户数
(在线用户只要在线就好了,并发用户计算的是和服务器有交流的用户,一般比例5%-20%)
3.7 其他测试的类型
功能测试:关注功能正常(包含兼容性测试),除了下面分类都测;
性能测试:关注(比如前端性能、后端性能);
安全测试:关注传输、存储等安全;
特性测试:特性指平台差异(即部分兼容性测试),如PC端鼠标,键盘操作特性(Tab键等);如手机触屏操作,横竖屏,中断恢复(来电)等
3.8 如何开展第一次测试
1.学习项目所有的文档
2.参加所有会议
3.了解公司的项目管理工具
4.学习用例、缺陷书写规范,工具的使用规范
5.积极主动和负责人以及项目组的人员沟通
3.9 提交一个BUG研发人员不认可怎么办
(1)自查,是否bug描述不清楚 (2)检查缺陷级别。定级要有理有据
(3)让研发站在用户的角度了解bug可能给用户造成的困扰
(4)提高自身的业务水平和技术能力,最好能提出解决方案
(5)好好沟通,不要争吵
(6)需求变更
(7)寻求第三方的帮助,发起Bug评审。
4. Web和 APP测试的区别
1.首先是web和APP的区别:
- web是b/s架构的,基于浏览器;
-APP是c/s架构的,必须要有客户端。那么在系统测试测试的时候就会产生区别了。
- Web测试中只要更新了服务器,客户端就会同步更新,而且保证每个用户用的客户端一样;
- App就不能保证完全一致,因为App客户端需要用户主动更新.
-如果App测试中修改了服务器,就意味着客户端用户使用的所有核心版本都要进行回归测试
2.性能方面:
- web主要看响应速度,响应时间;
- App还看电量、流量、CPU、GPU(图形处理器)、内存…
3.兼容方面:
web基于浏览器,主要看电脑硬件、电脑系统、浏览器(主要)方面的兼容,选择不同浏览器内核进行测试IE\Chrome\Firefox;
App依赖于手机或平板,关注的系统主要是安卓和ios,还要关心分辨率、屏幕尺寸
4.App比web测试多一些专项测试:
- 相比较web测试,app更是多了一些专项测试:弱网测试,安装、卸载、更新,界面操作、触摸手势等
- 一些异常场景的考虑以及弱网络测试。这里的异常场景就是中断,来电,短信,关机,重启等。
- 而弱网测试是App测试中必须执行的一项测试。包含弱网和网络切换测试。需要测试弱网所造成的用户体验,重点要考虑回退和刷新是否会造成二次提交。需要测试丢包,延时的处理机制。避免用户的流失。
- 安装、卸载、更新:
- web测试是基于浏览器的所以不必考虑这些。而app是客户端的,则必须测试安装、更新、卸载。除了常规的安装、更新、卸载还要考虑到异常场景。包括安装时的中断、弱网、安装后删除安装文件,更新的强制更新与非强制更新、增量包更新、断点续传、弱网,卸载后删除App相关的文件等等。
- 界面操作
- 现在app产品的用户都是使用的触摸屏手机,所以测试的时候还要注意手势,横竖屏切换,多点触控,事件触发区域等测试。
4.1请你讲讲怎样进行web测试
5.测试一款产品/一个功能
(角度)
功能:
性能:响应速度、CPU占用,联网的话考虑多用户并发/弱网环境,app的话考虑耗电量
易用性
兼容性:多平台/多系统/多版本
安全:用户名密码有没有保存功能,数据往服务器传是不是加密的,有没有防止一些脚本或者SQL注入***
UI:符合大众期望,有无错别字,排版和颜色搭配
稳定性:压力测试、极端条件测试
(查看产品的使用说明书)
6.软件质量模型的6大特性:
功能性,可靠性,易用性,效率,维护性,可移植性
-功能性:用户要求的功能是否正确实现
-可靠性:在规定的时间和条件下。软件维持性能水平的程度
-易用性:对用户使用的友善性,使用是否方便
-效率性:能否在完成功能的同时,节约资源
-可维护:当需求改变或软件环境发生改变时,对软件修改的难易程度
-可移植:从一个计算机系统或环境移动到另一个计算机系统或环境的难易程度
7. selenium流程、获取元素方法
先import,然后webdriver模拟打开一个浏览器(初始化),获取特定的网址,然后通过获取元素模拟鼠标点击页面上的按钮(或者其他动作,比如在特定的文本框输入特定的内容),(最后quit()一下)
获取元素方法:xpath,css选择器,文本内容…..等等,比如find_element_by_xpath、find_element_by_css_selector、find_element_by_link_text
8.自动化测试和手工测试的区别
9. selenium的特点
1.多平台:Firefox \Chrome\edge(MS)、IE\Safari
2.多语言:Java \python\C\C#\ruby
selenium工具集
selenium1: selenium IDE,selenium RC,selenium Grid
selenium2:selenium1+webdriver 相当于出租车司机
selenium3:做了一些更新,增加了edge和Sarafi原生驱动
3.自动化适合什么样的项目:
接口自动化:功能稳定
时机:后台开发完成就可以做接口自动化
Web自动化:功能稳定,界面元素稳定
时机:前后台都开发完成
关闭浏览器:
close:仅仅关闭浏览器
quit:关闭浏览器,清除占用的资源,释放session
10.重要参数
10.1 QPS(每秒查询率)
QPS:每秒查询率QPS是对一个特定的查询服务器在规定时间内所处理流量多少的衡量标准
用来衡量服务器的机器性能。
10.2 QPS和TPS的区别
TPS:Transactions Per Second(每秒传输的事物处理个数),即服务器每秒处理的事务数。TPS包括一条消息入和一条消息出,加上一次用户数据库访问。
是软件测试结果的测量单位。
10.3系统吞吐量
是指单位时间内,系统处理用户的请求数或页面数量,可以直接反映出软件的承载能力。一般来说,利用每秒钟的请求数或页面数量衡量吞吐量;从业务的角度来看,也可以用每天的访问人数或每小时处理的业务数来衡量。