4. 有效等价类和无效等价类举例
有效等价类(Valid Equivalence Classes)
1.定义:有效等价类是指输入值能导致程序正常工作,达到预期功能的输入集合。
2.例子:
3.对于一个输入范围是 1 到 100 的函数:
4.有效等价类:输入 50(在范围内),输入 1(边界值),输入 100(边界值)。
无效等价类(Invalid Equivalence Classes)
5.定义:无效等价类是指输入值无法使程序正常工作,可能导致错误或异常的输入集合。
6.例子:
7.对于上述函数:
8.无效等价类:输入 0(小于下限),输入 101(大于上限),输入 -5(负数)。
5. 静态测试方法有哪些
静态测试方法不执行程序代码,而是通过检查源代码、文档或其他项目工件来发现缺陷。常见的静态测试方法包括:
9.代码审查(Code Review):开发团队成员相互检查代码,以发现问题。
10.静态分析(Static Analysis):使用工具对代码进行分析,找出潜在缺陷、风格问题等。
11.走查(Walkthrough):开发人员在团队中演示代码或文档,获取反馈。
12.形式验证(Formal Verification):通过数学方法验证程序是否符合其规格。
6. 数据库的删除:drop、delete、truncate,区别是什么、各自的优缺点、运行效率、哪些是可以恢复的,哪些不可以
13.DROP
14.功能:删除整个表或数据库。
15.优缺点:
16.优点:彻底删除,不留痕迹。
17.缺点:无法恢复,需谨慎使用。
18.运行效率:效率高,因为它不逐行删除数据,而是直接删除结构。
19.恢复性:不可恢复。
20.DELETE
21.功能:删除表中的特定行。
22.优缺点:
23.优点:可以根据条件删除指定行,灵活性高。
24.缺点:对于大量数据时效率较低,因为逐行删除。
25.运行效率:比 TRUNCATE 慢。
26.恢复性:可以恢复(如果启用事务,ROLLBACK可以恢复)。
27.TRUNCATE
28.功能:删除表中的所有行,但保留表结构。
29.优缺点:
30.优点:比 DELETE 更快,因为不逐行删除。
31.缺点:无法在条件下删除,且不触发触发器。
32.运行效率:效率高,通常比 DELETE 快。
33.恢复性:一般不可恢复(在大多数数据库中,无法回滚)。
7. Python 的装饰器
定义:装饰器是 Python 中的一种设计模式,用于在不修改函数代码的情况下,给函数或方法添加额外的功能。
使用方法:
34.装饰器本质上是一个返回函数的函数。
35.可以使用 @decorator_name 语法在函数定义之前应用装饰器。
示例:
def decorator_function(original_function):
def wrapper_function():
print("Wrapper executed before {}".format(original_function.__name__))
return original_function()
return wrapper_function
@decorator_function
def display():
print("Display function executed.")
display()
8. Python 内置的数据类型,列表和数组的区别
Python 内置数据类型:
36.整数(int)
37.浮点数(float)
38.字符串(str)
39.列表(list)
40.元组(tuple)
41.字典(dict)
42.集合(set)
43.布尔(bool)
列表与数组的区别:
44.列表(list):
45.可以包含不同类型的数据(混合类型)。
46.提供丰富的内置方法来操作数据。
47.动态大小。
48.数组(array)(使用 array 模块或 numpy):
49.只能包含相同类型的数据(单一类型)。
50.通常在数值计算中性能更优,内存占用更小。
51.大小通常固定,但可以通过创建新数组来调整。
9. 自己有没有开发过 Python 工具
这是个人经验问题。如果有开发经验,可以描述项目的功能、用到的库、解决的问题等;如果没有,可以说尚未开发。
10. 关于上一个问题,推荐哪些第三方库
常用的第三方库包括:
52.Flask/Django:用于Web开发。
53.Pandas:用于数据分析和处理。
54.NumPy:用于数值计算。
55.Requests:用于处理HTTP请求。
56.BeautifulSoup:用于网页抓取和解析。
57.Matplotlib/Seaborn:用于数据可视化。
58.Scrapy:用于爬虫和数据抓取。
11. 了解的测试管理的工具,起到了什么作用
常见的测试管理工具包括:
59.Jira:用于问题跟踪和项目管理,支持测试用例管理。
60.TestRail:专门用于测试管理的工具,支持测试计划、执行和报告。
61.Zephyr:与 Jira 集成的测试管理工具,支持实时测试监控。
62.qTest:提供测试用例管理、缺陷追踪和报告功能。
作用:
63.帮助团队组织和管理测试用例。
64.追踪缺陷和测试进度。
65.生成测试报告,提高团队协作。
12. 对自动化测试了解多少,有没有运用过,你觉得能不能代替人工测试
了解:自动化测试使用工具和脚本自动执行测试用例,提高测试效率和准确性。
应用:可以使用 Selenium、Robot Framework、Jest 等工具进行自动化测试。
能否代替人工测试:
66.不能完全代替:某些场景(如用户体验测试、探索性测试)仍需要人工参与。
67.优势:自动化测试在回归测试、重复性高的测试中更高效。
68.建议:将两者结合使用,以取得最佳效果。
13. 有没有接触过性能测试,有哪些工具,有哪些指标
接触:可以根据经验描述是否参与过性能测试。
常用工具:
69.JMeter:广泛使用的开源性能测试工具。
70.LoadRunner:商业性能测试工具,功能强大。
71.Gatling:高性能的负载测试工具,使用 Scala 编写。
72.Apache Benchmark:轻量级的HTTP压力测试工具。
常见指标:
73.响应时间:请求到响应的时间。
74.吞吐量:单位时间内处理的请求数量。
75.并发用户数:同时访问系统的用户数量。
76.资源利用率:CPU、内存、网络等资源的使用情况。
14. 项目在某个时间需要上线,但是版本计划完成不了,你会怎么做
77.沟通与评估:与团队和管理层沟通,评估当前进度和剩余工作量。
78.优先级调整:识别关键功能,优先上线最重要的功能,可能需要推迟次要功能。
79.制定计划:制定切实可行的补救计划,调整资源或安排加班以加速开发。
80.风险管理:识别上线风险,准备应急计划,以便在出现问题时能快速应对。
81.持续集成:确保开发和测试能够持续进行,尽量减少上线后的风险和问题。