测试开发面试题及答案.docxVIP

  • 0
  • 0
  • 约7.18千字
  • 约 9页
  • 2026-03-16 发布于河北
  • 举报

测试开发面试题及答案

一、基础能力题(侧重实操与理解)

1.什么是测试用例?设计用例时最核心的原则是什么?请以“用户登录功能”为例,设计2个核心用例。

答案:测试用例是为了验证软件功能是否符合需求而设计的一套具体操作步骤、输入数据、预期结果的集合,本质是帮我们全面覆盖场景、发现问题。

核心原则:覆盖核心业务场景+边界场景+异常场景,同时要可执行、可复现,不冗余。

用户登录功能核心用例:

用例1:正常登录-输入已注册的手机号(138xxxx1234)和正确密码(Abc123456),点击登录,预期能成功进入首页,显示用户名。

用例2:密码错误-输入已注册手机号(138xxxx1234)和错误密码(Abc654321),点击登录,预期登录失败,弹出提示“密码错误,请重试”,不进入首页。

2.接口测试中,常见的请求方法有哪些?GET和POST的核心区别是什么?实际工作中怎么判断该用哪种?

答案:常见请求方法:GET、POST、PUT、DELETE、PATCH、HEAD等,日常工作中GET和POST用得最多。

核心区别:

1.数据传输方式:GET的参数拼在URL上,可见;POST的参数在请求体里,相对安全(不是绝对安全,需配合HTTPS)。

2.数据长度限制:GET受URL长度限制(不同浏览器/服务器不一样,一般几百KB),POST无明确长度限制。

3.语义用途:GET用于“获取数据”(查),无副作用(不会修改服务器数据);POST用于“提交数据”(增/改/删),会改变服务器状态。

实际判断:只要是获取数据、不修改服务器内容(比如查列表、查详情),用GET;只要是提交数据(比如注册、登录、创建订单),用POST。

3.测试过程中发现一个bug,怎么提交才能让开发快速定位并修复?

答案:提交bug的核心是“信息完整、步骤清晰、可复现”,避免开发反复追问。核心要素要包含:

1.标题:简洁明了,一句话说明问题(比如:用户登录时,输入含特殊字符的密码提示语不规范);

2.环境:操作系统(Windows10/Android14)、浏览器(Chrome120/微信小程序)、测试环境(测试服/预发布服)、设备型号(可选);

3.前置条件:比如“用户已注册手机号138xxxx1234”“已进入登录页面”;

4.复现步骤:按顺序写清楚每一步操作(1.输入手机号138xxxx1234;2.输入密码Abc@123;3.点击登录按钮);

5.实际结果:当前出现的问题(比如:弹出提示“密码错误”,但密码实际正确);

6.预期结果:应该出现的正确效果(比如:成功登录,进入首页);

7.附件:截图/录屏(关键步骤的界面)、接口请求日志(F12抓包的request/response),有日志优先附日志,比截图更有用。

二、编码与自动化题(侧重实际应用)

1.用Python写一段代码,实现“读取一个txt文件,统计文件中每个单词出现的次数,最后按次数降序输出前10个单词”(忽略大小写,标点符号不计入单词)。

答案:(代码带注释,贴合实际开发习惯,不写花里胡哨的语法)

python

importre

fromcollectionsimportCounter

defcount_top10_words(file_path):

#1.读取文件内容,忽略大小写

try:

withopen(file_path,r,encoding=utf-8)asf:

content=f.read().lower()#转小写

exceptExceptionase:

print(f读取文件失败:{e})

return

#2.提取单词(只保留字母和数字,过滤标点符号)

words=re.findall(r\w+,content)#\w匹配字母、数字、下划线,符合日常单词统计场景

#3.统计单词次数,按次数降序排序

word_count=Counter(words)

top10_words=word_count.most_common(10)#取前10

#4.输出结果

print(出现次数前10的单词:)

forword,countintop10_words:

print(f{word}:{count}次)

#调用示例(实际使用时替换为真实文件路径)

count_top10_words(test.txt)

补充说明:实际工作中,会根据具体需求调整正则(比如是否过滤

文档评论(0)

1亿VIP精品文档

相关文档