软件测试基础面试问答(二)

1、什么是功能测试?能举个例子吗?

功能测试是对软件的每个功能进行验证,确保其行为与需求规格一致,其主要目的是发现与需求不符合的缺陷和错误,例如在用户注册功能中测试的输入有效数据和无效数据,确保应用程序按预期反应。功能测试一般采用黑盒测试,测试方法有:等价类划分、边界值分析、决策表测试,因果图法,判定表分析法等。

2、功能测试与性能测试有什么明显的区别?

  • 功能测试:确保软件“做对的事”(功能正确性)。
  • 性能测试:确保软件“把事情做好”(效率、稳定性)

维度

功能测试

性能测试

测试目标不同

核心目标

验证软件功能是否按需求正常工作

验证软件在特定条件下的性能表现(如速度、稳定性)。

典型问题

“功能是否实现?”

(如登录是否成功)

“功能是否足够快/稳定?”

(如1000用户同时登录是

关注点不同

验证内容

-输入输出的正确性

-响应时间

-业务流程是否符合预期

-吞吐量(TPS)

-用户界面交互

-资源占用(CPU/内存)

-系统稳定性(如高负载下是否崩溃)

测试场景

-正常流程(如成功支付)

-负载测试(模拟正常用户量)

-异常流程(如错误密码)

-压力测试(极限用户量)

-耐久测试(长时间运行)

测试方法不同

测试类型

黑盒测试为主(无需了解代码)

灰盒或白盒测试(需监控系统内部资源)

执行方式

手动或自动化(如Selenium)

通常需自动化工具(如JMeter)

数据需求

少量测试数据(覆盖功能场景即可)

大量模拟数据(如生成100万用户请求)

工具与技术差异

常用工具

- Selenium

- JMeter

- Cypress

- LoadRunner

- Postman(API)

- Gatling

指标衡量

-通过/失败(功能是否通过)

-响应时间(如≤2秒)

-错误率(如<0.1%)

实际案例对比

测试内容

-用户能否成功添加商品到购物车

- 1000用户同时支付时,服务器响应时间是否≤3秒

-支付流程是否跳转正确

-数据库在高并发下是否死锁

结果分析差异

输出结果

-缺陷报告(如“登录按钮无响应”)

-性能报告(如“CPU使用率峰值90%”)

优化方向

-修复代码逻辑或UI交互

-优化数据库查询、缓存、服务器配置

3、功能测试中,如果功能实现与需求有偏差的情况下怎么办?

  • 首先明确偏差的类型和严重程度,去回溯需求,查看当前的功能实现是否是因为需求变动发生改变;
  • 如果不是需求发生变动,则需要复现问题并记录,核对需求,与产品经理/BA确认:明确需求原始意图,与开发团队讨论:确认是缺陷还是设计变更
  • 修正:
  • 开发错误:根据讨论结果,提Bug,按流程做修改,指派给开发人员修复。
  • 需求文档错误:发起需求变更流程(如更新PRD文档并通知所有干系人)。
  • 隐性需求缺失:发起需求补充评审,评估是否需要新增功能或优化。
  • 测试用例错误:修正测试用例并重新执行测试。

4、黑盒测试是什么?有什么具体的场景?

黑盒测试是一种软件测试方法,测试人员在不了解系统内部代码、结构和实现细节的情况下,仅基于输入和输出来验证软件功能是否符合需求。

  黑盒测试的常见类型:

  • 功能测试(Functional Testing)验证软件功能是否符合需求(如登录、支付、搜索等)。示例:测试电商网站的“加入购物车”功能是否正常。
  • 用户界面测试(UI Testing)检查界面布局、颜色、字体、按钮交互等是否符合设计稿。示例:验证按钮点击后是否变色,输入框是否限制字符长度。
  • 兼容性测试(Compatibility Testing)测试软件在不同浏览器、操作系统、设备上的表现。示例:检查网页在Chrome、Firefox、Safari上的显示是否一致。
  • 回归测试(Regression Testing)确保新代码修改不会影响已有功能。示例:版本升级后,重新测试核心业务流程(如登录→下单→支付)。
  • 冒烟测试(Smoke Testing)快速验证核心功能是否可用(通常用于版本发布前的快速检查)。示例:部署新版本后,先测试登录、主页加载等关键功能。
  • 黑盒测试的常用技术:

    • 等价类划分(Equivalence Partitioning)将输入数据分为有效类和无效类,减少测试用例数量。示例:测试“年龄输入框(18-60岁)”:有效类:20(合法年龄)无效类:10(太小)、70(太大)
    • 边界值分析(Boundary Value Analysis)测试输入范围的边界值(如最小值、最大值、临界值)。示例:测试“密码长度(6-12位)”:边界值:5位(无效)、6位(有效)、12位(有效)、13位(无效)
    • 决策表测试(Decision Table Testing)适用于多条件组合的业务规则测试。示例:电商优惠券规则(满100减20,仅限VIP用户):90否不减免150是减免20
    • 状态转换测试(State Transition Testing)测试系统在不同状态间的转换(如登录状态→注销状态)。示例:ATM机“插卡→输入密码→取款→退卡”流程测试。
    • 错误推测法(Error Guessing)基于经验猜测可能出错的场景(如输入特殊字符、空提交等)。示例:在用户名输入框中输入admin'--(测试SQL注入漏洞)。

    黑盒测试工具:

    • 功能测试:Selenium、Cypress、Katalon Studio
    • API测试:Postman、SoapUI
    • 兼容性测试:BrowserStack、Sauce Labs
    • 自动化测试框架:Robot Framework、TestNG

     实际应用场景:

    • 电商网站:测试购物车、支付流程、优惠券计算是否正常。
    • 银行系统:验证转账、查询余额等关键功能是否符合业务规则。
    • 移动App:检查注册、登录、推送通知等用户体验是否流畅。

    5、黑盒测试测试输入时没有得到输出,请问原因是什么?怎么排除?

    原因输入未被正确处理, 后端未返回响应,网络或环境问题,安全策略拦截

    排除确认输入数据,观察网络请求,模拟接口调用,检查依赖服务,对比其他输入

    问题类型

    解决方案

    前端未发请求

    修复JS代码,确保事件绑定正确;添加输入校验提示。

    接口无响应

    后端补充异常处理,确保所有分支返回响应(如{ "code": 500, "error": "描述" })。

    数据无结果

    明确返回空数据提示(如HTTP 200 + { "data": null })。

    安全拦截

    设计友好的拦截提示(如“输入包含非法字符”)。

    环境问题

    重启服务、修复网络配置或联系运维。

    #测试面经##测试#
    测试岗面经 文章被收录于专栏

    整理面试过程中的测试问答,常看常新,多多学习!有些问题是从其他人那里转载而来,会在文章下面注明出处,希望大家多多支持~~ 内容目录:https://www.nowcoder.com/discuss/779856598809264128?sourceSSR=users

    全部评论

    相关推荐

    07-11 16:49
    已编辑
    测试开发
    呜呜呜,一面面试下来体验感挺好的,但我是笨蛋1.自我介绍2.对于测试开发岗位有什么了解3.你更希望从事哪一方向4.现在有两个选择,一个是稳定的业务部门有带教老师指导你做一些工作,一个是刚起步独立的部门,做的任务有挑战,你选哪一个5.使用python在linux编写脚本测试linux系统重启功能,执行命令是什么6.你开发测试并维护了一个测试平台,然后节假日放了个小长假回来发现这个平台在假期第二天崩溃了,你会怎么处理这个问题,说出详细步骤7.自动化的测试框架你了解多少,主要用什么,还了解其他的吗,为什么当时选择这个框架去搭建接口自动化8.你还了解其他自动化测试吗9.你还知道其他的可以为测试提效的方式吗10.有了解过公司的产品吗11.美图秀秀这个软件的照相功能从性能角度出发你怎么测试12.对一个钥匙扣进行测试,如果我们公司没有钥匙,挂钩,包,你应该怎么去测他的兼容性易用性13.当你发现了一个问题的时候你怎么分析定位14.还有其他的问题我想一下反问:1.公司支持员工在工作中使用AI完成工作吗2.您觉得对于入职测试开发岗位的应届生需要面临的挑战有哪些3.岗位base地在哪体验:很棒,面试官挺帅的,沟通过程中也会引导你多说一些,但是沟通到最后他说这个岗位的门槛很高,面试通过率低,我们需要去找到最合适的人选,我应该是黄了啊啊啊啊啊啊啊我是笨蛋,我很想加入这个公司,我爱厦门我爱美图秀秀二面hr线上面问了一下处理问题的一些问题,然后最后问了一下薪资。个人体验没有太好
    查看42道真题和解析
    点赞 评论 收藏
    分享
    评论
    1
    7
    分享

    创作者周榜

    更多
    牛客网
    牛客网在线编程
    牛客网题解
    牛客企业服务