软件测试_面试题(持续更新中)

一、理论部分

1、什么是软件测试,软件测试的目的?

软件测试:通过人工或者自动化的操作进行还没有商业化用途的程序,查看他们的功能是否满足客户需求。

目的:在最短时间内找出尽可能多的软件缺陷。

2、测试驱动开发(TDD)是什么?

测试驱动开发是一种开发方法,它要求在编写代码之前编写测试用例。这些测试用例定义了应用程序应该实现的功能,并且确保所有功能都能按照预期工作。

3、分别介绍一下单元测试、集成测试、系统测试、回归测试、验收测试

  • 单元测试:完成最小单元模块的验证工作,确保模块被正确的编码
  • 集成测试:通过测试发现模块接口有关的问题
  • 系统测试:是基于系统整体需求说明书的黑盒测试,应覆盖系统所有联合部件
  • 回归测试:在发生修改之后,重新测试先前的测试用例,以保证修改的正确性
  • 验收测试:相关用户或测试人员,根据测试计划和结果对系统进行测试和接收,验收测试包括Alpha测试和Beta测试。【Alpha测试:是由用户在开发者的场所来进行的,在一个受控的环境中进行。并且在开发者对用户的指导下进行测试,开发者负责记录发现的错误和使用中遇到的问题;Beta测试 :由软件的最终用户在一个或多个用户场所来进行的,开发者通常不在现场。由用户记录在测试中遇到的一系列问题,并定期报给开发者】 

4、分别介绍一下性能测试、自动化测试、负载测试、安全测试

  • 性能测试:评估系统在特定负载和压力下的性能和稳定性
  • 自动化测试:利用软件工具来执行测试,而不是手动执行测试。这种测试可以提高测试效率、减少错误,以及节省时间和成本
  • 负载测试:模拟多个用户同时使用应用程序,以评估应用程序在高负载下的表现
  • 安全测试:检测系统存在的安全漏洞和弱点,并帮助企业保护其数据和资产 

5、什么是黑盒?什么是白盒?黑盒和白盒的测试方法分别有哪些?

  • 黑盒测试(功能测试或数据驱动测试):它基于程序外部功能或者用户需求来检测程序内部的错误。
  • 常用黑盒测试方法:等价类划分法;边界值分析法;因果图法;场景法;正交实验设计法;判定表驱动分析法;错误推测法;功能图分析法。
  • 白盒测试(结构测试或逻辑驱动测试):它涉及对程序源代码的测试,以检查程序是否符合设计规范、是否存在逻辑错误等。
  • 常用白盒测试方法:(逻辑覆盖法,基本路径测试,循环路径测试)① 静态测试:不用运行程序的测试;② 动态测试:需要执行代码,通过运行程序找到问题。 

6、测试流程

  • 需求测试、概要设计测试、详细设计测试、单元测试、集成测试、系统测试、验收测试
  • 需求评审、测试计划、用例设计、用例执行、缺陷管理、测试报告
  • ①需求评审(有开发人员,产品经理,测试人员,项目经理);②需求确定(出一份确定的需求文档);③开发设计文档(开发人员在开始写代码前就能输出设计文档);④想好测试策略,写出测试用例;⑤发给开发人员和测试经理看看(非正式的评审用例);⑥接到测试版本;⑦执行测试用例(中间可能会补充用例);⑧提交bug(有些bug需要开发人员的确定(严重级别的,或突然发现的在测试用例范围之外的,难以重现的),有些可以直接录制进TD);⑨开发人员修改(可以在测试过程中快速的修改);⑩回归测试(可能又会发现新问题,再按流程开始跑)

7、测试用例的内容是什么?(★) 

  • 用例编号
  • 用例标题
  • 项目/模块
  • 优先级
  • 前置条件
  • 测试步骤
  • 测试数据
  • 预期结果  

8、缺陷按优先级分为哪些类型?(★) 

  • 缺陷必须立即解决
  • 缺陷要求正常排队等待修复
  • 缺陷可以在方便时被纠正
  • 下一个版本修复
  • 不修复

9、测试结束的标准是什么?(★) 

  • 全部测试用例都被执行完成
  • 未修改bug都被确认或置为应有状态,暂缓修改的问题都有详尽的解析
  • 测试报告编写完成
  • 测试收尾工作结束
  • 测试总结完成
  • 项目处于试运行或上线阶段
  • 在测试计划中定义结束的标准:在一定性能下平稳运行多少天、本版本没有严重bug,普通bug数量在多少个以下,bug修复百分之多少以上;实际测试达到上述要求,由项目经理、开发、测试共同签字,认同测试结束,版本即可发布 

10、app测试性能指标

  • 内存
  • cpu
  • 流量
  • 启动速度 

11、web测试和app测试不同点 

  • 系统架构方面:

        ○ web项目:基于浏览器
        ○ app项目:必须要有客户端,用户需要安装客户端
        ○ web测试:只要更新了服务器端,客户端就会同步会更新;app测试:需要客户端和服务器都更新

  • 性能方面:

        ○ web页面主要会关注响应时间
        ○ 而app还需要关心流量、电量、CPU、GPU、Memory等

  • 兼容方面:

        ○ web是基于浏览器的,所以更倾向于浏览器和电脑硬件,电脑系统方面的兼容
        ○ app测试则要看分辨率,屏幕尺寸,操作系统、网络
        ○ web测试是基于浏览器的所以不必考虑安装卸载
        ○ 而app是客户端的,则必须测试安装、更新、卸载。除了常规的安装、更新、卸载,还要考虑到异常场景,包括安装时的中断、弱网、安装后删除安装文件

12、性能测试指标 

并发用户数,吞吐量,响应时间,资源利用率,tps与hps,交易成功率

13、在以往工作中,一条软件缺陷(Bug)记录都包含了哪些内容?如何提交高质量缺陷记录? 

检测时间,系统环境,硬件环境,严重程度,版本,确认人,功能模板,问题描述,详细操作步骤,是否会重现。

问题描述和详细操作步骤要尽可能详细。Bug应该尽量用书面语,对于严重程度比较高的缺陷要在相同环境下测试一遍。

在C\S模式下,如果条件满足可以使用替换法来确认是client端的问题还是server端的问题。

14、什么是系统瓶颈?

系统瓶颈:软件在一定的并发量、访问量下无法达到用户的需求。(比如说用户需要在10s内完成一个访问,但是每一次都要12s才能完成,这个就是性能瓶颈,有可能是程序本身的问题,也有可能和操作系统、软件相关)

15、没有产品说明书和需求文档地情况下能够进行黑盒测试吗?

可以。这个情况下我们就要进行探索性测试,把软件当成用户需求,一步步进行测试。凭借经验判断功能正确与否,有的时候还可以与项目经理、开发人员一起进行交流沟通,从而进行更好的测试。

16、这有一个杯子,你怎么去测?(类似这种给一个实物)

需求测试: 查看杯子使用说明书

界面测试: 查看杯子外观

功能度:用水杯装水看漏不漏;水能不能被喝到

安全性:杯子有没有毒或细菌

可靠性:杯子从不同高度落下的损坏程度

可移植性:杯子在不同的地方、温度等环境下是否都可以正常使用

兼容性:杯子是否能够容纳果汁、白水、酒精、汽油等

易用性:杯子是否烫手、是否有防滑措施、是否方便饮用

压力测试:用根针并在针上面不断加重量,看压强多大时会穿透

17、你对测试最大的兴趣在哪里?为什么?

最大的兴趣是具有挑战性。(因为我并不知道哪里会出现bug,在找到一个bug后会很高兴。并且测试需要很强的耐心和细心。我可以很容易的找到一些细节问题)

18、你认为做好测试计划工作的关键是什么?

首先,要有一个明确的目标,详细的阅读需求文档说明。

其次,要对整个测试人员、测试时间、测试进度进行一个预估,并预先进行管理。

最后,要对整个测试流程设定一个规范,所有测试人员都按着规范做事,不能随心所欲的测试。

19、开发人员说不是bug时,你如何应付? 

首先把自己的理由告诉开发人员。在同开发人员沟通到底是不是bug,但是如果开发人员还是认为不是bug的话,就把这个问题提到项目经理处,同时附上自己的理由。有项目经理决定是否为bug。

20、你都用什么测试方法? 

根据不同的系统和模块有不同的方法。主要是黑盒测试和白盒测试。

21、你在测试中有用到一些什么测试工具?

缺陷管理工具 bugfree 禅道 版本管理工具 SVN

性能测试工具 loadrunner 接口测试工具 postman

二、Linux部分

1、Linux中如何查看系统版本信息?

答:使用命令 cat /etc/os-release 或 lsb_release -a

2、如何在Linux系统中查看CPU的使用情况?

答:使用命令 top 或 htop,这两个命令都可以查看CPU使用率和进程信息

3、怎样列出当前目录下的所有文件和子目录?

答:使用命令 ls -R,这个命令会递归地列出当前目录下的所有文件和子目录

4、如何查看正在运行的进程及其占用资源情况?

答:使用命令 ps aux,这个命令会列出所有正在运行的进程及其占用资源情况

5、如何查看Linux系统的磁盘空间使用情况?

答:使用命令 df -h,这个命令会列出系统中所有挂载的磁盘分区及其空间使用情况

6、如何查看Linux系统中的网络接口信息?

答:使用命令 ifconfig,这个命令会列出系统中所有网络接口的信息

7、如何在Linux中创建新的用户账号?

答:使用命令 adduser,例如:sudo adduser newuser

8、如何修改Linux系统中的密码?

答:使用命令 passwd,例如:sudo passwd username

9、如何在Linux中安装软件包?

答:使用命令 apt-get install 或者 yum install,例如:sudo apt-get install nginx

10、如何在Linux中查看系统日志?

答:使用命令 tail -f /var/log/syslog 或者 journalctl -f,这两个命令都可以实时查看系统日志

三、个人部分

3-5年的职业规划

首先,要巩固自己的测试基础知识,在基本知识扎实的情况下提高理解需求文档地能力。

其次,学习自动化测试工具,并将它运用到测试中。

然后,在测试技术达到一定程度后,要学会如何带领一个测试团队。

最后,争取在最快的时间内达到测试经理的水平。

你有什么问题要问我的?

我想知道这个公司目前开发现有多少人,测试有多少人,以及公司正在开发的项目情况

  • 10
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值