【软件测试岗面试】软件测试、 测试开发、MySQL、Linux基础知识点总结

1.软件测试知识点总结

Q:请你分别介绍一下单元测试、集成测试、系统测试、验收测试、回归测试

  1. 单元测试 (Unit Testing)
    单元测试是对软件中最小可测试单元(通常是函数或方法)进行验证的过程。它的目的是确保每个单元在设计时的功能能够正常运行。单元测试通常由开发人员编写,并且可以在代码开发的早期阶段进行。

  2. 集成测试 (Integration Testing)
    集成测试是在多个单元组合后进行的测试,目的是验证不同模块或系统组件之间的交互是否正常。

  3. 系统测试 (System Testing)
    系统测试是在完整的软件系统上进行的测试,目的是确保系统在整体上满足指定的要求。系统测试通常由专门的测试团队进行,涵盖功能测试、性能测试、安全性测试等多个方面。

  4. 验收测试 (Acceptance Testing)
    验收测试是由最终用户或客户进行的测试,目的是确认软件系统是否满足业务需求并可以投入生产。验收测试分为用户验收测试(UAT)和合同验收测试(CAT)。成功通过验收测试意味着软件可以正式发布。

  5. 回归测试 (Regression Testing)
    回归测试是在软件修改或更新后进行的测试,目的是确保新更改没有引入新的缺陷,并且旧的功能仍然正常。回归测试通常涵盖之前的测试用例,以确保软件的稳定性和可靠性。

Q:请你回答一下单元测试、集成测试、系统测试、验收测试、回归测试这几步中最重要的是哪一步?

我认为是系统测试。
因为此时单元测试和集成测试已完成,能够对初版软件所有功能进行功能、性能和安全性进行整体测试,能够验证系统是否满足了产品定义的需求,因此我认为系统测试很重要。

Q:请回答集成测试和系统测试的区别,以及它们的应用场景主要是什么?

区别:
1.系统测试要早于集成测试。系统测试用例书在需求阶段写;集成测试用例书在设计阶段写。
2.系统测试更全面,全面测试系统的功能性、安全性和稳定性;集成测试更详细,主要针对一些各个模块之间的接口交互。
3。顺序是先集成测试(黑百盒相结合),后系统测试(黑盒测试)。

场景:
集成测试用于模块接口和模块之间交互的场景。系统测试用于测试整个完整系统极其实际应用的场景。

Q:测试开发需要哪些知识?需具备什么能力?

1.软件测试基础理论知识,如黑盒测试、白盒测试等;
2.编程语言基础,如C/C++、java、python等;
3.自动化测试工具,如Selenium、Appium、Robotium等;
4.计算机基础知识,如数据库、Linux、计算机网络等;
5.测试框架,如JUnit等。

能力:需求分析能力、洞察问题的能力、团队合作沟通能力、独立思考和解决问题的能力。

Q:介绍一下黑盒测试和白盒测试?

总结:两者的区别在于是否需要了解“内部结构

黑盒测试:又叫数据驱动测试,主要针对功能和性能进行测试。不考虑程序内部逻辑,当成一个黑盒子只考虑数据的吞吐,根据需求对功能进行验证的一种测试方法。
白盒测试:又称逻辑驱动测试、结构化测试,是针对程序设计逻辑和内部结构进行测试。

Q:请说一下手动测试与自动化测试的优缺点?

手动测试优点:
门槛低,快速上手;更灵活。

缺点:
耗时;存在人为错误的可能性。

自动化测试优点:
面对大量重复性测试的时候可以高效准确的完成,测试过程可以被记录。

缺点:门槛高、维护成本高。

Q:想对bug进行测评,如何去做?(遇到bug的测试流程)

回答思路:
1 重现 Bug,以确保问题的可复现性和真实性。
2 确定 Bug 影响范围,在系统中、模块中和用户场景中等。
3 根据Bug的严重程度确定优先级。
4 预算修复Bug的时间和资源。

举几个例子
1:一个登录界面测试出现bug,应当尝试多种用户名和密码的多种组合来稳定复现bug
2:一个购物app购物车结算功能出现bug,是否影响单独购买结算功能,以及是否影响用户的购买意愿。
3:丢失数据、闪退都是严重程度很高的bug;反馈处理优先级需要根据严重程度、项目进度和处理bug难度来评判。
4:考虑开发人员能力、问题复杂性和工作量综合评判。

Q:测试用例的边界

在软件测试中对模块和系统的在输入、输出、操作上的极限情况和临界值。

输入很好理解;输出指的是显示最大范围;操作:最大时间限制、次数限制等。

Q:软件质量6特征:

功能性、安全可靠性、易用性、可维护性、可移植性、高效性(性能)。

Q:如何设计测试用例?

测试思路:
功能测试 + 界面测试 + 性能测试 + 兼容性测试 + 易用性测试 + 安全测试。
设计测试用例(万能思路 + 六种设计用例方法)
软件测试——测试用例设计方法

参考的设计方法:
1.等价划分法:
针对穷举场景,将所有可能得输入按某特征均匀输入。
场景:登录系统中输入数字
2.边界值法:
对输入和输出的场景进行测试,和等价划分法相互补充。有边界值和次边界值(有开闭区间)
场景:输入数字0-10中的0和10,1和9。
3.因果图法:
对输入条件各种组合,找寻输入和输出的制约关系。
场景:充值优惠系统。充值满100,或者有优惠券,可以打折。前两者是因,后面是果。
4.正交表法:
针对多种平行输入框(无关系)设计排列组合。
场景:软件界面基本功能测试
5.场景法:
根据场景走一遍基本流程。
场景:冒烟测试。

Q:什么是α测试或者β测试?什么时候用?

1.α测试是将用户到公司内部测试,或者模拟开发环境进行测试。注意!α测试不能由程序员或测试员完成。α测试是验收测试。评价软件的功能、性能、可靠性
2.β测试是用户在不同场景下测试,是一种验收测试。

两者都是验收测试。
举例:
1.新游戏发布需要封测、内测和公测。
封测:封闭测试。其版本实为未成熟的,有很多的BUG。就是禁止用户注册,只提供了一些账号分给玩家试玩,如果发现BUG了就一定要告诉官方网站,官方才能进行补丁。【给少部分玩家玩,返回BUG】

内测:内部测试。经历了封测后,游戏进一步完善。【给大部分玩家玩,账号难注册,返回BUG】

公测:公开测试。其实就是向广大玩家完全公开,注册的账号数量没有限制,到了公测阶段一般来讲初期是免费的,之后随着玩家数量的多少,游戏运营商会在一定时间之后对游戏开始收费。【给全部玩家免费玩,到一定时间会收费】

Q:你认为是bug,而开发不认同时怎么办?

1、简单分析下需求可能对客户的影响,通过影响和严重程度来说服开发来进行修改。
2、产品需求里边没有明确要求的,需要先和需求人员讨论一下,如果确认需要进行修改。在三方会议上进行提出。

总结:看需求,需求有,看优先级和严重程度说服开发;需求没有,开会提出。

2.自动化测试知识点总结

Q:Python+selenium自动化八大元素定位方法

参考:Python+selenium自动化八大元素定位方法及实例(超详细)

3.MySQL知识点总结

核心:增删查改
关键字
增:insert into
删:删分为删除表结构和表内容,分别是drop table和delete from
查:select * from
改:改分为修改表结构和表内容,分别是alter add/drop/modify/change和update…set

# 新建
CREATE DATABASE [数据库名];

CREATE TABLE [表名] (
    字段1 字段类型1 [注释],
    字段2 字段类型2 [注释],
    字段3 字段类型3 [注释]
);

# 增
# 默认新增,但是新增的值要和定义表时类型顺序一致
INSERT INTO [表名] VALUE (value1, value2);
# 单行新增
INSERT INTO [表名] (字段1, 字段2, ..) VALUE (value1, value2);
# 批量新增
INSERT INTO [表名] (字段1, 字段2, ..) VALUES 
(value1, value2),
(value1, value2),
(value1, value2);

# 删
#删除整张表(数据和字段)
DROP TABLE [条件] 表名;
#删除整张表的数据
DELETE FROM [表名];
# 删除指定数据
DELETE FROM [表名] WHERE [条件];

#查
# *为通配符,检查整个列表
SELECT * FROM [表名];
SELECT [指定列的名字\字段表达式] FROM [表名];
# 去重
SELECT DISTINCT [指定列的名字\字段表达式] FROM [表名];
# 升降序
SELECT [指定列的名字\字段表达式] FROM ORDER BY [表名] ASC/DESC;

# 条件查询
SELECT [指定列的名字\字段表达式] FROM [表名] WHERE [条件];

#改
# 表结构的修改
ALTER TABLE 表名 ADD 字段名 类型(长度) [COMMENT 注释] [约束];
ALTER TABLE 表名 MODIFY 字段名 新数据类型(长度);
ALTER TABLE 表名 CHANGE 旧字段名 新字段名 类型(长度) [COMMENT 注释] [约束];
ALTER TABLE 表名 DROP 字段名;
ALTER TABLE 表名 RENAME TO 新表名
#表内容的修改
UPDATE [] SET [修改内容1, 修改内容2, ....] WHERE [条件];

4.Linux知识点总结

Linux 常用操作命令大全

5.git基本命令

在这里插入图片描述

git add 暂存(在提交前一步)

sourcetree图中图标功能对应git命令依次是:

git commit -m “注释” 提交

git push 推送到远程仓库

git fetch 获取:查看远程仓库是否有更新

git pull 拉取:将远程的更新写入到本地

顺序:暂存–提交–推送–获取–拉取。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值