软件测试的面试题

一、 络正常、账 和密码也正确,但登录失败,可能会有哪些原因br> 1.可能是服务器异常,或者是服务根本就没有启动;
2.可能是你这个账 错误次数太多了导致账 被冻结了;
3.有可能你的账 被加入黑名单了,可以去检查一下;
4.可能是服务器的一个性能瓶颈,导致它不能够再登录了;
5.有可能是它做了一个登录的限制,不允许多点登录,所以你这个账 如果在别的地方已经登录过了,这个地方就不允许再登录了

二、SIT和UAT测试有什么区别br> SIT和UAT既有区别又有联系,区别:首先从时间的一个角度上,SIT在前面,UAT在后面,先有SIT再才有UAT;第二个就是从人员的角度上,SIT是由测试人员去做,UAT是由用户去做;第三个是做的一个事情上有区别,SIT是由测试人员根据测试人员的一个专业的一个思维去找bug,而UAT是用用户的角度来验收产品(是不是满足用户的一个需求,能不能够使业务实现)。
联系:它们都是来自于同一份需求文档。

三、如果用户反馈,这个图片加载不出来,你的定位思路是什么样的呢br> 首先我们需要去收集用户的各种信息,包括他的环境信息浏览器信息以及他的操作信息和他的 络状况信息等等各种用户信息,然后把收集到的用户信息在测试环节上进行复现,那具体的思路可以是:是否是 络不好、是否是某些工具屏蔽了图片的显示、是否是浏览器不兼容、是否是gif图片无插件的支持,如果这些都不是,那么我们可能需要去通过查看服务器上的后端日志,然后提交给到开发,需要通过开发的协助帮忙解决问题,

四、什么是数据驱动br> 数据驱动就是指通过excel或者是xml或者是数据库等这一些数据结构来维护咱们测试数据,通过相应的技术去处理拿到咱们的测试数据用于测试,从而实现测试数据和代码的解耦,那数据驱动测试的本质是高级的参数化

五、什么是嵌入式测试br> 嵌入式测试就是对嵌入式软件进行的一种测试,那么嵌入式软件它是一种嵌入在硬件中的操作系统和开发工具软件,那么像我们生活中可以看到的这种监控录像设备还有机顶盒等都是属于一种嵌入式产品,所以嵌入式测试是针对于这一类软件的一个测试,有点偏硬件、非纯软件测试。

六、什么是埋点测试br> 埋点测试其实是数据采集的一种专业术语,而数据采集的目的是将采集的数据提供给像运营人员这样的专业人员进行一些数据分析的,比如说我们对软件的某些模块和场景下面的用户的一些使用情况进行一些埋点触发,并且将采集的数据进行上 ,然后由专业人员对这些上 的数据进行一些分析汇总以及一些整理和 表的一些展示,最终得出用户对这个软件的一个普遍使用行为,最后我们可以对这个软件进行一些优化和改良,然后更加符合用户的需求和体验。

七、web兼容性测试的工作内容有哪些br> 兼容性测试主要从以下几个方面来考虑:首先浏览器,然后操作系统,还有我们的分辨率、 速等各因素来考虑这个兼容性测试,那么主要针对web应用,我们 主要考虑的是浏览器的兼容性测试。
浏览器的兼容性测试一般来说是伴随着 功能一起来做的,我们在验证这个应用的一个功能的同时会同步的检查:页面的一个格式、字体,还有各种输入框、下拉框、复选框、按钮等它们的一个排版和显示都是正常的,不会出现一些重叠、错乱等现象。

八、Beta测试和alpha测试的区别br> alpha测试是公司内部在模拟实际操作环境下进行的一种验收测试,那公司内部会组织内部员工,也需要用户的参与,alpha测试不能够由程序员或测试员来完成;
Beta测试是软件多个用户在一个或者是多个环境下使用的一种测试,beta测试是不能够由程序员或者是测试人员来完成。

九、怎么保证测试用例的覆盖率br> 在需求阶段,首先先熟悉产品的核心业务功能以及功能细节的一些联系,然后同时去参考一些成熟产品,把一些功能的细节实现,一些不明确的地方要跟开发和产品沟通清楚。
需求确定之后,我们需要按照功能模块来设计测试用例,或者是说提取测试点 ,其中需要用一些科学的用例设计方法 ,比如 说等价类、边界值、场景法等来设计我们的测试用例,那么整理完毕之后呢,我们需要在组内进行一个用例的一个评审来确保测试用例对需求的一个覆盖完整 ,
最后在我们的测试执行过程中,会一边测试,一边对测试用例进行一个补充,让我们的用例不断的完整和完善 。

十、MD5、AES和RSA加密的区别是什么br> 其实它们都是一些加密算法,首先我们说下MD5,MD5它是一种不可逆的加密算法,也就是说我只要加密了,它就不能够被解密,比如说我们一个用户他登录的一个信息被加密了,那么他存在于数据库中也是加密之后的字符串,连服务器都没有办法进行解密,所以MD5这种算法基本上被用来保护我们数据的一个正确性,防止木马跟病毒的一个植入;
而AES和RSA就属于另外一种加密算法,它们是可解密的,它们俩是对称加密算法以及非对称加密算法,那么AES就属于对称加密算法的一种,而RSA就属于一种非对称加密算法

十一、docker与K8S有什么区别br> K8S是基于容器的集群管理平台,那K8S架构通常是一个K8S的集群,集群又包括有两部分:一个Master的节点和一群Node节点;Master的节点是主要负责管理和控制的,那Node节点主要是工作负载节点,它里面就是具体的容器了。K8S是管理docker的。

十二、对称加密和非对称加密有什么区别br> 可以想象成一把锁跟钥匙的关系,对称加密就是我们的关锁和开锁,用的是同一把钥匙,而非对称加密关锁是一把钥匙,开锁用的是另外一把钥匙。非对称加密是为了安全,比如现在我想要跟你说一个悄悄话,那么我用我的密码给这个悄悄话加了密,本来只有你能看见,但是如果说这个密码不小心被泄漏出去了,那么所有人都可以用这个密码来解密我给你的消息,能够看到我们这个悄悄话了,这样子多不安全呀。

十三、Java和JavaScript的区别br> 首先,Java和JavaScript是两个不同的公司开发的两个不同的产品,Java是原Sun Microsystem公司推出的一款面向对象的程序设计语言,它特别适合我们互联 的一个应用程序的开发,而JavaScript是由Netscape公司研发出来的,是为了扩展Netscape浏览器的一个功能而研发出来的一种可以嵌入web页面运行的一种解释性语言,最后,JavaScript的前身是LiveScript,而Java语言的前身是oak语言

十四、测试开发和开发的区别br> 测试开发本质上还是测试岗位,而开发是一个开发岗位,它们两个是不同的一个岗位。
测试开发是用自己的代码能力去实现一些工具或者框架,本质上是为了测试而服务的,而开发纯粹是为了写代码去实现一个软件,然后是为了服务于用户的需求的,最后它们两个的一个技能要求也是不一样的,虽然他们都对代码有要求,但是测试开发他还需要你有一定的测试思维,以及测试理论基础知识,而开发纯粹是开发,他不要求你有测试的一个知识,但是开发对一个代码的技能要求要比测试开发要高

十五、给你一个N95怎么写测试用例br> 根据我对N95口罩的理解,我觉得主要可以从以下几个方面来考虑:
从功能方面来考虑:首先它应该能够过滤掉一些颗粒物以及一些粉尘,其次应该可以过滤掉一些异常的气味的气体,以及部分的病毒和细菌;
从界面方面来考虑:看一下这个口罩的包装上面是否有商品名、合格证以及一些使用说明,再次口罩的包装是否完整没有破损;
从兼容性方面来考虑:口罩是否可以适配各种脸型,其次是否可以适合各种肤质,不会引起过敏反应等;
从性能方面来考虑:如果说挤压口罩或者是撕扯口罩,不会那么容易进行一个破坏,然后戴的时间比较长的时候,它的防护作用不会降低;
从安全方面来考虑:口罩不会造成呼吸困难以及缺氧头晕等风险;
从易用性方面来考虑:口罩是否方便携带,方便佩戴方便折叠等

十六、测试用例的主要要素有哪些br> 1.用例的编 ,它可以用来唯一的标识这条用例;
2.测试项,表示你当前测试的是哪个项目的哪个模块;
3.测试的前置条件,我要执行这个测试用例需要哪些基本的条件需要满足;
4.测试的输入和步骤,我要执行这条用例需要哪些步骤以及需要输入哪些数据;
5.**测试的预期结果是怎样的*这个预期结果是我们到时候去评判这条用例是否通过的一个标准;
6.真实执行结果,到时候我执行之后,这个用例是否通过的话可以标识在这个真实执行结果里面。

十七、bug定位有哪些方法br> bug定位主要有以下几种方式:
1.抓包,通过使用抓包工具,比如说fiddler来捕获客户端和服务器端之间的 文交互,用来分析是前端还是后端的问题;
2.查看日志,我们通常通过查看后台日志的方法来分析定位具体的错误原因和位置;
3.查看数据库,通过检查数据库的数据和业务是否相同来分析定位问题。

十八、测试数据如何存放br> 测试数据其实分很多种,有像注册登录这种用户数据,也有一些像接口的参数这种数据,还有一些像邮箱配置这种数据,那么不同的数据我们会用不同的文件来进行一些管理。
像账 密码邮箱配置这一类管全局的参数,我们可以用命令行的方法把它抽取出来,然后放到我们的配置文件里面进行管理;
第2种对于一些消耗型的参数,比如说注册,我需要每次注册的一个账 都是不一样的,那么我们可以用一些随机函数来生成;
第3个对于一个接口有多组测试参数的时候,我们可以进行参数化,数据可以放在类似于json、excel表格中进行管理;
第4个对于那种需要反复使用的数据,比如说订单的各种状态需要去造数据的话,我们可以存在于数据库中,然后每次进行数据初始化用完之后再进行清理。

十九、全局变量和局部变量有什么区别以及怎么实现的br> 1.作用域不同——全局变量的作用域是整个程序,而局部变量的作用域只是当前的循环或者当前的函数
2.存储的方式不同——全局变量存储的是全局数据区中,而局部变量存储的是栈区中
3.生命期不同——全局变量的生命期是和主程序一样,随着程序的销毁而不存在,而局部变量的生命期是随着函数的退出或者是循环的退出而不存在
4.使用方式是不一样的——全局变量在声明了之后可以在持续的各个部分去使用,而局部变量只允许在局部使用,而且在函数内部它是优先使用局部变量再使用全局变量的

二十一、C/S架构和B/S架构有什么区别br> C/S架构更好用一些,独立安装客户端功能更稳定,
B/S架构要好一些,因为用C/S架构客户端经常要更新,比较麻烦
B/S架构不需要安装客户端,一个浏览器就可以访问所有的
这两种架构的应用测试的思维和方法基本上是差不多的,包括一些页面点击,跟数据库的一些交互等等都是一样的
因为C/S架构是基于客户端的,所以测试点的话还需要考虑到软件的安装及卸载、中断测试、消息推送测试以及客户端的兼容性测试等部分,B/S软件还需要考虑浏览器的兼容性

二十二、对含有验证码的功能,如何做自动化测试br> 1.让开发设置一个万能验证码即可
2.在测试环境的话,可以让开发把验证码去掉,当然在正式环境或者是预发布环境再恢复回来
3.通过cookie绕过登录
4.使用图像识别技术识别验证码

二十三、兼容性测试主要测试哪方面br> 关于兼容性测试,我们可以从以下2种应用来进行说明
1.web应用,我们主要考虑的兼容性是浏览器的一个兼容性测试,浏览器的兼容性测试主要可以考虑一下我用不同的浏览器来看一下页面是不是正常的,包括页面的文字、排版、复选框、勾选框等等这种是不是有错乱,是不是有一些混合重叠的地方,这就是我们web应用的兼容性测试的一个检查点
2.移动端应用,这种app的兼容性测试,我们主要考虑一下手机的系统版本、手机的一个型 以及手机屏幕的大小和分辨率这些因素来进行考虑,检查的内容其实也是包括应用的一个UI的检查,文字排版还有一些按钮的显示等等,还有一些基本的页面的功能是否能用

二十四、B/S架构的系统,主要从哪些方面去测br> 1.功能测试,要覆盖业务逻辑测试,还有一些页面的跳转以及一些数据的测试
2.兼容性方面,我们可以选取目前市面上比较主流的浏览器,像Google、Firefox以及IE
3.界面测试,字体颜色大小、图标和间距等
4.性能测试,考虑一下连接的速度、负载测试和压力测试
5.安全性方面,有权限控制、登录密文、修改密码以后的重新登录以及密码失效时间

二十五、刚提测完,产品又要临时改需求怎么办br> 1.首先可以协助公司制定一个规范的流程,从流程控制上面去限制产品随意更改需求的情况;
2.如果确定了本次需求要临时进行变更,那么一定要通知到整个项目组,尤其是要项目经理在申请单上签字,然后去申请更多的测试时间并且告知可能存在的风险
3.如果没有办法申请更多的时间,那就只能加班完成了

二十六、如果页面上获取不到元素该怎么处理br> 1.有可能是页面元素加载太慢了,这个时候需要加一个等待
2.页面有frame框架页面需要先进入frame框架页面再定位
3.可能该元素是动态元素,那我们的定位方式要优化,我们可以使用到部分元素定位或者是父元素以及兄弟元素进行定位
4.可能已经识别到了元素,但是这个元素不可写或者是不可点击,最好的方式是通过js或者是其他的一些指令先去完成它的前置的一些操作
5.元素定位表达式写错了

文章知识点与官方知识档案匹配,可进一步学习相关知识MySQL入门技能树数据库组成31842 人正在系统学习中

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2022年1月15日
下一篇 2022年1月15日

相关推荐