天天看点

测试面试题整理

1.Java和c++的不同之处,至少三个。

00、Java不再支持指针。这可能是C++和Java之间的最大不同。

【注】既然JAVA中不存在指针,那么也不存在->操作符。

01、Java不再支持操作符重载。

02、Java不再包含结构或者联合。在可以完全包含它们的类出现后,这些结构成为冗余部分。

03、Java不再包括预处理,也不再支持预处理指令。

04、Java不支持自动的类型转换,必须显示强制执行类型转换。  

05、在Java中的代码必须封装在一个或者多个类中。

【注】因此Java中不再包含所谓的全局变量或者全局函数。  

06、Java不再允许默认参数。  

07、Java不支持多继承,即不允许一个子类继承多个父类。

08、虽然Java支持构造函数,但是不再支持析构函数。但是Java增加了finalize( )函数。

09、Java不再支持typedef。 

10、Java中不再可能声明无符号整数。  

11、Java不再支持goto语句。  

12、Java不再有delete操作符。  

13、Java中的<>不再重载I/O操作。  

14、Java中,对象只能由引用传递,C++中对象可由值或引用传递。

00、多线程。Java允许两个或者多个相同的线程并发运行。这是一种在语言级支持的并发机制。C++中没有类似的机制,或者说C++采用的是单线程的体系结构。如果需要并发执行一个C++程序,必须利用操作系统的功能手工启动。虽然这两种方法都可以同时执行两个或者多个线程,但是Java的方法清楚而且便于使用。 

01、C++中没有可以与Java包对应的特性。最近似的是用一个公用头文件的一组库函数。然而,在C++中构建和使用库函数与在Java中构建包和使用包是完全不同的。 

02、Java的接口与C++的抽象类相似(C++中的抽象类是包括至少一个纯虚函数的类)。例如,C++的抽象类和Java的接口都不能创建实例。两者都用于指定一个子类实现的一致接口。两者之间最大的不同之处在于接口更清晰的表明了这个概念。  

03、Java提供一个流线型的内存分配机制(即系统自动回收内存机制)。与C++类似,Java支持new这个关键字。但是,不支持delete关键字。当对象的最后一个引用撤销时,对象本身被自动地删除,并进行内存垃圾回收。再考虑到Java没有指针,这使得Java语言安全性能更强。

04、Java丢弃了C++的标准库,将它替换成自己的API类集合。它们功能上有相似之处,但是名字和参数有显著的不同。同时,因为所有的Java API库都是面向对象的,而C++库只有部分是,所以库例程调用的方式不同。  

05、Java增强了break和continue语句以接收标记。

06、Java中的char类型是国际通用的16位Unicode字符集,所以能自动表达大多数国家的字符。这与C++中的wchar_t型相似。使用Unicode字符增强了代码的可移植性。  

07、Java增加了>>>操作,完成无符号的右移。  

08、除支持单行和多行的注释之外,Java增加了第三种注释方法:文档注释。文档注释以结尾。  

09、Java包含一个内置的字符串类型叫做String。String在某种程度上和C++提供的标准string类很相似。当然C++中的string只有在程序中声明后方可使用,它并不是内置的类型。

2.测试用例的设计方式,至少三个。

等价类,边界值 ,因果图,错误推测,路径覆盖,功能图 ,正交试验设计法,场景设计方法

3.测试的方法,至少五个

黑盒测试,白盒测试,回归测试,负载测试,压力测试,安全性测试、Ui测试,功能测试。。。。。。。。。。。。。其实我不是很懂到底要问什么,怎么变成测试的种类去了???

4.写测试用例。假设x的取值有1、2、3,Y的取值有a、b、c,通常来说要测试所有z=x+y的可能,需要3*3=9个case。那么假设x和y的取值各有100个,case数量级会很大。要如何去简化case数量呢?

边界加等价类划分?0,负数,小数?无效等价类?

5.对于网易邮箱的登录框,测试的时候要考虑哪些方面呢?(不是真的写case,是考虑测试方向)

回答了:功能上的,并发时的性能和压力,安全性(get方式可能会泄露用户名+密码),还有浏览器的兼容性问题。
           

8.写一个建表的sql语句

create table cs

(

    id char(10) NULL,

    name char(10) NULL,

    score integer NULL,

    primary key(id)

);

然后修改已有表的属性,比如添加新属性,删除旧属性的:

alter table cs add newOne integer NULL;

alter table cs drop newOne;
           

10.说进行项目测试的流程

a.参与需求分析,pm、开发、qa一起讨论,确定产品细节,生成项目文档;

b.进行开发。qa期间根据项目文档来写测试case,和开发人员沟通测试时应重点关注的问题;

c.提测,进行准入测试(冒烟测试)。if (false),打回,返回b;else,ok,进入d;

d.根据b中的case和重点,进行测试,包括功能的,安全的,兼容性的,性能,压力等等。发现bug,先进行定位,和开发人员进行沟通,记录。

e.开发人员解决bug,再次提测。bug未解决或衍生出新bug,返回d;bug解决了,进入f;

 f.测试通过,批准上线;

g.上线后进行回归测试,线上发现问题根据重要优先级记录下来,后期追加修复。
           

11.准入测试的衡量标准是什么

1 测试准入标准 1) 开发人员编码结束,并已完成自测试; 2) 需求说明书规定的功能或程序员提交的功能说明书的功能均已实现; 3) 基本流程可以走通,界面上功能均已实现,符合设计文档规定的功能; 4) 开发人员向测试部提交《测试申请单》和配置文件。

14.列举一些常用的linux命令

mv cp rm vim等等
           

15.怎么cp一个目录?mv有哪两种作用?

cp -r ......          移动文件,重命名。
           

3.写大浮点数相加的函数

char * add (char * d1, char * d2)

4.写一个函数,满足以下功能。给定一个2的倍数的整数n(不用考虑n是否错误了,假定n一定正常),比如n=8,那么对于数列1 2 3 4 5 6 7 8,函数调整一次后变为 1 5 2 6 3 7 4 8. 先写一次调整的,然后如果是k次调整呢?

5.使用grep命令。找出a.txt文件中每一行第一个字为数字的内容。

[]

匹配一个指定范围内的字符,如’[Gg]rep’匹配Grep和grep。

grep ^[1-9] a.txts

找出已u开头的行内容

[[email protected] test]# cat test.txt |grep ^u

ubuntu

ubuntu linux

输出非u开头的行内容

[[email protected] test]# cat test.txt |grep ^[^u]

hnlinux

peida.cnblogs.com

redhat

Redhat

linuxmint

[[email protected] test]#

输出以hat结尾的行内容

[[email protected] test]# cat test.txt |grep hat$

redhat

Redhat

[[email protected] test]#

6.显示文件最后100行

tail -100 fileName
           

7.查看本机的负载、性能等

9.做测试的话,是怎么个计划?钻研一个细方向?

测试的一个好处是可以了解整个系统的框架,模块交互,而不是局限于一个小模块的功能。在这个基础上,选择例如性能测试、压力测试作为主要专注领域吧。
           

1、两根不均匀分布的木棍,每根点完的时间都是一个小时,请问您如何确定一个45分钟的时间。

一根:两头同时烧

二根:和他一起烧,烧完后30分钟,一根剩一半,再两头同时烧,结束45分钟

2、TCP\IP五层结构,TCP、IP分别在哪层

传输层。网络层

3、HTTP中请求GET、POST的区别

4、软件测试的目的

5、对测试计划的理解,测试计划应包括哪些内容

6、缺陷跟踪系统是否了解,说明其中的bug流程

7、若早上上班发现上不了网了,如何定位解决

继续阅读