1.软件测试流程是什么样的,简述自己对功能测试,性能测试,自动化测试的理解
第一步:需求分析与评审,此过程主要是保障测试人员早介入、早发现、早修复需求中存在的BUG;
第二步:编写测试计划与测试方案,做任何事情之前都需要先做计划、考虑风险及解决方案、确定可行性的测试方法、工具与环境等;
第三步:设计测试用例与评审,很多小伙伴以为测试就是简单的点点点,其实不然,软件测试是一门艺术,它需要很多科学的方法去指导相关的测试活动,尤其是测试用例设计;
第四步:执行测试用例与缺陷跟踪,当启动测试执行活动后,作为软件质量的守护者肯定能在自家的产品中或多或少的发现一些BUG,请小伙伴记住软件测试的目标是尽可能早地找出软件缺陷,并确保其得以修复。
第五步:编写测试报告,一个阶段的活动结束后软件测试负责人需要对本阶段的测试活动进行一些阶段性的总结,主要包含BUG的统计与分析、版本测试结论等。
功能测试:
根据产品特性、操作描述和用户方案,测试一个产品的特性和可操作行为以确定它们满足设计需求。
功能测试又称为黑盒测试,是把测试对象看作一个黑盒子。利用黑盒测试法进行动态测试时,需要测试软件产品的功能,不需测试软件产品的内部结构和处理过程。
性能测试:
性能测试是通过自动化的测试工具模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进行测试。负载测试和压力测试都属于性能测试,两者可以结合进行。
通过负载测试,确定在各种工作负载下系统的性能,目标是测试当负载逐渐增加时,系统各项性能指标的变化情况。
压力测试是通过确定一个系统的瓶颈或者不能接受的性能点,来获得系统能提供的最大服务级别的测试。
性能测试目的:验证软件系统是否能够达到用户提出的性能指标,同时发现软件系统中存在的性能瓶颈,优化软件,最后起到优化系统的目的。
自动化测试
自动化测试是把以人为驱动的测试行为转化为机器执行的一种过程。通常,在设计了测试用例并通过评审之后,由测试人员根据测试用例中描述的规程一步步执行测试,得到实际结果与期望结果的比较。在此过程中,为了节省人力、时间或硬件资源,提高测试效率,便引入了自动化测试的概念。
2.数据库
select stu.name,sub.subject,s.score from student as stu inner join subjects as sub inner join scores as s on stu.id = s.stu_id and sub.id = s.sub_id order by sub.subject
3.逻辑分析题:
如果你有无穷的水,一个3公斤的提桶,一个5公斤的提桶,两只提桶的形状上下都不均匀,如何可以称出4公斤的水?
先把5公斤的桶填满,倒入3公斤的桶内,这时还剩2公斤。再把3公斤的桶倒掉,把剩下的2公斤水倒入3公斤的桶内。这时3公斤的桶内装了2公斤的水,5公斤的桶是空的。再把5公斤的桶填满,向3公斤的桶内倒入1公斤的水,这时5公斤的桶内有4公斤的水
4.程序设计
1.统计整数1-100之间所有被3和7整除的数字的个数
int count = 0;
for (int i = 0; i <= 100; i++) {
if (i%3==0 && i%7==0){
count = count + 1;
}
}
System.out.println(count);
2.找出数组int[] a={2,3,6,4,7,9,4,2,3,1};中所有重复的数据,以及重复数字的索引
int[] a = {2,3,6,4,7,9,4,2,3,1};
for(int i = 0;i < a.length();i++){
for(int j = 0;j < a.length();j++){
if(a[i] == a[j]){
system.out.plintln("重复的数据为:"+a[i]);
system.out.plintln("重复的下标为:"+i+"和"+j)
}
}
}
正大
一:说一下自己对软件测试的理解
即软件测试的目的和原则
二:描述一下产品的生命周期
1) 计划:产品定义阶段
2). 分析:外部文档阶段
3). 设计:文档架构阶段
4). 构建:单元测试阶段
5). 测试周期:错误修正,重复系统测试阶段
6). 最后的测试和实施:代码冻结阶段
三:简述一下测试的流程
1:文档评审
2:测试计划
3:测试设计
4:测试执行
5:测试总结
四:如何编写测试报告
1,不能用中文写,最好英文,或者其他语言
2,报告基本是用Word编写的,记得在页眉上附上公司Iogo和某某测试部
3,测试说明部分、说明测试使用技术、工具并说明他们都具有哪些国际性优势
4,测试方案部分,说明测试思路,逻辑和用例,请附上逻辑图,测试用例要用代码编写或者用Xml文件编写。如果你写成excel样式的用例,那真的很不professional
5,数据分析部分,一定要带上各种表格,纯文字太LOW了,线图,饼图,柱图能上的都上
6,缺陷列表部分,请按照缺陷等级有秩序的划分,最严重的等级一定用红色表示,
7,风险评估及总结部分,注意字体加粗,颜色依旧用红色。一定要注意某某问题不修改,会严重导致我们用户唾弃我们的产品
8,写清楚测试人,第一次测试日期,第二次测试日期,第N次测试日期,N>=5
9,所有原始数据要打个压缩包并附上,因为以科学为依据,以事实为准绳
随着测试工作越来越受重视,开发团队向客户提供测试文档是不可避免的事情。但不能把工作中的测试文稿提供给客户,这样可能会让顾客失去信心
10,测试报告分为内部测试和外部测试,内部报告是我们在测试工作中的项目文档,反映了测试工作的实施情况,
11,外部测试报告的满足需求
五:场景:针对微信朋友圈的使用,计一下测试用例
1、朋友圈发送功能
1)只发送文本
a、考虑文本长度:1-1500字符(该数据为百度数据)、超出最大字符长度
b、考虑文本类型:纯中文、纯数字、纯字母、纯字符、纯表情(微信表情/手机自带表情)、混合类型、包含url链接;因为过长纯类型需要换行很容易出现超出边框问题,所以这里先考虑过长纯类型情况
c、文本是否支持复制粘贴
d、为空验证
2)只发送图片
a、本地相册选择/拍摄
b、图片数量验证:1-9张图片、超出9张
c、图片格式验证:常见图片格式jpg、png(以实际微信需求支持的格式为准)、动态gif图片、不支持的图片格式
d、图片尺寸验证:最大700*800像素(此为百度数据)、超出最大尺寸范围是否压缩
e、图片大小验证:1-300kb(此为百度数据)、超出300kb
f、图片的预览验证:点击支持预览大图、多张图片支持左右滑动预览
g、图片的增删改操作
h、为空验证
3)只发送视频
a、本地相册选择/拍摄
b、视频秒数验证:1-10s,超出10s
c、视频个数验证:1个,超出1个
d、视频格式验证:支持的视频格式,例mp4、不支持的视频格式
e、视频大小验证:苹果400kb以内、Android200-300kb(此为百度数据)、超出规定大小
f、视频预览增删改操作
g、为空验证
4)发送文本+图片:输入满足要求的文本、图片进行一次验证
5)发送文本+视频:输入满足要求的文本、视频进行一次验证
6)发送图片+视频:不支持发送
7)朋友圈发送内容是否有限制,例如涉及黄赌毒等敏感字
8)所在位置
a、不显示位置:发送到朋友圈动态不显示位置
b、选择对应位置:搜索支持、自动定位、手动编辑
C、点击取消,返回上一级页面
9)谁可以看
a、设置公开:所有朋友可见
b、设置私密(仅自己可见):自己查看朋友圈-可见、好友查看朋友圈-不可见
c、设置部分可见(部分朋友可见):选择的部分好友-可见、不被选择的好友-不可见、是否有人数上限
d、设置不给谁看(选中的朋友不可见):不被选中的朋友-可见、被选中的朋友-不可见、是否有人数上限
e、点击取消,返回发送页面
10)提醒谁看
a、提醒单人/提醒多人:被提醒的朋友-收到消息提醒、未被提醒-未有消息提醒
b、是否有人数上限
c、点击取消,返回发送页面
11)同步QQ空间:默认不同步、同步到QQ空间
12)取消发送朋友圈操作
a、选择相机,点击取消,返回朋友圈页面
b、进入朋友圈发送页面,选择文本图片,点击取消
13)朋友圈当天发送次数是否有上限限制
2、朋友圈浏览功能
1)文本查看:
a、过长文本内容是否隐藏,并支持查看全文
b、右键选择复制、收藏、翻译
c、url链接是否支持点击跳转网页
2)图片查看
a、小图右键支持收藏/编辑
b、点击支持大图浏览
c、选择发送给朋友、收藏、保存图片、编辑
d、多张图片支持左右滑动浏览
3)视频查看
a、右键视频支持静音播放/搜藏
b、点击视频播放按键支持播放视频
c、选择发送给朋友、收藏、保存视频、编辑
4)分享动态浏览:QQ空间/公众号文章/非腾讯产品分享后朋友圈是否正常显示
5)赞:点赞、取消点赞
6)评论
a、评论长度:评论字数合理长度、评论超过字数上限
b、评论类型:纯中文、纯数字、纯字母、纯字符、纯表情(微信表情/手机自带表情)、混合类型、包含url链接;
c、评论是否支持复制粘贴
d、为空验证
e、发表评论后删除
f、评论回复操作
7)删除朋友圈动态
8)更换相册封面
9)刷新是否正常获取新动态
10)上滑是否加载更多
界面/易用性测试
1、技术人员角度:页面布局设计是否跟产品原型图/ui效果图一致
2、但除了考虑1之外,我们同样要考虑到用户使用:功能操作是否简便,页面布局排版风格是否美观合理,提示语相关信息是否易于理解
中断测试
1、主要考虑:a)核心功能 b)当前功能存在实时数据交换,例发朋友圈、浏览朋友圈进行中断,是否容易出现崩溃
2、中断包括:前后台切换、锁屏解锁、断网重连、app切换、来电话/来短信中断、插拔耳机线/数据线
网络测试
1、三大运营商不同网络制式测试
2、网络切换测试:WIFI/4G/3G/2G
3、无网测试:对于缓存在本地的数据,部分朋友圈信息是否支持浏览
4、弱网测试:
a、延时:页面响应时间是否可接受、不同网络制式是否区分超时时长、出现请求超时,是否给予相应的提示
b、丢包:有无超时重连机制、如果未响应,是否给予相应提示
c、页面呈现的完整性验证
兼容性测试
1、Android手机端、苹果手机端、pad版(主流)功能界面显示是否正常
2、各平台朋友圈展示数据是否一致
发送朋友圈时,文本输入脚本代码,是否出现异常
1、服务器性能测试
可通过loadrunner/jmeter工具实现,主要关注TPS、响应时间、吞吐量、CPU、内存等
2、app客户端性能测试
可通过GT工具实现,运行时关注cpu、内存、流量、电量等占用率
3、app压力稳定性测试
通过monkey工具实现,频繁发送朋友圈,浏览朋友圈请求,是否容易发生崩溃
六:代码延伸
三角形三条边分别为a,b,c
要求:1:要构成三角形,必须要任意两边和大于第三边
** 2:输出结果:能否构成三角形,三角形的类型是什么**
自己熟悉什么代码语言,并用自己熟悉的代码语言写出来
## **public boolean isTriangle(int a,int b, int c){ boolean flag=false; //Java Math.abs() 方法返回参数的绝对值 /
/参数可以是 int, float, long, double, short, byte 类型
if ((a+b>c&&a+c>b&&c+b>a)&&(Math.abs(a-b)<c&&Math.abs(a-c)<b&&Math.abs(c-b)<a)){ flag=true; shape(a,b,c); }else {
System.out.println("这不能构成三角形。"); } return flag; }
public String shape(int a,int b, int c){
String shape=null;
if (a*a==b*b+c*c||b*b==a*a+c*c||c*c==a*a+b*b){
shape="直角三角形";
System.out.println("这是"+shape); }else if (a*a>b*b+c*c||b*b>a*a+c*c||c*c>a*a+b*b){ shape="钝角三角形";
System.out.println("这是"+shape); }else if (a*a<b*b+c*c||b*b<a*a+c*c||c*c<a*a+b*b){ shape="锐角三角形";
System.out.println("这是"+shape); } return shape; } }**
七:如何判断一个bug是客户端问题还是服务器问题还是前段问题
1、通过抓包或者开发者模式过滤信息
a、传入参数错误(缺参、错参等),导致的问题往往是前端bug;
b、传入的参数与接口文档一致,数据返回正确,界面显示错误(字段取错),往往是前端的bug;
c、传入参数正确,数据返回错误,往往是后端的bug。
d、根据响应状态码:404客户端请求路径错误,500服务器内部错误
2、根据前后端的bug特点来定位问题
a、前端bug特点:界面相关(文本问题可能是html产生的bug)、布局相关(样式问题可能是css产生的bug,图片尺寸分辨率等)、兼容性相关
b、后端bug特点:业务逻辑相关(排序、分页)、数据相关、性能相关、安全性相关。
3、查询系统日志
如果查不到错误日志前端的问题概率大,反之后台的问题。
4、通过sql语句查询数据,是否有数据入库。
有些项目接口与接口之间存在相互调用,不同的接口是不同的开发人员,我们可以通过查询数据的方式来区分哪个接口问题。比如:在A模块添加一条数据,但是在B模块没有展示,这时我们 通过查询数据库的数据来确认,是A模块没有插入数据,还是B模块没有查询到数据来缩小问题的范围。
5、根据测试经验
软件测试人员应不断精进自己的技能,负责的项目多了,自然对功能的实现过程有了解,也就明白如何分类BUG了。再就是与开发人员多沟通,熟悉业务,每个模块是哪个开发负责的。
八:简述软件项目的迭代流程,你在过去的工作中参与过哪些环节
**一次完整的产品迭代流程需要经过 问题&假设(需求) -> 评估标准 -> 开发埋点 -> 实验&分析 -> 长期观察 五个步骤
问题&假设(需求) -> 评估标准 -> 实验&分析 -> 长期观察
九:临近发版阶段,突然产品要添加一个需求,直接来找你,你该怎么做
一切按流程走,看成本,即付出的时间成本,人力成本和机会成本。简而化之:
有时间且成本允许,马上改;
有时间成本不允许,放弃修改;
没有时间成本允许,迭代修改;
没时间且成本不允许,放弃修改。
十:口述题: 是否遇到过测试任务过多无法完成的情况?当时你是怎么解决的?
把任务分级,先做重要的,再做紧急的,然后做其他的。
十一:在同一个项目组内,你认为你怎么做会比另外一名测试更加优秀
业务熟悉度更高, 架构理解更深入, 代码能力要更好, 协调推动能力更强
十二:版本发布后,线上出现了bug,你认为改怎么解决
1.首先要做的是重现这个问题并反馈给研发人员,尽快出patch或者解决方案。
2.当BUG解决且上线没有问题之后,我们再看后续的处理。
追查原因及处理方法:
这个BUG出现的原因是什么。
** 2测试上线后出现问题分为几种情况:**
** 1)测试环境无法重现:可能是线上的环境造成的BUG或者是测试环境无法模拟的情况.**
** 解决方法:尽量完善测试方法、尽量模拟测试环境、增加线上测试。**
** 2)漏测:**
** 1.测试用例裁剪过度:错误预估优先级或者时间过于紧迫裁剪了用例**
** 解决方法:在后续版本或者其他项目启动时重新评估测试时间,要求专家介入对优先级进行评估,避免此类事件再次发生。**
** 2.测试用例执行期间遗漏:由于测试人员疏忽造成测试用例执行遗漏。**
** 解决方法:调查该名测试人员的整个测试过程的工作情况,并随机抽测其他模块,**
** 3.测试用例覆盖不全:由于用例评审的不严格造成的;中途需求变更造成的;由于某些其他因素造成的。**
** 解决方法:找到原因,并进行记录,在以后的项目或者下一版本重点关注。**
十三:你做软件测试多久了?你认为对于测试人员,最重要的三个特点是什么?
三个特点:
第一个特点:不做同类型的工作,每次参与新项目,都要和一些新同事合作,学习新技能。
第二个特点:更愿意参加早期阶段的项目,因为这样能接受更多的新信息。
第三个特点:愿意和人们分享他们的想法。
简答题
一:商品B原价:13.00元 限时折后价:10.00 优惠券:0.00元 优惠券使用后应付10.00元 满10-1元 使用后应付9.00元 实付:9.00元(这种计算方法对吗?如果对请答:正确:如果不对:请写出正确的计算方法)
正确
二:商品C原价:22.00元 限时折后价:20.00 优惠券:5折 折扣使用后价格为多少元?之后参加满减优惠:满5元减5元 实付多少元?
5元
三:用边界值法测试,一个商品价格区间为0元至5元,那么,在测试中应该取的边界值是什么?
2
四:一个新项目下来,要经过哪些个测试阶段才能正式发布?
1、需求说明书审查
2、概要设计和程序设计审查
3、单元测试
4、集成测试
5、功能测试
6、确认测试
7、系统测试
五:app和web测试有什么不同
区别:
系统架构方面:
web项目,一般都是b/s架构,基于浏览器的
app项目,则是c/s的,必须要有客户端,用户需要安装客户端。
web测试只要更新了服务器端,客户端就会同步会更新。App项目则需要客户端和服务器都更新。
性能方面:
web页面主要会关注响应时间
而app则还需要关心流量、电量、CPU、GPU、Memory这些。
它们服务端的性能没区别,都是一台服务器。
兼容方面:
web是基于浏览器的,所以更倾向于浏览器和电脑硬件,电脑系统的方向的兼容
app测试则要看分辨率,屏幕尺寸,还要看设备系统。
web测试是基于浏览器的所以不必考虑安装卸载。
而app是客户端的,则必须测试安装、更新、卸载。除了常规的安装、更新、卸载还要考虑到异常场景。包括安装时的中断、弱网、安装后删除安装文件 。
此外APP还有一些专项测试:如网络、适配性。
六:工作中会发现有些难题你是倾向于找领导解决还是自己解决完之后告知领导你的结果?
能自己搞定当然自己搞定就好了,但是如果自己搞不定或者搞定很困难,就要提出来。