最新消息: 电脑我帮您提供丰富的电脑知识,编程学习,软件下载,win7系统下载。

java测试开发面试题总结--测试基础

互联网 admin 44浏览 0评论

java测试开发面试题总结--测试基础

测试流程

1、立项;2、需求评审;3、编写测试用例;4、用例评审;5、执行用例;6、测试报告

测试用例设计方法

1、等价类划分

概念:将程序的输入域划分为若干个区域(等价类),并在每个等价类中选择一个具有代表性的元素生成测试用例。该方法是常用的黑盒测试用例设计方法。

等价类划分可有两种不同的情况:有效等价类和无效等价类。有效等价类是指对于程序的规格说明来说是合理的、有意义的输入数据构成的集合。无效等价类是指对程序的规格说明是不合理的或无意义的输入数据所构成的集合,它能检验程序在不符合规则的数据输入下,是否会有异常;无效等价类至少应有一个,也可能有多个,视具体情况而定。因此,设计测试用例时,要同时考虑这两种等价类。

划分等价类的标准
完备测试、避免冗余。这就要求:集合(程序输入域)应划分为互不相交的一组子集,而这些子集的并集是整个集合(整个程序输入域)。

2、边界值分析

概念:边界值分析方法的理论基础是假定大多数的错误是发生在各种输入条件的边界上,如果在边界附近的取值不会导致程序出错,那么其它的取值导致程序错误的可能性也很小。

确定边界:运用域测试分析方法确定域范围的边界(上点、离点与内点)
形成测试项:选择这些边界的上点、离点与内点或者这些点的组合形成测试项

3、错误推测法
在测试程序时,测试人员可以根据经验或直觉推测程序中可能存在的各种错误,从而有针对性地编写检查这些错误的测试用例的方法。

4、判定表

概念:判定表是分析和表达多种输入条件下系统执行不同动作的工具,它可以把复杂的逻辑关系和多种条件组合的情况表达得既具体又明确。

列出所有的条件桩和动作桩
  填入条件桩、条件项
  填入动作桩、动作项
  化简,合并相似规则
  将每条规则转化为用例

5、正交试验法

正交试验设计(Orthogonal experimental design)是研究多因子多水平的又一种设计方法,它是根据正交性从全面试验中挑选出部分有代表性的点进行试验,这些有代表性的点具备了“均匀分散,齐整可比”的特点。

关于正交试验表的两个重要概念:
  1、所有参与试验、影响试验结果的条件称为因子。
  2、影响试验因子的取值或输入叫做因子的水平。

如何展开测试工作

1、需求分析
对这个全新的软件需求进行全面分析,主要的分析点有:需求合理性、测试环境,硬件,软件、项目整体规划
2、指定


自动化测试工具

Selenium 可能是Web应用程序最流行的开源测试自动化框架。
UFT 统一功能测试(UFT)是一种众所周知的功能测试商业测试工具。 它为跨平台的桌面,Web和移动应用程序的API,Web服务和GUI测试提供了全面的功能集。


测试用例设计—微信发朋友圈

对于一个待测试的对象,我们通常通过以下几个方面来进行测试:功能测试、可靠性测试、易用性测试、效率、可维护性、可移植性、安全性测试、界面测试等。
功能测试: 功能测试是软件测试中最基本的测试,功能实现不满足要求,软件就不能发布测试。要进行功能测试,首先就需要了解朋友圈的各个功能,那么如何了解朋友圈的功能呢?——需求文档。
朋友圈的基础功能
1)发朋友圈、删除朋友圈,看朋友圈;
2)朋友圈的类型(图、文、混合);
3)评论朋友圈;
4)给朋友点赞,取消点赞,点赞非朋友是否能看见;
5)屏蔽与被屏蔽,不能查看对应好友的朋友圈;
……
可靠性测试: 软件可靠性(software reliability)是软件产品在规定的条件下和规定的时间区间完成规定功能的能力。
朋友圈的可靠性例子:
1)短时间内频繁进行发送、取消、以及删除朋友圈的组合测试,看朋友圈相关功能是否正常;
2)微信打开后,手机锁屏或切换到主界面,微信在后台是否会失效出现bug,并且朋友圈的功能是否会失效。
性能测试: 性能测试主要对服务器的性能进行测试的。在App上,性能测试分为客户端性能、服务器性能。对客户端性能我们主要关注的指标有:CPU占用率、内存占用率、流量耗用量等。
比如:
运行时所占用的内存,消耗的电量
大量的重复浏览是否会造成程序崩溃
多次点赞朋友圈时候会卡顿
安全性测试:
例如在朋友圈儿中输入一些脚本程序代码什么的,测试是否会将微信客户端搞崩溃什么的。
兼容性测试:
在不同的客户端的兼容性测试,使用不同平台的客户端进行朋友圈的功能测试。(例如使用不同厂商的手机、平板)
界面测试:
1、是否是显示发朋友圈的人的昵称、头像、以及具体内容
2、是否按照发朋友圈的时间距离现在远近来排序
3、图片显示是否正确
4、是否显示自己的个人朋友圈背景
5、下拉是否有更新
6、上滑时是否显示错乱
易用性测试:
是否及时发送状态
发送动态是否成功
弱网测试:
进行发朋友圈、看朋友圈等操作,测试其是否会产生其它未知故障。(例如对WiFi信号进行限速)


单元测试和接口测试的区别

什么是接口
接口就是内部模块对模块,外部系统对其他服务提供的一种可调用或者连接的能力的标准,就好比usb接口,他是系统向外接提供的一种用于物理数据传输的一个接口,当然仅仅是一个接口是不能进行传输的,我们还的对这个接口怎么进行传输进行进行一些设置和定义。开发所谓的接口是模块模块之间的一种连接,而测试眼中的接口是一种协议
接口测试
接口测试是测试系统组件间接口的一种测试。接口测试主要用于检测外部系统与系统之间以及内部各个子系统之间的交互点。测试的重点是要检查数据的交换,传递和控制管理过程,以及系统间的相互逻辑依赖关系等。
接口测试工具
1)、Postman是谷歌的一款接口测试插件,它使用简单,支持用例管理,支持get、post、文件上传、响应验证、变量管理、环境参数管理等功能,可以批量运行,并支持用例导出、导入。
2)、jmeter是一款100%纯Java编写的免费开源的工具,它主要用来做性能测试,相比loadrunner来说,它内存占用小,免费开源,轻巧方便、无需安装

1、单元测试注重代码逻辑,接口测试注重业务逻辑;
2、单元测试的粒度最小,是测试最小独立的单元模块(不依赖其他模块);接口测试不是,会覆盖很多;
3、单元测试是白盒测试,接口测试是黑盒测试;
4、单元测试关注的是代码的实现和逻辑,测试范围较小,保证实现逻辑通过就行;接口测试因为关注业务,所以测试范围较广,会用更多的测试数据去测试


冒烟测试

冒烟测试,是对软件的基本功能进行测试,测试对象是每一个新编译的需要正式测试的软件版本,目的是确认软件的基本功能正常,保证软件系统能正常跑起来,可以进行后续的正常测试工作的进行,如果最基本的测试都有问题了,就直接打回开发部了,所以正式交付的测试版本,必须先通过冒烟测试的考验。

冒烟测试只是一个测试活动,并不是一个测试阶段。也就是说冒烟测试贯穿于测试的人一个阶段。单元测试、集成测试、系统测试里都会有冒烟测试。

什么时候进行冒烟测试?
测试是测试人员确认软件存在bug的过程,此过程中不可避免是需要开发人员要不停的修改bug,那么常常会发现一个功能的改动,导致下一轮系统测试出现问题。即发现也许以前修改的bug的确是解决了,可是由于修改一个或多个bug导致其他功能模块出现新的问题,测试跑不通了,只能测试终止。那么我们如何确保开发人员修复了bug后,这个bug的修复没有影响到其他功能模块呢?这时就需要进行冒烟测试啦。


微信扫码支付功能测试

功能测试
1.第一次扫描付钱二维码时可以得到相机权限,进入付钱界面
2.第一次扫描付钱二维码时可以拒绝相机权限,退回聊天界面
3.扫一扫可以扫描收钱的二维码
4.扫描出来的信息与收钱人信息相符
5.输入框只能输入数字
6.一次能支付的最大钱数
7.一次支付的最少的钱数
8.一天最多能支付多少次
9.一天支付钱数是否有上限
10.支付的钱数小数位最多为2位
11.能否直接输入小数点
12.能否添加备注
13.备注的最大字数为10
14.添加备注完了,按确定按钮保存备注
15.不想添加备注,可以按取消,取消备注

性能
1.扫二维码响应的时间
2.取消支付的响应时间
3. 支付成功的响应时间
4.退款成功的响应时间
5.弱网支付的响应时间
6.不同网速对支付的响应时间(3g,4gWIFI)

安全
1.支付密码是否可见
2.支付时如果对方微信被盗是否有对应提示
3.如果支付钱数较多,是否有对应的提示
4.支付时对方异地登录是否有对应提示
5.支付扣的钱和零钱或者银行卡里少的钱数一样
6.在新的设备上支付时都需要认证,授权

界面
1.扫描二维码对应收款人的头像和信息是否正确
2.界面的排版是否符合合理,按钮大小,输入框大小
3.界面里是否我有错别字
4.界面颜色搭配是否合理

易用性
1.界面显示是否符合大多数人的使用习惯
2.付款二维码不用输入密码就可以完成对应的支付
3.指纹支付只要有在指纹处输入指纹就可以支付
4.支付用户可以选择自己喜欢的方式进行支付

兼容性
1.在安卓机和苹果机上都可以支付
2.对不同商家的微信收钱码均可以扫描
3.在不同的品牌的手机都可以支付


登录模块测试

登录模块
界面UI测试
1.布局是否合理,输入框,按钮对齐方式
2.输入框和按钮的高度,长度是否符合要求
3.界面的设计风格是否与UI的设计风格统一
4.界面的文字简洁易懂,没有错别字
功能测试
1.用户名,密码输入为空,点击查看提示信息
2.输入正确的用户名和密码,点击验证登录成功
3.登录成功后,验证是否跳转到正确的页面
4.用户名,密码如果过长,过短,是否有提示
5.用户名和密码前后有空格的处理
6.用户名和密码中有特殊字符或其他非英文的情况
7.记住用户名的功能
8.登录失败后,不能记住密码的功能
9.密码是否加密显示
10.登录页面的注册,忘记密码,登出等用另一账号登录链接是否正确
11.输入密码时,大写键盘开启是是否有提示信息
12.输入错误的用户名和密码,查看提示信息
性能测试
1.打开登录页面,需要几秒
2.输入正确的用户名和密码,登录成功不超过5s
兼容性测试
1.主流浏览器是否显示成功(IE8,9,10,11,Firefox,Chrome,Safafi)
2.不同的平台是否能显示成功(Mac,Windows)
3.移动设备上是否显示成功(Android,IOS)
4.不同的分辨率
可用性测试
1.是否支持全键盘操作,是否有快捷键
2.输入用户名和密码,按回车,是否可以登录
3.输入框能否可以Tab键切换
安全测试
1.登录成功后生成的Cookie,是否是Http only
2.用户名和密码是否通过加密的方式发给Web服务器
3.用户名和密码的验证,应该是在服务器端,而不是在Javascript前端
4.用户名和密码的输入框,应该屏蔽SQL注入
5.用户名和密码的输入框,应该禁止输入脚本
6.错误登录的次数限制
7.考虑是否支持多用户在同一机器上登录
8.考虑一用户在多台机器上登录


微信红包测试

功能测试
发红包能否发送成功:
可以测试以下数据(0.01-200)
数字:测试0, 0.009, 0.01,0.011, 01, 199.99, 200, 200.01这些边界值
中文、英文、特殊字符或者这几种的组合
是否支持复制黏贴
为空/包含空格
金额的增删查改
双方金额是否一致

性能测试
1)打开红包的响应时间不能超过三秒,高并发场景下不能超过5秒
2)耗电量
3)消耗流量的多少
4)所占内存

安全性测试
输入密码错误
密码是否显示
指纹错误

兼容性测试
1)苹果手机和安卓手机
2)苹果手机的不同版本
3)安卓手机不同的机型

中断测试:
前后台切换,网络异常,低电量,断电,来电,短信等

网络测试
1)网络兼容性:2g/3g/4g,WiFi,热点,移动/联通/电信
2)无网测试
3)弱网:延时&丢包

java测试开发面试题总结--测试基础

测试流程

1、立项;2、需求评审;3、编写测试用例;4、用例评审;5、执行用例;6、测试报告

测试用例设计方法

1、等价类划分

概念:将程序的输入域划分为若干个区域(等价类),并在每个等价类中选择一个具有代表性的元素生成测试用例。该方法是常用的黑盒测试用例设计方法。

等价类划分可有两种不同的情况:有效等价类和无效等价类。有效等价类是指对于程序的规格说明来说是合理的、有意义的输入数据构成的集合。无效等价类是指对程序的规格说明是不合理的或无意义的输入数据所构成的集合,它能检验程序在不符合规则的数据输入下,是否会有异常;无效等价类至少应有一个,也可能有多个,视具体情况而定。因此,设计测试用例时,要同时考虑这两种等价类。

划分等价类的标准
完备测试、避免冗余。这就要求:集合(程序输入域)应划分为互不相交的一组子集,而这些子集的并集是整个集合(整个程序输入域)。

2、边界值分析

概念:边界值分析方法的理论基础是假定大多数的错误是发生在各种输入条件的边界上,如果在边界附近的取值不会导致程序出错,那么其它的取值导致程序错误的可能性也很小。

确定边界:运用域测试分析方法确定域范围的边界(上点、离点与内点)
形成测试项:选择这些边界的上点、离点与内点或者这些点的组合形成测试项

3、错误推测法
在测试程序时,测试人员可以根据经验或直觉推测程序中可能存在的各种错误,从而有针对性地编写检查这些错误的测试用例的方法。

4、判定表

概念:判定表是分析和表达多种输入条件下系统执行不同动作的工具,它可以把复杂的逻辑关系和多种条件组合的情况表达得既具体又明确。

列出所有的条件桩和动作桩
  填入条件桩、条件项
  填入动作桩、动作项
  化简,合并相似规则
  将每条规则转化为用例

5、正交试验法

正交试验设计(Orthogonal experimental design)是研究多因子多水平的又一种设计方法,它是根据正交性从全面试验中挑选出部分有代表性的点进行试验,这些有代表性的点具备了“均匀分散,齐整可比”的特点。

关于正交试验表的两个重要概念:
  1、所有参与试验、影响试验结果的条件称为因子。
  2、影响试验因子的取值或输入叫做因子的水平。

如何展开测试工作

1、需求分析
对这个全新的软件需求进行全面分析,主要的分析点有:需求合理性、测试环境,硬件,软件、项目整体规划
2、指定


自动化测试工具

Selenium 可能是Web应用程序最流行的开源测试自动化框架。
UFT 统一功能测试(UFT)是一种众所周知的功能测试商业测试工具。 它为跨平台的桌面,Web和移动应用程序的API,Web服务和GUI测试提供了全面的功能集。


测试用例设计—微信发朋友圈

对于一个待测试的对象,我们通常通过以下几个方面来进行测试:功能测试、可靠性测试、易用性测试、效率、可维护性、可移植性、安全性测试、界面测试等。
功能测试: 功能测试是软件测试中最基本的测试,功能实现不满足要求,软件就不能发布测试。要进行功能测试,首先就需要了解朋友圈的各个功能,那么如何了解朋友圈的功能呢?——需求文档。
朋友圈的基础功能
1)发朋友圈、删除朋友圈,看朋友圈;
2)朋友圈的类型(图、文、混合);
3)评论朋友圈;
4)给朋友点赞,取消点赞,点赞非朋友是否能看见;
5)屏蔽与被屏蔽,不能查看对应好友的朋友圈;
……
可靠性测试: 软件可靠性(software reliability)是软件产品在规定的条件下和规定的时间区间完成规定功能的能力。
朋友圈的可靠性例子:
1)短时间内频繁进行发送、取消、以及删除朋友圈的组合测试,看朋友圈相关功能是否正常;
2)微信打开后,手机锁屏或切换到主界面,微信在后台是否会失效出现bug,并且朋友圈的功能是否会失效。
性能测试: 性能测试主要对服务器的性能进行测试的。在App上,性能测试分为客户端性能、服务器性能。对客户端性能我们主要关注的指标有:CPU占用率、内存占用率、流量耗用量等。
比如:
运行时所占用的内存,消耗的电量
大量的重复浏览是否会造成程序崩溃
多次点赞朋友圈时候会卡顿
安全性测试:
例如在朋友圈儿中输入一些脚本程序代码什么的,测试是否会将微信客户端搞崩溃什么的。
兼容性测试:
在不同的客户端的兼容性测试,使用不同平台的客户端进行朋友圈的功能测试。(例如使用不同厂商的手机、平板)
界面测试:
1、是否是显示发朋友圈的人的昵称、头像、以及具体内容
2、是否按照发朋友圈的时间距离现在远近来排序
3、图片显示是否正确
4、是否显示自己的个人朋友圈背景
5、下拉是否有更新
6、上滑时是否显示错乱
易用性测试:
是否及时发送状态
发送动态是否成功
弱网测试:
进行发朋友圈、看朋友圈等操作,测试其是否会产生其它未知故障。(例如对WiFi信号进行限速)


单元测试和接口测试的区别

什么是接口
接口就是内部模块对模块,外部系统对其他服务提供的一种可调用或者连接的能力的标准,就好比usb接口,他是系统向外接提供的一种用于物理数据传输的一个接口,当然仅仅是一个接口是不能进行传输的,我们还的对这个接口怎么进行传输进行进行一些设置和定义。开发所谓的接口是模块模块之间的一种连接,而测试眼中的接口是一种协议
接口测试
接口测试是测试系统组件间接口的一种测试。接口测试主要用于检测外部系统与系统之间以及内部各个子系统之间的交互点。测试的重点是要检查数据的交换,传递和控制管理过程,以及系统间的相互逻辑依赖关系等。
接口测试工具
1)、Postman是谷歌的一款接口测试插件,它使用简单,支持用例管理,支持get、post、文件上传、响应验证、变量管理、环境参数管理等功能,可以批量运行,并支持用例导出、导入。
2)、jmeter是一款100%纯Java编写的免费开源的工具,它主要用来做性能测试,相比loadrunner来说,它内存占用小,免费开源,轻巧方便、无需安装

1、单元测试注重代码逻辑,接口测试注重业务逻辑;
2、单元测试的粒度最小,是测试最小独立的单元模块(不依赖其他模块);接口测试不是,会覆盖很多;
3、单元测试是白盒测试,接口测试是黑盒测试;
4、单元测试关注的是代码的实现和逻辑,测试范围较小,保证实现逻辑通过就行;接口测试因为关注业务,所以测试范围较广,会用更多的测试数据去测试


冒烟测试

冒烟测试,是对软件的基本功能进行测试,测试对象是每一个新编译的需要正式测试的软件版本,目的是确认软件的基本功能正常,保证软件系统能正常跑起来,可以进行后续的正常测试工作的进行,如果最基本的测试都有问题了,就直接打回开发部了,所以正式交付的测试版本,必须先通过冒烟测试的考验。

冒烟测试只是一个测试活动,并不是一个测试阶段。也就是说冒烟测试贯穿于测试的人一个阶段。单元测试、集成测试、系统测试里都会有冒烟测试。

什么时候进行冒烟测试?
测试是测试人员确认软件存在bug的过程,此过程中不可避免是需要开发人员要不停的修改bug,那么常常会发现一个功能的改动,导致下一轮系统测试出现问题。即发现也许以前修改的bug的确是解决了,可是由于修改一个或多个bug导致其他功能模块出现新的问题,测试跑不通了,只能测试终止。那么我们如何确保开发人员修复了bug后,这个bug的修复没有影响到其他功能模块呢?这时就需要进行冒烟测试啦。


微信扫码支付功能测试

功能测试
1.第一次扫描付钱二维码时可以得到相机权限,进入付钱界面
2.第一次扫描付钱二维码时可以拒绝相机权限,退回聊天界面
3.扫一扫可以扫描收钱的二维码
4.扫描出来的信息与收钱人信息相符
5.输入框只能输入数字
6.一次能支付的最大钱数
7.一次支付的最少的钱数
8.一天最多能支付多少次
9.一天支付钱数是否有上限
10.支付的钱数小数位最多为2位
11.能否直接输入小数点
12.能否添加备注
13.备注的最大字数为10
14.添加备注完了,按确定按钮保存备注
15.不想添加备注,可以按取消,取消备注

性能
1.扫二维码响应的时间
2.取消支付的响应时间
3. 支付成功的响应时间
4.退款成功的响应时间
5.弱网支付的响应时间
6.不同网速对支付的响应时间(3g,4gWIFI)

安全
1.支付密码是否可见
2.支付时如果对方微信被盗是否有对应提示
3.如果支付钱数较多,是否有对应的提示
4.支付时对方异地登录是否有对应提示
5.支付扣的钱和零钱或者银行卡里少的钱数一样
6.在新的设备上支付时都需要认证,授权

界面
1.扫描二维码对应收款人的头像和信息是否正确
2.界面的排版是否符合合理,按钮大小,输入框大小
3.界面里是否我有错别字
4.界面颜色搭配是否合理

易用性
1.界面显示是否符合大多数人的使用习惯
2.付款二维码不用输入密码就可以完成对应的支付
3.指纹支付只要有在指纹处输入指纹就可以支付
4.支付用户可以选择自己喜欢的方式进行支付

兼容性
1.在安卓机和苹果机上都可以支付
2.对不同商家的微信收钱码均可以扫描
3.在不同的品牌的手机都可以支付


登录模块测试

登录模块
界面UI测试
1.布局是否合理,输入框,按钮对齐方式
2.输入框和按钮的高度,长度是否符合要求
3.界面的设计风格是否与UI的设计风格统一
4.界面的文字简洁易懂,没有错别字
功能测试
1.用户名,密码输入为空,点击查看提示信息
2.输入正确的用户名和密码,点击验证登录成功
3.登录成功后,验证是否跳转到正确的页面
4.用户名,密码如果过长,过短,是否有提示
5.用户名和密码前后有空格的处理
6.用户名和密码中有特殊字符或其他非英文的情况
7.记住用户名的功能
8.登录失败后,不能记住密码的功能
9.密码是否加密显示
10.登录页面的注册,忘记密码,登出等用另一账号登录链接是否正确
11.输入密码时,大写键盘开启是是否有提示信息
12.输入错误的用户名和密码,查看提示信息
性能测试
1.打开登录页面,需要几秒
2.输入正确的用户名和密码,登录成功不超过5s
兼容性测试
1.主流浏览器是否显示成功(IE8,9,10,11,Firefox,Chrome,Safafi)
2.不同的平台是否能显示成功(Mac,Windows)
3.移动设备上是否显示成功(Android,IOS)
4.不同的分辨率
可用性测试
1.是否支持全键盘操作,是否有快捷键
2.输入用户名和密码,按回车,是否可以登录
3.输入框能否可以Tab键切换
安全测试
1.登录成功后生成的Cookie,是否是Http only
2.用户名和密码是否通过加密的方式发给Web服务器
3.用户名和密码的验证,应该是在服务器端,而不是在Javascript前端
4.用户名和密码的输入框,应该屏蔽SQL注入
5.用户名和密码的输入框,应该禁止输入脚本
6.错误登录的次数限制
7.考虑是否支持多用户在同一机器上登录
8.考虑一用户在多台机器上登录


微信红包测试

功能测试
发红包能否发送成功:
可以测试以下数据(0.01-200)
数字:测试0, 0.009, 0.01,0.011, 01, 199.99, 200, 200.01这些边界值
中文、英文、特殊字符或者这几种的组合
是否支持复制黏贴
为空/包含空格
金额的增删查改
双方金额是否一致

性能测试
1)打开红包的响应时间不能超过三秒,高并发场景下不能超过5秒
2)耗电量
3)消耗流量的多少
4)所占内存

安全性测试
输入密码错误
密码是否显示
指纹错误

兼容性测试
1)苹果手机和安卓手机
2)苹果手机的不同版本
3)安卓手机不同的机型

中断测试:
前后台切换,网络异常,低电量,断电,来电,短信等

网络测试
1)网络兼容性:2g/3g/4g,WiFi,热点,移动/联通/电信
2)无网测试
3)弱网:延时&丢包

与本文相关的文章

发布评论

评论列表 (0)

  1. 暂无评论