【蚂蚁金服】javascript
1、自我介绍html
2、Tcp和udp:java
1.链路层(数据链路层/网络接口层):包括操做系统中的设备驱动程序、计算机中对应的网络接口卡web
2.网络层(互联网层):处理分组在网络中的活动,好比分组的选路数据库
3.运输层:主要为两台主机上的应用提供端到端的通讯编程
4.应用层:负责处理特定的应用程序细节浏览器
3、TCP三次握手和四次分手安全
三次握手服务器
四次握手网络
主动方A收到了FIN信号,返回ACK信号给被动方B,表示从被动方B到主动方A的链接关闭了,也就是被动方不能再发送数据给主动方
4、Dns的做用
DNS(Domain Name System,域名系统),万维网上做为域名和IP地址相互映射的一个分布式数据库,可以使用户更方便的访问互联网,而不用去记住可以被机器直接读取的IP数串
DNS系统:经过域名,最终获得该域名对应的IP地址的过程叫作域名解析(或主机名解析),DNS协议运行在UDP协议之上,使用端口号53
5、接口和抽象类的区别
接口是抽象方法的集合。若是一个类实现了某个接口,那么它就继承了这个接口的抽象方法。这就像契约模式,若是实现了这个接口,那么就必须确保使用这些方法。接口只是一种形式,接口自身不能作任何事情
抽象类是用来捕捉子类的通用特性的 。它不能被实例化,只能被用做子类的超类。抽象类是被用来建立继承层级里子类的模板
6、怎么理解测试这项工做的
就是利用测试工具按照测试方案和流程对产品进行功能和性能测试,甚至根据须要编写不一样的测试工具,设计和维护测试系统,对测试方案可能出现的问题进行分析和评估。执行测试用例后,须要跟踪故障,以确保开发的产品适合需求。使用人工或者自动手段来运行或测试某个系统的过程,其目的在于检验它是否知足规定的需求或弄清预期结果与实际结果之间的差异
7、Qtp怎么使用的
QTP:QuickTest Professional,关键字驱动(如控件)的功能测试工具,可以对各类编程语言开发的软件进行功能测试,能够用VBScript脚本语言编写程序
执行计划的步骤
建立测试脚本:按照计划录制脚本并保存
加强测试脚本
执行测试
分析测试结果
http://www.javashuo.com/article/p-caweufbh-ga.html
8、写测试用例
测试用例主要由8部分构成:所属的模块、名称、编号、等级、描述、预制条件、操做步骤、预期结果
9、Linux
经常使用命令:
10、软件测试里的元素定位
非xPath方式和xPath方式
11、TestNG怎么使用???
一、Selenium是浏览器自动化工具,主要用来Web的自动化测试
TestNG是一个设计用来简化普遍的测试需求的测试框架
编写测试的过程:
编写测试的业务逻辑并在代码中插入TestNG Annotation
将测试信息添加到testng.xml文件或者build.xml中
运行TestNG
注:TestNG设计的出发点,不只仅是单元测试,并且能够用于集成测试。设计目标的不一样,对比junit的只适合用于单元测试
二、测试信息尤为是测试数据再也不写死在测试代码中,好处就是修改测试数据时不须要修改代码/编译了,从而有助于将测试人员引入单元测试/集成测试
三、注解:
@BeforeSuite: 被注释的方法将在全部测试运行前运行
@AfterSuite:被注释的方法将在全部测试运行后运行
@BeforeTest: 被注释的方法将在测试运行前运行
@AfterTest: 被注释的方法将在测试运行后运行
@BeforeGroups: 被配置的方法将在列表中的gourp前运行。这个方法保证在第一个属于这些组的测试方法调用前当即执行。
@AfterGroups: 被配置的方法将在列表中的gourp后运行。这个方法保证在最后一个属于这些组的测试方法调用后当即执行。
@BeforeClass: 被注释的方法将在当前类的第一个测试方法调用前运行。
@AfterClass: 被注释的方法将在当前类的全部测试方法调用后运行。
@BeforeMethod: 被注释的方法将在每个测试方法调用前运行。
@AfterMethod: 被注释的方法将在每个测试方法调用后运行。
属性:
@alwaysRun 对于每一个bufore方法(beforeSuite, beforeTest, beforeTestClass 和 beforeTestMethod, 可是不包括 beforeGroups)
若是设置为true,被配置的方法将老是运行而无论它属于哪一个组。
对于after方法(afterSuite, afterClass, ...): 若是设置为true,被配置的方法甚至在一个或多个先调用的方法失败或被忽略时也将运行。
@dependsOnGroups 这个方法依赖的组列表
@dependsOnMethods 这个方法依赖的方法列表
@enabled 这个类的方法是否激活
@groups 这个类或方法所属的分组列表
@inheritGroups 若是设置为true,这个方法被属于在类级别被@Test annotation指定的组
@DataProvider 标记一个方法用于为测试方法提供数据。
被注释的方法必须返回Object[][], 其中每一个Object[]能够指派为这个测试方法的参数列表。从这个DataProvider接收数据@Test方法须要使用一个和当前注释相同名称的dataProvider名称
@name 这个DataProvider的名称
@Factory 标记方法做为一个返回对象的工厂,这些对象将被TestNG用于做为测试类。这个方法必须返回Object[]
@Parameters描述如何传递参数给@Test方法
value 用于填充这个方法的参数的变量列表
@Test 标记一个类或方法做为测试的一部分
@ alwaysRun 若是设置为true,这个测试方法将老是运行,甚至当它依赖的方法失败时
@ dataProvider 这个测试方法的data provider的名称
@ dataProviderClass 用于查找data provider的类。
若是不指定,将在当前测试方法所在的类或者它的基类上查找data provider。
若是这个属性被指定, 则data provider方法须要是指定类的static方法。
@ dependsOnGroups 当前方法依赖的组列表
@ dependsOnMethods 当前方法依赖的方法列表
@ description 当前方法的描述
@ enabled 当前类的方法/方法是否被激活
@ expectedExceptions 测试方法指望抛出的异常列表。若是没有异常或者抛出的不是列表中的任何一个,当前方法都将标记为失败.
@ groups 当前类/方法所属的组列表
@ invocationCount 当前方法被调用的次数
@ successPercentage 当前方法指望的成功率
@ sequential 若是设置为true,当前测试类上的全部方法保证按照顺序运行。甚至测试们在parallel="true"的状况下.
@ 这个属性只能用于类级别,若是用于方法级别将被忽略。
@ timeOut 当前方法允许花费的最大时间,单位毫秒。
@ threadPoolSize 当前方法的线程池大小。方法将被多线程调用,次数由invocationCount参数指定
注意:若是invocationCount没有指定则这个属性将被忽略
https://blog.csdn.net/lykangjia/article/details/56485295
12、事务(DB)
四大特性:数据库事务(Database Transaction) ,是指做为单个逻辑工做单元执行的一系列操做,要么彻底地执行,要么彻底地不执行。原子性:指事务包含的全部操做要么所有成功,要么所有失败回滚
事务
不考虑事务的隔离性,会发生的几种问题:
事务非独立执行时发生的一种现象。例如事务T1对一个表中全部的行的某个数据项作了从“1”修改成“2”的操做,这时事务T2又对这个表中插入了一行数据项,而这个数据项的数值仍是为“1”而且提交给数据库。
MySQL数据库为咱们提供的四种隔离级别:
① Serializable (串行化):可避免脏读、不可重复读、幻读的发生。
② Repeatable read (可重复读):可避免脏读、不可重复读的发生。
③ Read committed (读已提交):可避免脏读的发生。
④ Read uncommitted (读未提交):最低级别,任何状况都没法保证
十3、假如你如今来测试登录这个模块的话,你怎么测试
(1)基本功能测试点
(2)页面测试
(3)安全测试
十4、你是测试工程师,如何保证软件的质量
从两个角度:1.质量是全员质量,公司每一个成员都有责任参与质量保证。2.从测试角度来保证质量,测试也分为多个层次。
一、质量管理
(1)代码质量:开发经过单元测试保证
(2)让用户参与UAT测试,保证用户体验(使用质量)
(3)引入QA,保存过程环节质量
(4)系统测试工程师保证系统质量知足需求
二、质量保证
(1)测试策略:质量是多维度的,功能测试、性能测试、兼容性测试等多种测试类型的结合
(2)用例质量:采用合适的用例方法,如何进行需求分析,用例评审
(3)执行质量:如何保证执行深度(界面、关联模块、数据库、日志)与广度(系统测试类型
(4)缺陷质量:Bug评审,引入合适的Bug流程
(5)过程质量:合理的软件测试流程,测试过程监控