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.持续集成:确保开发和测试能够持续进行,尽量减少上线后的风险和问题。