当前位置:   article > 正文

软件测试工程师--面试题_uftuif

uftuif
1、测试总结报告包括哪些

测试开始与结束时间,测试版本、测试人员、测试结果、测试环境,此版本的缺陷列表,哪些是新功能,哪些是上个版本遗留的缺陷,哪些是优化/改进,测试用例的通过数,测试用例的未通过数,以及测试用例的通过率,未通过的用例都集中在哪几个功能模块 ,根据测试经验以及测试结果进行一个缺陷的分析和建议。

测试报告怎么写?

答:测试报告一般包括一下几点
① 基本的知识情况,那么包括测试时间、测试人员、测试环境,以及测试用例的执行情况
② 缺陷的统计分析包括了缺陷的汇总,然后从不同维度缺陷的统计以及分析,还包括遗留问题的整理
③ 知识结构和建议,包括了知识的风险,还要测试的结论,例如测试是否通过、允许上线这些

2、如果给你一个模块/APP/系统/网页(具体、大范围的),你会怎么进行测试/你们的XX是怎么测试的
  1. 先进行需求分析和需求评审,写测试计划和测试用例,进行用例评审
  2. 进行界面还原度测试,界面测试和易用性测试
  3. 功能测试:运行测试用例
  4. 接口测试:用postman测试对应的接口
    • 接口测试需要去验证数据库,如新增操作时,需要在数据库验证该数据是否已增加
    • 接口测试出现错误时需要去看数据库日志和软件运行日志
    • 接口测试的测试点有正确/错误的路径、缺少参数、参数重复、不必要参数,参数长度,类型、是否选填等
  5. 对有需要高并发和大用户量的接口进行性能测试
  6. 注意:在页面加载的时候,可用F12查看加载速度,查看图片等是只加载一次,还是每次加载,查看响应时间
  7. 弱网测试,兼容性测试,app(安装,卸载,中断,版本升级等测试)
  8. 缺陷管理与回归测试,写一份功能测试报告和性能测试报告
重要2、微信发送动态表情包这个模块,你会怎么进行测试
  1. 页面还原度测试
  2. 功能测试的测试点:1、添加表情是否成功;添加后表情显示在最前面;表情包的排版;文件名超长的动图是否能成功添加表情包;50M的动图是否能添加表情包;添加到表情包的动图是否显示清晰;添加到表情包的动图是否按比例压缩成小图;表情包的tab可以正常切换;是否可以修改/删除库中表情包;删除后的表情包是否还可以继续添加;已存在的表情包再次添加是提示还是共存;最多可以存放多少个表情包;2、表情包是否能成功发送;接收到的表情包是否清晰;接收方是否可以将其添加到表情包库;3、兼容性测试(操作系统、分辨率、浏览器(web)、手机品牌(app)、弱网测试)
  3. 接口测试:接口有添加表情包接口、删除表情包接口、发送表情包接口、接收表情包接口、修改表情包接口;对每一个接口进行路径/参数中的空格处理、正确/错误的路径、缺少参数、参数重复、不存在参数,参数长度,参数类型限制、是否选填等测试;进行接口测试时需要在数据库进行数据校验
  4. 性能测试:测试单个接口的性能,测试多接口混合的性能、也可对模拟场景(如先添加表情包后发送该并表情包最后删除表情包等有序操作)进行性能测试
    注意:一般问对模块的测试,都会涉及到功能测试(包括弱网测试)、接口与数据库测试、性能测试相关知识
重要3、对于微信的提现功能的功能测试点

有选择银行卡、输入付款金额、手续费、提现按钮
切记:面试官给你一个页面,肯定不仅仅只是页面,还有该页面与后一个页面的接口成功/失败验证

  1. 银行卡:是否可选,是否单选,是否提现到该银行卡、无效的银行卡、默认显示的银行卡
  2. 金额:负数,可以支持几位小数、最大数额、超长字符、非数字、为空、多个小数点、小数点的位置、空格处理、输入空格、金额高于单日提现最高金额、提现金额高于拥有的金额
  3. 手续费计算是否正确
  4. 提现按钮可用
  5. 提现成功后己方金额是否减少对应的金额,对方金额增加金额-手续费,提现到账时长
  6. 回答的时候总会忽略提现失败时(选择无效的银行卡、弱网、中断)金额是否减少,手续费是否退回,是否单点登录,
3、性能测试报告包含哪些内容?
  1. 编写目的
  2. 术语定义
  3. 测试范围
  4. 测试目标
  5. 测试方法:需求分析阶段、数据准备、脚本录制阶段、场景设计阶段(基准测试、容量测试)、场景执行阶段、系统监控方案(监控目的、监控方法、服务器资源监控方案、loadrunner监控方案)、分析阶段、总结阶段、测试工具
  6. 测试环境:软硬件环境
  7. 测试计划:测试时间和地点、参加测试人员、测试实施进度
  8. 性能测试案例设计:哪些模块
  9. 测试场景设计:基准测试、容量测试
  10. 测试结果:测试情况、统计分析
3、对接口测试的请求参数进行加密

函数助手选择对应的加密方式,生成函数字符串,将函数字符串存放在请求参数中即可

2、软件测试的目的是什么?
  • 提高软件的质量
  • 提高用户体验度
  • 降低软件的开发成本
  • 降低软件风险
3、软件测试到什么程度可以结束

当时面试是这么说的:
测试角度:软件可以达到需求的指标,界面设计美观大方
用户角度:软件的易用性、兼容性、可理解性和用户体验度好
面试官补充了开发角度:代码易于维护,易于迭代,易于接手

4、常见的性能测试工具有哪些?
  • JMeter:采用的是多线程模型(可以设置线程数),扩展性很强(可以添加jar插件),不过制造压力没有那么高。它很适合用来压一些Tomcat服务,或者一些后端接口。JMeter的缺点是压力值不能精确控制,难以适应高并发的情况,而且由于是JAVA编写的,本身比较消耗资源。
  • LoadRunner:更像是一个模拟器,它比较适用于前端构造较复杂场景的情况,比如模拟100个用户登录的场景,LoadRunner对非技术人员提供了很好的支持。LoadRunner不适用后端接口。
5、安装测试
  • 选择不同的文件目录进行安装
  • 是否能安装成功
  • 安装成功后功能是否可用
  • 重新下载时是覆盖安装/提示已安装/兼容多版本
  • 安装时中断(比如来电、重启、关机、退出安装程序等)
  • 当系统未能满足该软件安装占用的磁盘空间会提示什么
  • 检查软件的版本信息,版权声明等信息是否正确
  • 旧版本可直接升级还是需要重新下载安装升级
6、测试一个web页面时,页面显示为空白页,如何定位问题所在?可能是哪些原因引起的?

1、本身页面代码就是空白的。浏览器按F12查看
2,本地无网络,浏览器缓存是否为空白页
3,发送超时,接收超时,服务器超时。
4,域名错误,ip解析不了。

11、对一个网站注册功能开展测试设计,请描述可以从哪些方面考虑?

以下测试点供参考:
填写符合要求的数据注册:用户名字和密码都为最大长度;
填写符合要求的数据注册:用户名字和密码都为最小长度;
填写符合要求的数据注册:用户名字和密码都是非最大和最小长度的数据;
必填项分别为空注册;
用户名长度大于要求注册1位;
密码长度大于要求注册1位;
用户名是不符合要求的字符注册;
密码是不符合要求的字符注册;
两次输入密码不一致;
重新注册存在的用户;
改变存在的用户的用户名和密码的大小写,来注册:
看是否支持tap和enter键等:密码是否可以复制粘贴;密码是否以“之类的加秘符号显示

12、Web系统兼容性测试的测试点有哪些?

操作系统兼容性
浏览器兼容性
分辨率兼容性
弱网测试

  • app兼容性:手机操作系统(ios,安卓,鸿蒙),屏幕分辨率,手机品牌
14、什么是确认测试?

确认测试通常指的是开发人员修复了缺陷并且提交了新的版本给测试人员,测试人员验证这些缺陷是否得到修复的过程。这里的确认指的是确认缺陷是否真正得到解决。对于解决了的缺陷,测试人员将关闭该缺陷,对于没有解决的缺陷,测试人员通常会重新打开该缺陷以便开发人员再次修复。

15、常用Linux命令

top: 查看正在运行的进程的内存等
free:查看系统的总内存
tail -n 10 test. log :查询日志尾部最后10行的日志
df:查看磁盘
su:切换用户
vi/vim:编辑模式
cat:查看文件
mkdir:创建文件夹
touch:创建文件
ifconfig:查看ip地址等信息
pwd:查看当前所在目录的绝对路径
find:在指定目录下查找文件
grep:用于查找文件里符合条件的字符串。
rm -rf 文件名:删除文件,其中-r是删除文件夹和子文件夹,-f是强制删除
grep ‘a’ 1.txt:文本搜索,其中-n 显示匹配行和行号;-i忽略大小写
chmod 777 文件名:更改文件权限
1.查看被占用端口:netstat -ano,列出所有端口的情况,2.查看被占用端口对应的PID,输入命令:netstat -aon|findstr “49157”,3.tasklist|findstr “2720”,4.结束该进程:在任务管理器中选中该进程点击”结束进程“按钮,或者是在cmd的命令窗口中输入:taskkill /f /t /im Tencentdl.exe

Linux下如何将一个用户下的文件拷贝到另一个用户里

Linux中可能需要在不同的用户下进行传递文件,比如用户1(user1)下的/ect目录下的文件1(abc),拷贝到用户2(user2)下的home目录下。
1.用user1登录,将文件1 abc拷贝到/tmp/目录下
   cp abc /tmp/
2.登录用户2(user2),将文件从/tmp/拷贝到home目录下
   su - user2 
   cp /tmp/abc  ~/
3.返回到user1,将/tmp/下刚刚拷贝的删掉
  exit
  rm /tmp/abc
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
16、Linux文件压缩与打包的命令是什么?

.zip文件的解压和压缩
解压:
unzip file1.zip 解压一个zip格式压缩包
bunzip2 file1.bz2 解压一个叫做 ‘file1.bz2’的文件
gunzip file1.gz 解压一个叫做 ‘file1.gz’的文件
压缩:
zip file1.zip file1 创建一个zip格式的压缩包
zip -r file1.zip file1 file2 dir1 将几个文件和目录同时压缩成一个zip格式的压缩包
bzip2 file1 压缩一个叫做 ‘file1’ 的文件
gzip file1 压缩一个叫做 ‘file1’的文件
gzip -9 file1 最大程度压缩

.tar文件的解压和压缩
解压:
tar –xvf file.tar 解压 tar包
tar -zxvf file.tar.gz 解压tar.gz
tar -xjvf file.tar.bz2 解压 tar.bz2
tar –xZvf file.tar.Z 解压tar.Z
tar -xvfj archive.tar.bz2 解压一个bzip2格式的压缩包
压缩:
tar -zcvf 压缩文件名.tar.gz 被压缩文件名 可先切换到当前目录下。压缩文件名和被压缩文件名都可加入路径。
tar -cvfz archive.tar.gz dir1 创建一个gzip格式的压缩包

.rar文件的解压和压缩
解压:
rar x file1.rar 解压rar包
unrar x file1.rar 解压rar包
压缩:
rar a file1.rar test_file 创建一个叫做 ‘file1.rar’ 的包
rar a file1.rar file1 file2 dir1 同时压缩 ‘file1’, ‘file2’ 以及目录 ‘dir1’

17、什么是APP的功耗测试?

APP功耗测试是针对APP的耗电量进行的专项测试,常用方法有:
1.通过手机自带的电量消耗查询的应用查看各个APP电量消耗。
2.基于硬件设备的耗电量测试(在生产厂家用的比较多),具体方法:将手机电池拿掉,并将电流表串联在手机和外部电源之间,将开启APP时的手机耗电量和没有开启APP情况下的耗电量进行对比。
3.利用专业的功耗测试工具

19、一套完整的测试应该由哪些阶段组成?分别阐述一下各个阶段。

一套完整的测试应该由五个阶段组成:
  1.测试计划
  首先,根据用户需求报告中关于功能要求和性能指标的规格说明书,定义相应的测试需求报告,即制订黑盒测试的最高标准,
  以后所有的测试工作都将围绕着测试需求来进行,符合测试需求的应用程序即是合格的,反之即是不合格的;同时,还要适当选择测试内容,合理安排测试人员、测试时间及测试资源等。
  2.测试设计
  将测试计划阶段制定的测试需求分解、细化为若干个可执行的测试过程,并为每个测试过程选择适当的测试用例(测试用例选择的好坏将直接影响到测试结果的有效性)。
  3.测试开发
  建立可重复使用的自动测试过程。
  4.测试执行
  执行测试开发阶段建立的自动测试过程,并对所发现的缺陷进行跟踪管理。测试执行一般由单元测试、组合测试、集成测试、系统联调及回归测试等步骤组成,测试人员应本着科学负责的态度,一步一个脚印地进行测试。
  5.测试评估
  结合量化的测试覆盖域及缺陷跟踪报告,对于应用软件的质量和开发团队的工作进度及工作效率进行综合评价。

20、对一个网站的登录功能开展测试,请描述可以从哪些方面考虑?

对于网站登录功能的测试,可以从以下这些方面考虑,以下测试点供参考:
用户名和密码都符合要求(格式上的要求);
用户名和密码都不符合要求(格式上的要求);
用户名符合要求,密码不符合要求(格式上的要求);
密码符合要求,用户名不符合要求(格式上的要求);
密码是否可以复制;
用户名或密码为空;
数据库中不存在的用户名,不存在的密码;
数据库中存在的用户名,错误的密码;
数据库中不存在的用户名,存在的密码;
输入的数据前存在空格;
输入正确的用户名密码以后按[enter]是否能登陆;
如里注册时密码区分大小写,登录时也要区分密码的大小写等;
使用抓包工具查看密码是否明文显示。

21、自动化测试有哪些局限性?

参考答案:自动化测试不能完全替代手工测试,在下面的领域中自动化测试会有一定的局限性。

  1. 定制性项目:为客户定制的项目,甚至采用的开发语言、运行环境也是客户特别要求的,开发公司在这方面的测试积累少,这样的项目不适合自动化测试。
  2. 周期很短的项目和业务规则复杂的对象:工具很难实现,需要投入的测试准备时间比直接进行手工测试所需的时间更长。
  3. 人体感官与易用性测试:界面的美观、声音的体验、易用性的测试,无法用测试工具来实现。
  4. 不稳定的软件:如果软件不稳定,则会由于这些不稳定因素导致自动化测试失败,或使测试结果本身就是无效的。
  5. 涉及物理交互:自动化测试工具不能很好地完成与物理设备的交互,比如刷卡器的测试等。 不能完全代替人工测试,工具本身不具备思维能力。
  6. 不能立即降低测试投入,提高测试效率。自动化测试的成本问题可能高于人工测试,因为工具的购买及维护的开支很大。
  7. 不能保证100%的测试覆盖率。 需要更长的时间去分析和隔离所发现的缺陷。
22、selenium中如何判断页面元素是否存在

参考答案:Selenium中没有提供原生的方法判断元素是否存在,一般我们可以通过定位元素+异常捕获的方式判断。
法一:
#判断元素是否存在 try: dr.find_element_by_id(‘element_name’) except NoSuchElementException: print (‘element does not exist’)

法二:可以使用elements,查看返回的列表长度是否为0,为0时表示页面元素不存在

23、什么是XPath?什么时候应该在Selenium中使用XPath?

XPath 使用路径表达式来选取 XML 文档中的节点或者节点集,可用于识别网页中的元素。当需要定位的元素,没有可以利用的属性的时候,我们可以使用 xpath 进行定位,xpath 可以定位到页面上的所有标签。
绝对路径用 - / 单斜杠
相对路径用 - // 双斜杠

ID,类,名称也可以用于XPath:
//input[@name=’q’]
//input[@id=’lst-ib’]
//input[@class=’ lst’]

如果id / name / class的一部分是常量 :
//input[contains(@id,’lst-ib’)

25、Web系统测试当中,对于网页中的表单该从哪些方面展开测试?

参考答案:当用户给Web应用系统提交信息时,就需要使用表单操作,例如用户注册、登陆、信息提交等。
在这种情况下,我们必须测试提交操作的完整性,以校验提交给服务器的信息的正确性。例如:用户填写的出生日期与职业是否恰当,填写的所属省份与所在城市是否匹配等。如果使用了默认值,还要检验默认值的正确性。如果表单只能接受指定的某些值,则也要进行测试。例如:只能接受某些字符,测试时可以跳过这些字符,看系统是否会报错。

27、企业项目测试流程

1.熟悉被测产品-业务需求、产品架构
2.确定测试方案
3.准备功能用例
4.编写自动化脚本
5.执行自动化脚本,收集测试结果-输出报告
6.BUG管理,修复,回归测试
7.测试报告提交
8.项目版本确定-上线

28、Web UI自动化测试脚本开发有哪些重要的场景?

参考答案:对Web进行自动化测试,典型的场景有:
元素定位:无论使用XPath,Dom还是CSS,需要简单方便的API定位元素,可以延时等待元素出现;
交互操作:包括文本框、单选框、多选框、按钮、表格单元的输入或者点击;
页面操作:页面切换和关闭、对话框切换和关闭;
其他要求:对主流浏览器测试的支持、对JavaScript的支持等

32、怎么用postman测试验证码这些?

①.可以使用万能验证码进行绕过
②.在测试阶段取消验证码功能
③.获取验证码相关功能获取其session和cookie,在进行提交测试

33、功能自动化测试以及常用工具有哪些?

参考答案:功能自动化测试工具通常通过自动录制、检测和回放用户的应用操作,将被测系统的输出记录同预先给定的标准结果进行比较,功能测试工具能够有效地帮助测试人员对复杂的企业级应用的不同版本的功能进行测试,提高测试人员的工作效率和质量。
其主要目的是用于检测应用程序是否能够达到预期的功能并正常运行。功能测试工具可以大大减轻黑盒测试的工作量,在迭代开发的过程中,能够很好地进行回归测试。
这类工具的主要代表有应用于Windows界面自动化的UFT(QTP)、Web页面自动化测试工具Selenium,APP界面自动化测试工具Appium等。

35、fiddler的使用,抓包方面,用fiddler怎么修改请求参数?

fiddler主要用来做app抓包使用,做弱网测试。现在fiddler客户端做好各项配置,端口设置为8888,然后在手机上设置代理,就可以抓包了。抓包可以看到服务器返回的值(弱网),还能够修改传入参数,传出的参数(接口),模拟网络延时,去构造不同场景。
1.打开fiddler,默认配置,按F12直接开始抓包,或者在顶部file-> capture craffic开始抓包(注意,在抓包之前需要确认右下角的状态是all processes)
2.运行浏览器,输入需要抓包的网址与页面>>>运行
3.返回fiddler,按F12或file-> capture craffic结束抓包
4.在右边框点击filters进行过滤,输入网址后点击actions运行抓包结束
5.修改参数:Rules中设置automatic breakpoints中的before requests,然后在raw中进行参数的修改,再执行Run to Comepletion,查看参数修改后的结果。

36、请简述一下cookie、session以及token的区别

(1)cookie数据存放在客户的浏览器上,session数据放在服务器上。而token是接口测试时的鉴权码,一般情况下登陆后才可以获取到token,然后在每次请求接口时需要带上token参数。
(2)cookie不是很安全,别人可以分析存放在本地的cookie并进行cookie欺骗,考虑到安全应当使用session,session会在一定时间内保存在服务器上。当访问增多,会比较占用你服务器的性能,考虑到减轻服务器性能方面应当使用cookie。
(3)可以将登陆信息等重要信息存放为session;其他信息需要保存,可以放在cookie。

39、python如何连接数据库操作?

PyMYSQL是在python3.x版本中用于连接mysql服务器的一个库
- 首先导入模块(提前pip安装) import pymysql 或者 import mysqldb
- 打开数据库连接 db = pymysql.connect(“ip”,“port”, “username”, “psw”, “db_name”)
- 创建一个对象 cursor = db.cursor()
- sql查询语句 sql = “select * from emp;”
- 执行sql语句 cursor.execute(sql)
- 获取所有记录列表 cursor.fetchall() 然后for循环遍历
-关闭游标cursor.close()
- 关闭数据库连接 db.close()

import pymysql

# db = pymysql.connect(host=ip地址,port=端口,user=用户名,password=密码,database=数据库)
db = pymysql.connect(host='192.168.1.11',port=3306,user='XX',password='XX',database='XX')
cursor = db.cursor()
sql = 'select * from XX'
cursor.execute(sql)
datas = cursor.fetchall()
for i in datas:
    print(i)

cursor.close()
db.close()
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
40、selenium中如何保证操作元素的成功率?也就是说如何保证我点击的元素一定是可以点击的?
  1. 被点击的元素一定要占一定的空间,因为selenium默认会去点这个元素的中心点,不占空间的元素算不出来中心点;
  2. 被点击的元素不能被其他元素遮挡; 被点击的元素不能在viewport之外,也就是说如果元素必须是可见的或者通过滚动条操作使得元素可见;
  3. 使用element.is_enabled()判断元素是否是可以被点击的,如果返回false证明元素可能灰化了,这时候就不能点;
41、面试-谈谈做的项目等

项目的背景:
软/硬件环境:
业务:
职责:
薪资结构组成:工资+项目奖金+年终奖金
职业规划是什么:该公司的这个岗位的职业规划
最深刻的bug:按种类,日志显示修改重新上线的id是一样的,首页数据n,去重查询n-1,然后数据是两个不同的年份是两条数据(根据年份group by)

42、app版本升级的测试点(web没有版本升级的说法)

移动端版本更新升级主要分为强制更新和非强制更新。
强制更新:强制升级是否可以升级成功、升级后的数据是否正常、旧数据是否可以正常使用、强制升级的弹窗是否可以关闭、版本号对比等
非强制更新:1)提示弹框的显示、2)选择暂不更新、3)选择立即更新下载软件不安装,查看是否重新提醒升级、4)非强制更新弹框的提示频率、5)查看设置部分的版本更新、6)回归老版本查看数据是否混乱、 7)版本号对比等等

43、弱网测试

因为目前移动端产品的使用用户所处的网络并非完全的流畅WIFI环境,仍有相当多的用户主要使用4G、3G、2G等网络,另外因移动端产品使用场景多变,如进地铁、上公交、进电梯等,使得弱网测试显得尤为重要。
1、iOS有ios设置各种2G,3G网络的设置
2、可以使用fiddler。Charles等抓包工具设置
3、Chrome的开发者工具F12–>网络可以设置网速

44、测试方法中的因果图

比如搜索功能的模糊搜索和精准搜索
输入一个完整的商品名称比如维他奶,页面就会显示有这个商品的信息;
当只是输入维的时候,页面就会显示商品名称有维字的商品信息

44、对网站提供的查询功能开展测试设计,请描述可以从哪些方面考虑

参考答案:对于网站查询功能的测试,可以从精确查询与模糊查询两个方面考虑,以下测试点供参考:
1、 精确查询:
输入的查询条件为数据库中存在的数据,看是否能正确地查出相应得数据;
输入正确的查询条件前面加上空格,看是否能正确地查出相应的数据;
输入格式或范围不符合要求的数据,看是否有错误提示;输入数据库中不存在的数据;
不输入任何数据;
是否支持table键;
是否支持enter键。
2、 模糊查询:
在精确查询的基础上加上以下一点;
输入一些字符,看是否能查出数据库中所有的相关信息。

45、请描述Nginx服务器的作用与特点?

参考答案: Nginx是一款轻量级的Web服务器/反向代理服务器以及电子邮件代理服务器,并在一个BSD-like协议下发行。
Nginx相较于Apache\lighttpd具有占有内存少,稳定性高等优势,并且依靠并发能力强,丰富的模块库以及友好灵活的配置而闻名。在Linux操作系统下,nginx使用epoll事件模型,得益于此,nginx在Linux操作系统下效率相当高。

46、APP测试一般从哪些方面进行

参考答案:APP是软件系统的一种表现形式,需要根据需求从以下各个方面开展测试:

  1. 功能测试;
  2. UI/界面测试;
  3. 安装、运行、卸载测试;
  4. 兼容性测试;
  5. 中断/冲突测试;
  6. 资源限制性测试;
  7. 安全性测试;
  8. 性能测试。
47、写出bug报告当中一些必备的内容?

硬件平台和操作系统
a) 版本
b) Bug报告优先级:紧急、严重、重要、次要、微小
c) Bug状态:打开、已解决、关闭、重新打开等
d) Bug的编号
e) Bug的分类:新功能、优化、改进、缺陷
f)发现人
g) 经办人
h) 描述
i) 角色
l) 所属模块
m) 附件
n) 提交日期

什么是B/C架构,有什么优缺点?

参考答案:B/S架构的全称为Browser/Server,即浏览器/服务器结构。Browser指的是Web浏览器,极少数事务逻辑在前端实现,但主要事务逻辑在服务器端实现。
B/S架构的系统无须特别安装,只有Web浏览器即可。其实就是我们前端现在做的一些事情,大部分的逻辑交给后台来实现,我们前端大部分是做一些数据渲染,请求等比较少的逻辑。
B/S架构的优点:
1、客户端无需安装,有Web浏览器即可。
2、BS架构可以直接放在广域网上,通过一定的权限控制实现多客户访问的目的,交互性较强。
3、BS架构无需升级多个客户端,升级服务器即可。可以随时更新版本,而无需用户重新下载。
B/S架构的缺点:
1、在跨浏览器上,BS架构不尽如人意。
2、表现要达到CS程序的程度需要花费不少精力。
3、在速度和安全性上需要花费巨大的设计成本,这是BS架构的最大问题。
4、客户端服务器端的交互是请求-响应模式,通常需要刷新页面,这并不是客户乐意看到的。(在Ajax风行后此问题得到了一定程度的缓解)

Selenium中有哪些元素定位方式
  1. 通过ID定位目标元素:driver.find_element_by_id(’i1’)
  2. 通过 className 定位目标元素:driver.find_element_by_class_name('c1’)
  3. 通过 name 属性定位目标元素:driver.find_element_by_name(‘n1’)
  4. 通过Xpath 定位目标元素:driver.find_element_by_xpath(’//*[@id="i1"T’)
  5. 通过css Selector 定位目标元素:driver.find_element_by_css_selector(’#i1’)
  6. 通过tagName标签名称定位:driver.find_element_by_tag_name(‘input’)
  7. 通过标签中的文本查找元素:driver.find_element_by_link_text(‘登录’)
  8. 通过标签中文本的模糊匹配查找:driver.find_elements_by_partial_link_text(‘录’)
web系统如果与外部系统有交互,需要重点测试什么?

参考答案:Web系统如果与外部系统有交互,这个时候重点要测试与外部系统的接口,也就是接口测试。
以下是关键的测试点:
服务器接口:浏览器与服务器的接口-这种测试可以归到功能测试中的表单测试中
外部接口:确认软件能够处理外部服务器返回的所有可能的消息
接口错误处理:在处理过程中中断事务,查看会发生什么情况

请介绍Android SDK中自带的几个工具/命令的功能

参考答案:Android SDK为了方便应用开发者开展调试工作,提供了一系列的工具,以下列举的是对于测试工程师来说比较常用的工具/命令:
1、 adb: ADB的全称为Android Debug Bridge,就是起到调试桥的作用。通过ADB我们可以在Eclipse中方面通过DDMS来调试Android程序,就是debug工具。
2、 ddms:Dalvik Debug Monitor Service,是Android 开发环境中的Dalvik虚拟机调试监控服务。
3、 monkey:Android 中的一个命令行工具,可以运行在模拟器里或实际设备中。它向系统发送伪随机的用户事件流(如按键输入、触摸屏输入、手势输入等),实现对正在开发的应用程序进行压力测试。
4、 uiautomator: UIAutomator是Eclipse自带的用于UI自动化测试工具,可仿真APP上的单击、滑动、输入文本等操作。

对于一个web应用系统,通常需要从哪些方面开展测试?

参考答案:对于Web应用系统需要开展的测试涉及到功能、性能、安全、兼容性等各个方面。在开展其他类型测试之前,功能测试与兼容性测试通常是最先开展的测试,以下列举了一些测试要点,供读者参考:
一、链接测试:
1.测试所有链接是否按指示的那样确实链接到了该链接的页面链接测试
2.测试所链接的页面是否存在
3.保证Web应用系统上没有孤立的页面
二、表单测试:
1.用户注册、登录、信息提交等,必须测试提交操作的完整性,以校验提交给服务器的信息的正确性
2.检查相关联的数据显示是否正确。
3.如果使用了默认值还需要检验默认值的正确性
4.如果表单只能接受指定的某些值,则也要进行测试。例如:只能接受指定的某些值,测试时可以跳过这些字符,看系统是否会报错
5.如果系统只接受限定范围之内的字数,测试时可以通过边界值、等价类方法设计有效和无效的测试用例,检查系统是否能够正常处理
6.数据一致性:检验用户提交的表单信息是否正确
7.输出:检查网络速度或程序设计问题等是否引起输出错误
三、应用程序特定 :
测试人员需要对应用程序特定的功能需求进行验证的功能需求
四、兼容性测试 :
Web应用的功能在不同的操作系统与浏览器进行验证

如果有一个购物网页给你,你要怎么进行测试?测试哪些主要功能?

1、首先进行需求分析:用xmind梳理测试点,再编写案例,之后就行案例评审,寻求他人意见。之后再完善案例,发出来给其他人检查。
2、测试点:首先是UI方面、美观度、易操作性、易理解性等方面进行测试。
3、然后再考虑他的功能点,注册、登录、添加购物车、下单、支付、发货、确认收货、评价、支付时候的绑定银行卡等功能。
4、性能方面:打开网页、确认订单、付款的响应时间等。
5、兼容性:支持各种主流浏览器,ie、360、火狐、谷歌等。
6、针对添加购物车,考虑如下测试点(对应数据库增删改查操作):

  • 能否加入购物车,同一件商品能否再次添加到购物车;
  • 购物车商品件数的上限限制(例如,淘宝限制100件);
  • 购物车是否可以正常移除商品,移除商品后,能否再添加回来;
  • 添加的每种商品是否可以正常增减数量,数量大于0;
  • 退出购物车,再去查询购物车,商品正常;
  • 购物车的商品可以全选,取消全选,可以复选,选中的商品和数量可以正常下单;商品添加到购物车以后,已下架。购物车会提示此宝贝已失效;
  • 商品添加到购物车以后,降价了,购物车会有降价提示;
  • 商品添加到购物车以后,库存不足了;
  • 商品添加到购物车的顺序一般为新添加的在购物车的最上方显示。
为什么要设计测试用例

使用测试用例的好处主要体现在以下几个方面:

  1. 在开始实施测试之前设计好测试用例,可以避免盲目测试并提高测试效率。
  2. 测试用例的使用令软件测试的实施重点突出、目的明确。
  3. 在软件版本更新后只需修正少部分的测试用例便可展开测试工作,降低工作强度、缩短项目周期。
  4. 功能模块的通用化和复用化使软件易于开发,而相对于功能模块的测试用例的通用化和复用化则会使软件测试易于开展,并随着测试用例的不断精化其效率也不断攀升。
举例说明使用selenium框架所遇到的异常
  • NoSuchElementException:没有该元素异常
  • TimeoutException : 超时异常
  • ElementNotVisibleException :元素不可见异常
  • NoSuchAttributeException :没有这样属性异常
  • NoSuchFrameException :没有该frame异常
  • stale element reference:元素过期/元素是前一次获取到的,需要刷新重新获取页面数据
  • ElementNotInteractableException:元素不可交互
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/笔触狂放9/article/detail/504718
推荐阅读
相关标签
  

闽ICP备14008679号