python开发面试题及答案,python自动化常见面试题
1.什么是兼容性测试?兼容性测试的重点是什么?兼容性测试主要是检查软件在不同的硬件平台和软件平台上是否正常运行,一般是软件的可移植性。
兼容性类型细分为平台兼容性、网络兼容性、数据库兼容性和数据格式兼容性。
兼容性测试的重点是兼容性环境的分析。通常,当软件运行的环境没有完全确定时,兼容性是必需的。根据软件的操作需求或者根据需要创建文档,就可以知道用户在什么环境下使用软件。将这些环境组织成一个表格,就可以知道要测试的兼容性环境。
2.我现在有一个程序,发现在Windows上运行很慢。那么如何确定是程序有问题还是硬件系统有问题呢?检查系统的中毒特征。
确保软件/硬件配置符合推荐的软件标准。
检查当前系统是否独立,即是否提供占用CPU资源的外部服务。
对于C/S或B/S结构的软件,需要检查服务器和访问是否有问题。
如果系统未加载,请检查性能监视器以验证应用程序是否正在访问处理器/内存。
3.有哪些测试策略?黑盒/白盒、静态/动态、手动/自动、冒烟测试、回归测试、开放测试(
4.解释测试用例设计的全过程?分析需求变化的维护。
根据需求提出测试要求。
设计并审查测试计划;方案合格后,设计测试用例,评审测试用例。
5.alpha测试和beta测试有什么区别?Alpha test(测试)是一个用户在开发环境下进行的测试,也是公司内部用户模拟实际应用环境进行的统一测试。
Beta测试(Beta test)是软件的多个用户在一个或多个用户的实际使用环境中进行的测试,开发人员通常不在测试现场。
6.如果在测试活动中发现需求文档不完整或不准确,该怎么办?你要立即与相关人员协调沟通。
7.你认为一个好的测试计划的关键是什么?软件测试计划是指在软件测试正式实施之前,明确测试对象,通过对资源、时间、风险、测试范围、预算的综合分析和规划,确保有效软件测试的实施。
测试计划的关键:目的、管理和标准化。
8.一个完整的测试套件应该包括哪个阶段?测试计划、测试设计和开发、测试实施、测试评审和测试结论。
9.简单解释一下集成测试和系统测试的关系?集成测试的主要依据是概要设计说明书,系统测试的主要依据是需求设计说明书。
集成是对系统模块的测试,系统测试是对整个系统的测试,包括相关的软硬件平台、网络和相关的外设。
10.功能测试用例要详细到什么程度才能通过?这个问题也是测试工程师经常问的。
一些人认为测试用例必须详细地写下每一步应该执行什么。目的是使不了解系统的初学者能够理解测试用例。主张这种写法的人还可以举出欧美日软件外包文档的例子。
另一种观点认为,应该写得大致,类似于写考试大纲。主张这种观点的人,因为软件开发的需求管理不规范,变化频繁,所以不能按照欧美的高标准来做测试用例。这样的测试用例易于维护,测试执行者可以有更大的发挥空间。
实际上,软件测试用例的详细程度首先要求覆盖测试点。比如“用户登录系统”的测试用例,可以不用写具体的执行数据,但至少要写几个类型。一句话,涵盖了这个函数不合格的测试用例。覆盖功能点是导出功能点的各个方面,而不是枚举功能点(如果组合多,可以采用等价划分)。
影响测试用例的另一个特征是组织的开发能力和测试对象的特征。如果开发力量落后,编写更详细的测试用例是不现实的。因为资源投入不多。当然,这种情况随着球队的发展也在逐渐改善。试验的特点是指对试验的进度和费用的要求。当进展艰难的时候,就没有时间写高质量的测试用例了。有时候测试工作是辅助工作,所以不做测试用例。
因此,测试用例的制定必须根据测试对象的特点、团队的执行能力等方面综合确定制定策略。最后要注意的是,测试人员一定不能抱怨。在提高测试用例编写水平的同时,要以提高自身能力为目标。
11.发现的缺陷越多,是否意味着软件缺陷越多?这是比较普遍的现象。测试工程师在发现任何缺陷之前都会绞尽脑汁,但是一旦发现一个,就会不断发现缺陷,很有个人成就感。
主要原因是:
代码重用,代码重复,程序员容易犯同样的错误。的继承导致所有子类都包含基类的错误。复制相同的代码意味着缺陷也可能被复制。
程序员很努力,但是不断有很多功能缺陷产生。程序员加班是很自然的现象,所以在没有体力的情况下很容易做出缺陷很多的程序。这些持续的潜在缺陷正是测试工程师大显身手的地方。
“缺陷一个接一个”不是客观规律,而是普遍现象。如果软件写得好,这种现象会很少。测试人员仔细测试程序就够了。
12、错误报告流程编写程序,每一步的负责人和
主要工作完成了。测试人员向仓库提交新的bug,错误状态是新的。
高级测试人员/测试经理验证错误,如果确认是错误,则分配给开发团队。将状态设置为打开。如果不是错误,则拒绝它并将其设置为已拒绝状态。
开发经理将bug分配给相应的模块开发人员。
开发者查询状态为Open的bug,如果不是错误,则设置状态为Declined;如果是Bug,修复并将状态并列为已修复;如果解决不了Bug,就留下文字描述,让Bug一直开着。
对于解决不了或者推迟的bug,不是开发者自己能决定的。一般来说,它们必须经过某种会议(审查会议)的批准。测试人员查询固定状态的bug,然后验证bug是否已经解决。如果是,将bug的状态设置为已关闭,如果不是,将bug的状态设置为重新打开。
13.在Bug报告中写一些必要的内容。版本,用于在提交缺陷报告时,标识该缺陷存在于被测软件的哪个版本中。
错误报告优先级
错误状态
错误号
发现人物
提交者
指定经办人
摘要
扩展
严重
归属模块
附件
提交日期
14.画出软件测试的V模型图。
15.为什么要在团队中进行软件测试?因为在未测试的软件发布之前很难知道它的质量,就像ISO质量认证一样,测试也需要质量保证。这时候就需要在团队中进行软件测试。在测试的过程中,发现软件存在的问题,及时通知开发人员并修正。当软件即将发布时,从测试报告中获得软件的质量。
16.你熟悉什么类型的软件测试?请试着比较一下这些不同考试类型之间的区别和联系?测试类型有:功能测试、性能测试和接口测试。
功能测试在测试工作中所占的比重最大,功能测试也被称为黑盒测试。把测试对象想象成一个黑盒。使用黑盒测试方法进行动态测试时,需要测试软件产品的功能,而不是软件产品的内部结构和处理过程。利用黑盒技术设计测试用例的方法有:等价类划分、边界值分析、错误猜测、因果图、过程分析等。
性能测试是用自动化测试工具模拟各种正常、峰值和异常负载情况,测试系统的性能指标。负载测试和压力测试都是性能测试,可以结合使用。通过负载测试,确定系统在各种负载下的性能。目的是测试负载逐渐增加时系统各项性能指标的变化。压力测试是通过确定系统的瓶颈或不可接受的性能点来获得系统所能提供的最大服务水平的测试。
测试,界面是软件与用户最直接的交互层,界面的好坏决定了用户对软件的第一印象。而且,一个设计良好的界面可以引导用户完成相应的操作,起到引导作用。同时,界面就像人脸一样,有吸引用户的直接优势。设计一个合理的界面可以给用户带来一种放松和成功的感觉。相反,由于界面设计的失败,用户感到沮丧,甚至实用而强大的功能也可能在用户的恐惧和抛弃中浪费掉。
不同的是,功能测试关注的是产品的所有功能,考虑到每一个细节功能和每一个可能的功能问题。性能测试主要关注多用户并发下整个产品的稳定性和健壮性。测试更侧重于用户体验,产品是否易用、易懂、规范(快捷键等。)、美观(是否能吸引用户注意力)、安全(尽量避免用户在前台无意中输入无效数据,当然考虑到体验,不能太粗暴的弹出警告)。
17.请试比较一下黑盒测试、白盒测试、单元测试、集成测试、系统测试、验收测试的区别和联系?黑盒测试:已知产品的功能设计规范,可以通过测试来证明每个实现的功能是否满足要求。黑盒测试也称为功能测试。
白盒测试:产品的内部工作过程是已知的,可以通过测试内部的每一个操作是否符合设计规范,内部的所有部件是否都经过检查来证明。
单元测试(模块测试)是开发人员编写的一小段代码,用来检查被测代码的一个小而确定的功能是否正确。一般来说,单元测试用于判断特定功能在特定条件(或场景)下的行为。单元测试是程序员自己完成的,最终受益的是程序员自己。
集成测试(也称为组装测试、联合测试)是单元测试的逻辑延伸。其最简单的形式是:将两个被测单元组合成一个组件,测试它们之间的接口。在这个意义上,组件指的是多个单元的集成和聚合。
系统测试是将被测试的子系统组装成一个完整的系统进行测试。是检验系统是否能真正提供系统方案说明书中规定的功能的有效方法。(常见的调试测试)系统测试的目的是对最终的软件系统进行全面的测试,以确保最终的软件系统满足产品需求,遵循系统设计。
验收测试是部署软件之前的最后一个测试操作。验收测试的目的是确保软件准备就绪,最终用户可以使用它来执行软件的既定功能和任务。验收测试是为了向未来的用户展示系统可以按预期工作。经过集成测试,所有模块已经按照设计组装成一个完整的软件系统,接口错误已经基本消除。然后,要进一步验证软件的有效性。这就是验收测试的任务,即软件的功能和性能是否如用户所期望的那样。
18.测试计划工作的目的是什么?测试计划工作包括什么?哪些是最重要的?软件测试计划是指导测试过程的纲领性文件,包括产品概述、测试策略、测试方法、测试区域、测试配置、测试周期、测试资源、测试沟通、风险分析等。借助于软件测试计划,参与测试的项目成员,尤其是测试经理,可以明确测试任务和测试方法,在测试实施过程中保持沟通顺畅,跟踪和控制测试进度,应对测试过程中的各种变化。测试计划、测试规范和测试用例之间存在着战略和战术关系。测试计划主要从宏观角度规划测试活动的范围、方法和资源分配,而测试规格说明和测试用例是完成测试任务的具体策略。所以最重要的是测试测试策略和测试方法。
19.你之前工作的测试过程是怎样的?公司对如何做测试流程没有规定,但是每个测试人员都有自己的一套测试流程。我来告诉你我自己总结的过程。需求评审(包括开发人员、产品经理、测试人员、项目经理)-“需求确定”--“开发设计文档(开发人员可以在编写代码前输出设计文档)-“想到测试策略,编写测试用例并发送给开发人员、测试经理等相关人员(用例评审)--接收测试版本--执行测试用例(中间可能会补充用例)--提交bug(有些bug需要开发人员确定,比较严重,或者是突然发现在测试用例范围之外, 这些很难复制),有些可以直接记录到缺陷管理工具中)-由开发人员进行修改(这可以在测试过程中完成。
20.当开发者说这不是Bug,你怎么回应?有两种情况:
第一,需求没有确定,我可以这样做。这个时候我可以找产品经理确认一下是否需要更改。三方讨论确认后再看需不需要改。
第二,这种情况不可能发生,所以不需要修改。这个时候我能尽可能的分辨出Bug的基础是什么?如果被用户发现或者出了问题,会有什么不好的结果?程序员可能会给你很多理由,你可以反驳他的解释。如果还是不行,那我可以提出这个问题,跟开发经理和测试经理确认。需要修改的,就改。如果没有,就不改了。
21.简述什么是存储过程和触发器?存储过程是数据库中的一个对象,是Transact-SQL语句的预编译集合,存储在一个名称下并作为一个单元进行处理。(可以理解为C语言中的函数,具有参数、返回值等函数特性)
触发器是一种特殊类型的存储过程,当通过使用以下一个或多个数据修改操作修改指定表中的数据时,它会生效:UPDATE、INSERT或DELETE。
2.描述TCP/IP协议的层次结构以及每层中的重要协议。
23.在Linux系统中,一个文件的访问权限是755。它的含义是什么?55表示文件的所有者拥有对文件的读、写、执行权限,所有者所属组的用户和其他用户拥有对文件的读、执行权限。
24.简述C/S模式和B/S模式?C/S模式:客户机/服务器模式。工作原理:客户端向服务器提交请求;然后服务器使用一些方法来处理请求,并将结果返回给客户端。
B/S结构,即浏览器/服务器结构,是随着互联网技术的兴起,对C/S结构的一种改变或改进。在这种结构下,用户界面完全由WWW浏览器实现。
送一句话:世界的样子取决于你对它的凝视,你自己的价值取决于你的追求和心态。所有的美好愿望都不是在等待中拥有的,而是在奋斗中争取的。
最后:福利发一波:
我是一个职场的考妹!我刚做完测试教程就来分享一下。对python自动化测试、web自动化、界面自动化、移动自动化、面试经验交流等感兴趣的测试人员。可以关注微信微信官方账号:【伤心的辣条】获取大厂软件测试工程师面试资料!我的学习交流群:902061117群有技术差的手机可以交流分享~
如果文章对你有感兴趣,麻烦伸出发财小手点个赞,感谢您的支持,你的点赞是我持续更新的动力。
推荐文章:作为一名有1年工作经验的测试工程师,我对他的面试前建议如下
自动化测试到底想学什么?
跳槽为什么不考虑腾讯?说说我和鹅厂的过去。
自动化测试和人工测试哪个更先进?
新手必看:如何写出合格的测试用例?
python接口测试的日志和解题(干货)
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。