一、理论部分
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年的职业规划
首先,要巩固自己的测试基础知识,在基本知识扎实的情况下提高理解需求文档地能力。
其次,学习自动化测试工具,并将它运用到测试中。
然后,在测试技术达到一定程度后,要学会如何带领一个测试团队。
最后,争取在最快的时间内达到测试经理的水平。
你有什么问题要问我的?
我想知道这个公司目前开发现有多少人,测试有多少人,以及公司正在开发的项目情况