一、基础知识1、什么是软件测试,软件测试的目的是啥?2、什么是测试计划?都包括啥?什么是测试方案,什么是测试策略?测试方案包含哪些内容?测试用例设计方法有哪些?测试用例内容有哪些?3、测试用例为什么需要分级,如何分级别?测试用例需要哪些人来评审?评审的目的是什么?好的测试用例关键点是什么?不能发现BUG的测试用例不是好的测试用例吗?4、测试分为哪几个阶段?5、软件测试类型都有哪些?你进行过哪些测试,擅长什么?6、软件缺陷等级划分7、缺陷生命周期8、测试生命周期9、为什么要进行交叉测试?10、α、β测试是什么,两者的区别是什么?11、什么是驱动模块、桩模块12、什么是白盒测试,有几种方法13、测试结束标准14、测试报告包含哪些内容?15、项目中的需求,测试可以和客户沟通吗?不确定的需求怎么解决?16、你认为测试人员需要具备哪些素质?开发犯低级错误怎么办?开发说不是bug怎么办?你为什么能够做测试这一行?你的职业规划?17、如何测试纸杯二、接口测试1、什么是API?什么是API测试?2、常见的API测试点有哪些?API测试中使用的一些常用协议?用于API测试的工具?最常用的API文档模板?3、API和Web服务之间的区别?4、什么是Soap?什么是Rest API?SOAP和REST的区别?5、API常见测试有哪些?API测试有哪些优势?API测试中验证哪些内容?6、API测试、单元测试和UI测试之间的区别?7、API测试中可能会遇到哪些问题?8、执行API测试时我们一般会发现哪些BUG类型呢?9、接口测试用例的编写要点有哪些?10、列举一些最常用的HTTP方法?常见的响应状态码及意义11、可以使用GET请求而不是POST请求来创建资源吗?POST和GET有什么区别?12、PUT和POST方法有什么区别?13、接口产生的垃圾数据如何清理?测试的数据你放在哪?14、你们怎么做的参数化?15、接口测试的步骤有哪些?API测试设计的原理是?16、异步接口怎么测试?17、请详细阐述接口测试和UI测试在测试活动中是如何协同测试的?18、怎么设计接口测试用例?19、下个接口请求参数依赖上个接口的返回数据?依赖于登录的接口如何处理?依赖于第三方数据的接口如何进行测试?20、不可逆的操作,如何处理,比如删除一个订单这种接口如何测试21、json和字典dict的区别?三、性能测试1、性能测试包含了哪些软件测试(至少举出3种)?2、请问什么是性能测试、负载测试、压力测试?3、在给定的测试环境下进行,考虑被测系统的业务压力量和典型场景?4、什么时候可以开始执行性能测试?5、简述性能测试的步骤。
6、你如何识别性能瓶颈?7、性能测试时,是不是必须进行参数化?为什么要创建参数?LoadRunner中如何创建参数?8、你如何设计负载?标准是什么?9、解释5个常用的性能指标的名称与具体含义。
10、描述不同的角色(用户、产品开发人员、系统管理员)各自关注的软件性能要点。
11、请分别针对性能测试、负载测试和压力测试试举一个简单的例子?12、请问您是如何得到性能测试需求?怎样针对需求设计、分析是否达到需求?13、描述你的性能测试流程四、安全测试1、HTTP接口测试和Web Service接口测试区别是什么?2、HTTPS的优点和缺点?HTTPS的工作原理?HTTPS和HTTP的区别?什么是http代理服务器,有什么用?HTTPS在哪一层, 会话层在第几层?3、简述TCP/IP的三次握手和四次挥手,为什么TCP建立连接协议是三次握手,而关闭连接却是四次握手呢?为什么不能用两次握手进行连接?4、TCP和UDP有什么区别?5、什么是TCP/IP?什么是OSI协议?TCP/IP协议以及每层对应的协议?为什么说TCP/IP协议是不可靠的?OSI有哪七层模型?TCP/IP是哪四层模型?6、TCP长连接和短连接的区别?7、为什么要有cookie,它的作用是什么?测试点有哪些?缺点是什么?cookie与session的区别?8、什么是安全测试(Security Testing)?9、什么是漏洞(Vulnerability)?10、什么是入侵检测(Intrusion Detection)?11、什么是SQL注入(SQL injection)?12、列举安全测试的关注点?13、什么是XSS?14、什么是SSL连接和SSL Session?15、什么是渗透测试(Penetration Testing)?16、为什么渗透测试(Penetration Testing)非常重要?17、请说出用于保护密码文件的两种常见技术?18、什么是ISO/IEC 17799?19、列举一些可能导致软件系统存在漏洞的因素?20、列举进行安全测试的方法论?21、列举开源安全测试方法手册列出7种主要类型的安全测试?22、什么是SOAP and WSDL?23、请列举SSL session connection中定义的参数?24、什么是file enumeration?25、入侵检测系统(intrusion detection system)有什么优点?26、什么是HIDS?27、解释一下什么是URL操纵(URL manipulation)?28、常见的三类入侵者(intruders)都是什么?29、请列举SSL中常常使用到的组件有哪些?30、什么是端口扫描(port scanning)?31、什么是honeypot?32、请列举用于描述SSL Session state定义的参数?33、请简单描述一下Network Intrusion Detection system?六、团队管理1、测试团队的工作也依赖于业务和开发,如何有效提高与业务团队和开发团队的合作默契?2、团队如何考虑平衡质量和速度的测试策略?3、敏捷模式下,如何平衡快速发布和客户对质量的期望?4、团队的人测不出问题,上线后问题又很多,主管只能抽测一些重点的,这种情况怎么解决?七、非技术相关问题,软实力1、自我介绍2、项目和测试流程3、公司测试工作怎么进行?4、Hr心理5、面试原则6、你还有什么想要问的吗?一、基础知识1、什么是软件测试,软件测试的目的是啥?软件测试是为了发现错误而执行程序的过程,为保证软件质量而采取的措施。
根据软件开发各阶段的规格说明和程序的内部结构而精心设计的一批测试用例(输入以及预期的输出结果),并利用这些测试用例去运行程序,以发现程序中的错误。
目的以最少的人力、物力和时间找出软件中潜在的各种错误和缺陷,通过修正错误和缺陷提高软件质量,回避因软件发布后由于潜在的缺陷和错误造成的隐患带来的商业风险。
二种思维:正向:验证程序是否正常执行以及是否达到用户预期的需求。
反向:为发现错误或缺陷而进行的一系列活动。
2、什么是测试计划?都包括啥?什么是测试方案,什么是测试策略?测试方案包含哪些内容?测试用例设计方法有哪些?测试用例内容有哪些?测试计划:是对工作内容的有效组织和规划,保证测试工作有效展开。
包括测试目标,测试范围定义,测试方法选择,测试进度里程碑,测试资源管理和配置。
测试目标最重要,因为他是软件测试的最终达到结果测试方案:是指导我们怎么测的问题,里面的主要内容是测试点。
测试策略是指导我们要测什么方面,比如要进行功能测试,性能测试,兼容性测试等等,并指出需要依赖于什么工具。
测试方案包含:业务功能的描述,对需求功能的理解,业务流程图,业务表,测试点等。
测试用例设计方法:等价类、边界值、错误推测法、场景法、因果图、判定表。
测试用例内容:ID 、标题、优先级、预置条件、操作步骤、预期结果、实际结果、测试人、测试时间、备注。
3、测试用例为什么需要分级,如何分级别?测试用例需要哪些人来评审?评审的目的是什么?好的测试用例关键点是什么?不能发现BUG的测试用例不是好的测试用例吗?用例分级之后,对于特定版本的冒烟测试、或者有大更改之后的遍历测试等等场景下,我们可以很方便快速地筛选出所需用例的最小子集,提高测试的效率。
在不同阶段执行的用例数目是不同的,用例对应的功能的重要程度也是不同的,我们所约定的四个级别如下:1.非常重要:该用例执行失败,会导致很多重要功能无法运行;系统必须要使用的功能;这个级别的用例数量要控制。
2.很重要:功能交互相关、个别使用频率较高的正常功能测试用例;这个级别的数量较多。
3.一般:使用频率低于“很重要”级别;或使用频率与”很重要“差不多但功能很稳定;或即使发生错误,危害也很小。
(举例:字段的输入范围)4.次要:功能稳定、发生错误的可能性很小;或即使发生错误,危害性也很小。
评审人员:客户、项目经理、开发人员。
评审目的及时发现和客户理解不一致的地方,是否有改进的地方,希望把漏测的降到最低。
毕竟测试是保证软件质量的最后一个环节,测试用例又是测试执行的依据,所以项目组非常重视测试用例的评审。
好的测试用例关键点:“好的”测试用例一定是一个完备的集合,它能够覆盖所有等价类以及各种边界值,能够完全覆盖测试需求。
而跟能否发现缺陷无关。
如白盒测试:较少的用例覆盖尽可能多的内部程序逻辑结果。
黑盒测试:较少的用例覆盖模块输出和输入接口。
用最少用例在合理时间内发现最多的问题。
对可行和不可行的都要考虑:(1)输入(2)详细操作步骤(3)预期输出(4)实际输出我不这样认为,我觉得在执行之前,每个用例都可能发现缺陷,好的测试用例是一套完整的不遗漏的测试用例,是能够被其他的测试人员执行的测试用例。
不能因为是否找到BUG来说明用例是否好。
4、测试分为哪几个阶段?一般来说分为5个阶段:单元测试、集成测试、确认测试、系统测试、验收测试。
集成测试:确保最小单元被(部分)整合后能正常操作的测试执行阶段系统测试:当应用作为整体运行时的测试执行阶段(测试最终的应用)回归测试:修改了旧代码后,重新进行测试以确认修改操作没有引入新的错误或导致其他代码产生错误。
验收测试:以用户为主,由用户参加设计测试用例,对程序的功能、性能,以及可移植性、兼容性、可维护性、错误的恢复功能等进行确认。
主要运用黑盒测试的方法,对系统主要流程、重要功能进行有效性测试,验证所测试的软件是否满足需求规格说明书列出的要求需求分析,测试分析,测试设计,输出测试用例,测试策略,测试环境准备,测试执行,测试缺陷分析,测试报告5、软件测试类型都有哪些?你进行过哪些测试,擅长什么?测试类型包含:功能、性能、可靠性、安全性、负载测试,压力、安装/卸载、启动/停止、兼容、互联测试,文档、回归、可使用性、容量测试常见:功能测试、性能测试、界面测试。
功能测试:占比最大,也叫黑盒测试(不看代码)。
进行动态测试时,需要测试软件功能,不需要测试软件内部结构和处理过程。