VC++笔试面试题

VC++笔试面试题
VC++笔试面试题

VC/C++的面试题

关键词:VC C++面试题

https://www.360docs.net/doc/3d4352426.html,/VC-C-t70849.htm

1、估计一下广州有多少理发师,如果允许,你还需要那些调研工作?并给出你的推导过程。你认为你的估算结果可信吗?

2、看过那些软件方面的书籍

3、什么是软件,软件开发包括那些步骤,并说出你对这些步骤的理解

4、OSI网络结构的七层模型分别是什么,并说出你认为划分为7层的理由。

5、软件过程中了解、使用过版本控制或建模工具吗?对你工作有什么帮助?

6、软件过程中你都写过什么文档?分别是什么目的及其对你的帮助?

7、我们知道,C++将内存划分为三个逻辑区域:堆、栈和静态存储,请说出它们的区别及你的理解。

8、字符串A是由n个小写英文字母(a ~ z)构成的,定义为char A[n]。你能用更少的空间表示这个字符串吗?请写出从char A[n]到你的新的储存格式的转换函数。(请用C/C++编程,不允许上机操作)

12、对现在的Stack(栈)数据结构进行改进,加一个min()功能,使之能在常数,即O(1),时间内给出栈中的最小值。可对push()和pop()函数进行修改,但要求其时间复杂度都只能是O(1)。

9、C++构造函数为什么不能是虚函数?

10、C++中virtual与inline的含义分别是什么?虚函数的特点;内联函数的特点;一个函数

能否即是虚函数又是内联函数?

12、请列出实现C++代码你认为需要注意的一些问题。

11、你在原来的项目中有没有遇到什么困难,又是如何解决的?

1 dll,lib处理实现 .lib文件中包含什么? dll在内存中被多个函数共享,有几个拷贝?

2 template,template等编译的时候作为几个类

3 struct ,class的区别,联系

4 MAcro,inline区别,实现.编译运行时

5 进程与线程区别

6 hdc-cdc区别联系

7 model dialog,modeless dialog,从创建到销毁全过程具体描述

8 各个线程new的内存,别的线程是否可以使用?

9 RUNTIME_CLASS, is what??

https://www.360docs.net/doc/3d4352426.html,/simple/index.php?t32.html

1. 堆和栈的区别?

栈区(stack)- 由编译器自动分配释放,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。

堆区(heap)- 一般由程序员分配释放,若程序员不释放,程序结束时可能由OS回收。

2. 虚函数的本质和实现机制?

虚函数的本质就是通过基类访问派生类定义的函数。虚函数只能借助于指针或者引用来达到多态的效果。

3. C++中传递函数参数的方式及他们的优缺点?

4. static关键字的作用?

5. 引用和指针的区别?

6. 函数重载和覆盖的区别?

7. 深拷贝和浅拷贝的区别?

8. 数组a[4][3]的内存结构?并指出a[2][3]和a[3][2]在内存中的位置?

9. 包含和私有继承的区别?

10. 实现一个操作栈的模板(empty,push,pop,),并实现错误处理(对空栈的pop)

11. ANSI和Unicode的区别?并指出C RunTime Library 和Win32 API对他们的支持。

12. 线程同步的四种方式的机制。

13. 虚拟内存。

14. DLL的实现机制和DLL的输出方式。

15. D3D的顶点着色。

16. 几种数据结构在游戏中的支持。

17. 游戏引擎

服务器程序员笔试题

C++

1.简述堆和栈的区别。

2.简述虚函数的本质和实现机制。

3.列举C++中向函数传递参数的各种方式,并比较它们之间的区别和优缺点。

4.static关键字有几种用途?请简述每种用途。

5.简述引用和指针的异同。

6.简述函数重载(overloading)和覆盖(overriding)的区别。

7.什么是深拷贝?什么是浅拷贝?

8.请画出二维数组char a[4][3]的内存结构图,并指出a[3][2]和a[2][3]在内存中的位置。

9.简述包含和私有继承的异同。

10.用模板实现一个通用的栈,要求实现empty, size, push, pop, top五个成员函数,并用异常机制来报告错误(比如在一个大小为0的栈上执行pop操作)。

标准库

11.用string类编写一个程序,它从标准输入接收一行输入,然后统计出其中单词的个数,单词的分隔符只有逗号、点号和空格三种。

12.简述STL的容器container、迭代器iterator、算法algorithm和函数器functor的作用以及它们之间的关系,举例说明。

13.下面的代码存在什么问题,如何修正?

list list1;

for (int i = 0; i < 8; i ++) {

list1.push_back(i);

}

for (list::iterator it = list1.begin(); it != list1.end(); ++it) {

if (*it % 2 == 0) {

list1.erase(it);

}

}

Win32

14.比较ANSI和Unicode的区别,并说明C Runtime Library和Win32 API如何支持二者。

15.简述线程同步的四种机制。

16.简述虚拟内存机制,并描述在win95和winnt下内存空间的结构。

17.简述DLL的实现机制以及输出DLL中函数的两种方法。

网络

18.简述TCP和UDP之间的区别。

19.简述Winsock的六种主要IO处理模式。

20.描述一个你以前实现过的服务器的结构图,并分析其中可能存在的瓶颈。

16. 关联、聚合(Aggregation)以及组合(Composition)的区别?

涉及到UML中的一些概念:关联是表示两个类的一般性联系,比如“学生”和“老师”就是一种关联关系;聚合表示has-a的关系,是一种相对松散的关系,聚合类不需要对被聚合类负责,如下图所示,用空的菱形表示聚合关系:

从实现的角度讲,聚合可以表示为:

class A {...}class B { A* a; .....}

而组合表示contains-a的关系,关联性强于聚合:组合类与被组合类有相同的生命周期,组合类要对被组合类负责,采用实心的菱形表示组合关系:

实现的形式是:

class A{...} class B{ A a; ...}

参考文章:https://www.360docs.net/doc/3d4352426.html,/Lily/archive/2006/02/23/6860.html

https://www.360docs.net/doc/3d4352426.html,/document/viewdoc/?id=422

17.面向对象的三个基本特征,并简单叙述之?

1. 封装:将客观事物抽象成类,每个类对自身的数据和方法实行protection(private, protected,public)

2. 继承:广义的继承有三种实现形式:实现继承(指使用基类的属性和方法而无需额外编码的能力)、可视继承(子窗体使用父窗体的外观和实现代码)、接口继承(仅使用属性和方法,实现滞后到子类实现)。前两种(类继承)和后一种(对象组合=>接口继承以及纯虚函数)构成了功能复用的两种方式。

3. 多态:是将父对象设臵成为和一个或更多的他的子对象相等的技术,赋值之后,父对象就可以根据当前赋值给它的子对象的特性以不同的方式运作。简单的说,就是一句话:允许将子类类型的指针赋值给父类类型的指针。

18.重载(overload)和重写(overried,有的书也叫做“覆盖”)的区别?

常考的题目。从定义上来说:

重载:是指允许存在多个同名函数,而这些函数的参数表不同(或许参数个数不同,或许参数类型不同,或许两者都不同)。

重写:是指子类重新定义复类虚函数的方法。

从实现原理上来说:

重载:编译器根据函数不同的参数表,对同名函数的名称做修饰,然后这些同名函数就成了不同的函数(至少对于编译器来说是这样的)。如,有两个同名函数:function

func(p:integer):integer;和function func(p:string):integer;。那么编译器做过修饰后的函数名称可能是这样的:int_func、str_func。对于这两个函数的调用,在编译器间就已经确定了,是静态的。也就是说,它们的地址在编译期就绑定了(早绑定),因此,重载和多态无关!

重写:和多态真正相关。当子类重新定义了父类的虚函数后,父类指针根据赋给它的不同的子类指针,动态的调用属于子类的该函数,这样的函数调用在编译期间是无法确定的(调用的子类的虚函数的地址无法给出)。因此,这样的函数地址是在运行期绑定的(晚绑定)。

19. 多态的作用?

主要是两个:1. 隐藏实现细节,使得代码能够模块化;扩展代码模块,实现代码重用;2. 接口重用:为了类在继承和派生的时候,保证使用家族中任一类的实例的某一属性时的正确调用。

20. Ado与https://www.360docs.net/doc/3d4352426.html,的相同与不同?

除了“能够让应用程序处理存储于DBMS 中的数据“这一基本相似点外,两者没有太多共同之处。但是Ado使用OLE DB 接口并基于微软的COM 技术,而https://www.360docs.net/doc/3d4352426.html, 拥有自己的https://www.360docs.net/doc/3d4352426.html, 接口并且基于微软的.NET 体系架构。众所周知.NET 体系不同于COM 体系,https://www.360docs.net/doc/3d4352426.html, 接口也就完全不同于ADO和OLE DB 接口,这也就是说https://www.360docs.net/doc/3d4352426.html, 和ADO是两种数据访问方式。https://www.360docs.net/doc/3d4352426.html, 提供对XML 的支持。

21.New delete 与malloc free 的联系与区别?

答案:都是在堆(heap)上进行动态的内存操作。用malloc函数需要指定内存分配的字节数并且不能初始化对象,new 会自动调用对象的构造函数。delete 会调用对象的destructor,而free 不会调用对象的destructor.

22.#define DOUBLE(x) x+x ,i = 5*DOUBLE(5); i 是多少?

答案:i 为30。

23. 有哪几种情况只能用intialization list 而不能用assignment?

答案:当类中含有const、reference 成员变量;基类的构造函数都需要初始化表。

24.C++是不是类型安全的?

答案:不是。两个不同类型的指针之间可以强制转换(用reinterpret cast)。C#是类型安全的。

25.main 函数执行以前,还会执行什么代码?

答案:全局对象的构造函数会在main 函数之前执行。

26.描述内存分配方式以及它们的区别?

1)从静态存储区域分配。内存在程序编译的时候就已经分配好,这块内存在程序的整个运行期间都存在。例如全局变量,static 变量。

2)在栈上创建。在执行函数时,函数内局部变量的存储单元都可以在栈上创建,函数执行结束

时这些存储单元自动被释放。栈内存分配运算内臵于处理器的指令集。

3)从堆上分配,亦称动态内存分配。程序在运行的时候用malloc 或new 申请任意多少的内存,程序员自己负责在何时用free 或delete 释放内存。动态内存的生存期由程序员决定,使用非常灵活,但问题也最多。

27.struct 和 class 的区别

答案:struct 的成员默认是公有的,而类的成员默认是私有的。struct 和 class 在其他方面是功能相当的。

从感情上讲,大多数的开发者感到类和结构有很大的差别。感觉上结构仅仅象一堆缺乏封装和功能的开放的内存位,而类就象活的并且可靠的社会成员,它有智能服务,有牢固的封装屏障和一个良好定义的接口。既然大多数人都这么认为,那么只有在你的类有很少的方法并且有公有数据(这种事情在良好设计的系统中是存在的!)时,你也许应该使用 struct 关键字,否则,你应该使用 class 关键字。

28.当一个类A 中没有生命任何成员变量与成员函数,这时sizeof(A)的值是多少,如果不是零,请解释一下编译器为什么没有让它为零。(Autodesk)

答案:肯定不是零。举个反例,如果是零的话,声明一个class A[10]对象数组,而每一个对象占用的空间是零,这时就没办法区分A[0],A[1]…了。

29. 在8086 汇编下,逻辑地址和物理地址是怎样转换的?(Intel)

答案:通用寄存器给出的地址,是段内偏移地址,相应段寄存器地址*10H+通用寄存器内地址,就得到了真正要访问的地址。

30.比较C++中的4种类型转换方式?

请参考:https://www.360docs.net/doc/3d4352426.html,/user1/8688/archives/2006/45399.shtml,重点是static_cast, dynamic_cast和reinterpret_cast的区别和应用。

[C/C++] C/C++ 笔试、面试题目大汇总[31-40]

bioeconomy 发表于 2006-3-22 17:49:00

31.分别写出BOOL,int,float,指针类型的变量a 与“零”的比较语句。

答案:

BOOL : if ( !a ) or if(a)

int : if ( a == 0)

float :const EXPRESSION EXP = 0.000001

if ( a < EXP && a >-EXP)

pointer : if ( a != NULL) or if(a == NULL)

32.请说出const与#define 相比,有何优点?

答案:1)const 常量有数据类型,而宏常量没有数据类型。编译器可以对前者进行类型安全检查。而对后者只进行字符替换,没有类型安全检查,并且在字符替换可能会产生意料不到的错误。

2)有些集成化的调试工具可以对const 常量进行调试,但是不能对宏常量进行调试。

33.简述数组与指针的区别?

数组要么在静态存储区被创建(如全局数组),要么在栈上被创建。指针可以随时指向任意类型的内存块。

(1)修改内容上的差别

char a[] = “hello”;

a[0] = ‘X’;

char *p = “world”; // 注意p 指向常量字符串

p[0] = ‘X’; // 编译器不能发现该错误,运行时错误

(2) 用运算符sizeof 可以计算出数组的容量(字节数)。sizeof(p),p 为指针得到的是一个指针变量的字节数,而不是p 所指的内存容量。C ++/C 语言没有办法知道指针所指的内存容量,除非在申请内存时记住它。注意当数组作为函数的参数进行传递时,该数组自动退化为同类型的指针。

char a[] = "hello world";

char *p = a;

cout<< sizeof(a) << endl; // 12 字节

cout<< sizeof(p) << endl; // 4 字节

计算数组和指针的内存容量

void Func(char a[100])

{

cout<< sizeof(a) << endl; // 4 字节而不是100 字节

}

34.类成员函数的重载、覆盖和隐藏区别?

答案:

a.成员函数被重载的特征:

(1)相同的范围(在同一个类中);

(2)函数名字相同;

(3)参数不同;

(4)virtual 关键字可有可无。

b.覆盖是指派生类函数覆盖基类函数,特征是:

(1)不同的范围(分别位于派生类与基类);

(2)函数名字相同;

(3)参数相同;

(4)基类函数必须有virtual 关键字。

c.“隐藏”是指派生类的函数屏蔽了与其同名的基类函数,规则如下:(1)如果派生类的函数与基类的函数同名,但是参数不同。此时,不论有无virtual关键字,基类的函数将被隐藏(注意别与重载混淆)。(2)如果派生类的函数与基类的函数同名,并且参数也相同,但是基类函数没有virtual 关键字。此时,基类的函数被隐藏(注意别与覆盖混淆)

35. There are two int variables: a and b, don’t use “if”, “? :”, “switch”or other judgement statements, find out the biggest one of the two numbers.

答案:( ( a + b ) + abs( a - b ) ) / 2

36. 如何打印出当前源文件的文件名以及源文件的当前行号?

答案:

cout << __FILE__ ;

cout<<__LINE__ ;

__FILE__和__LINE__是系统预定义宏,这种宏并不是在某个文件中定义的,而是由编译器定义的。

37. main 主函数执行完毕后,是否可能会再执行一段代码,给出说明?答案:可以,可以用_onexit 注册一个函数,它会在main 之后执行in t fn1(void), fn2(void), fn3(void), fn4 (void);

void main( void )

{

String str("zhanglin");

_onexit( fn1 );

_onexit( fn2 );

_onexit( fn3 );

_onexit( fn4 );

printf( "This is executed first.\n" );

}

int fn1()

{

printf( "next.\n" );

return 0;

}

int fn2()

{

printf( "executed " );

return 0;

}

int fn3()

{

printf( "is " );

return 0;

}

int fn4()

{

printf( "This " );

return 0;

}

The _onexit function is passed the address of a function (fun c) to be called when the program terminates normally. Successi ve calls to _onexit create a register of functions that are ex ecuted in LIFO (last-in-first-out) order. The functions passed to _onexit cannot take parameters.

38. 如何判断一段程序是由C 编译程序还是由C++编译程序编译的?答案:

#ifdef __cplusplus

cout<<"c++";

#else

cout<<"c";

#endif

39.文件中有一组整数,要求排序后输出到另一个文件中

答案:

#i nclude

#i nclude

using namespace std;

void Order(vector& data) //bubble sort

{

int count = data.size() ;

int tag = false ; // 设臵是否需要继续冒泡的标志位

for ( int i = 0 ; i < count ; i++)

{

for ( int j = 0 ; j < count - i - 1 ; j++)

{

if ( data[j] > data[j+1])

{

tag = true ;

int temp = data[j] ;

data[j] = data[j+1] ;

data[j+1] = temp ;

}

}

if ( !tag )

break ;

}

}

void main( void )

{

vectordata;

ifstream in("c:\\data.txt");

if ( !in)

{

cout<<"file error!";

exit(1);

}

int temp;

while (!in.eof())

{

in>>temp;

data.push_back(temp);

}

in.close(); //关闭输入文件流

Order(data);

ofstream out("c:\\result.txt");

if ( !out)

{

cout<<"file error!";

exit(1);

}

for ( i = 0 ; i < data.size() ; i++)

out<<<" ?;

40. 链表题:一个链表的结点结构

struct Node

{

int data ;

Node *next ;

};

typedef struct Node Node ;

(1)已知链表的头结点head,写一个函数把这个链表逆序 ( Intel)

Node * ReverseList(Node *head) //链表逆序

{

if ( head == NULL || head->next == NULL )

return head;

Node *p1 = head ;

Node *p2 = p1->next ;

Node *p3 = p2->next ;

p1->next = NULL ;

while ( p3 != NULL )

{

p2->next = p1 ;

p1 = p2 ;

p2 = p3 ;

p3 = p3->next ;

}

p2->next = p1 ;

head = p2 ;

return head ;

}

(2)已知两个链表head1 和head2 各自有序,请把它们合并成一个链表依然有序。(保留所有结点,即便大小相同)

Node * Merge(Node *head1 , Node *head2)

{

if ( head1 == NULL)

return head2 ;

if ( head2 == NULL)

return head1 ;

Node *head = NULL ;

Node *p1 = NULL;

Node *p2 = NULL;

if ( head1->data < head2->data )

{

head = head1 ;

p1 = head1->next;

p2 = head2 ;

}

else

{

head = head2 ;

p2 = head2->next ;

p1 = head1 ;

}

Node *pcurrent = head ;

while ( p1 != NULL && p2 != NULL)

{

if ( p1->data <= p2->data )

{

pcurrent->next = p1 ;

pcurrent = p1 ;

p1 = p1->next ;

}

else

{

pcurrent->next = p2 ;

pcurrent = p2 ;

p2 = p2->next ;

}

}

if ( p1 != NULL )

pcurrent->next = p1 ;

if ( p2 != NULL )

pcurrent->next = p2 ;

return head ;

}

(3)已知两个链表head1 和head2 各自有序,请把它们合并成一个链表

依然有序,这次要求用递归方法进行。 (Autodesk)

答案:

Node * MergeRecursive(Node *head1 , Node *head2)

{

if ( head1 == NULL )

return head2 ;

if ( head2 == NULL)

return head1 ;

Node *head = NULL ;

if ( head1->data < head2->data )

{

head = head1 ;

head->next = MergeRecursive(head1->next,head2);

}

else

{

head = head2 ;

head->next = MergeRecursive(head1,head2->next);

}

return head ;

}

[C/C++] C/C++ 笔试、面试题目大汇总[41-45]

bioeconomy 发表于 2006-3-22 20:28:00

41. 分析一下这段程序的输出 (Autodesk)

class B

{

public:

B()

{

cout<<"default constructor"<

}

~B()

{

cout<<"destructed"<

}

B(int i):data(i) //B(int) works as a converter ( int -> instanc e of B)

{

cout<<"constructed by parameter " << data <

}

private:

int data;

};

B Play( B b)

{

return b ;

}

(1)

results:

int main(int argc, char* argv[])constructed by parameter 5

{

destructed B(5)形参析构

B t1 = Play(5); B t2 = Play(t1); destructed t1形参析构return 0; destructed t2 注意顺序!

}

destructed t1

(2)

results:

int main(int argc, char* argv[])constructed by parameter 5

{

destructed B(5)形参析构

B t1 = Play(5); B t2 = Play(10); constructed by parameter 10 return 0; destructed B(10)形参析构

}

destructed t2 注意顺序!

destructed t1

42. 写一个函数找出一个整数数组中,第二大的数(microsoft)

答案:

const int MINNUMBER = -32767 ;

int find_sec_max( int data[] , int count)

{

int maxnumber = data[0] ;

int sec_max = MINNUMBER ;

for ( int i = 1 ; i < count ; i++)

{

if ( data[i] > maxnumber )

{

sec_max = maxnumber ;

maxnumber = data[i] ;

}

else

{

if ( data[i] > sec_max )

sec_max = data[i] ;

}

}

return sec_max ;

}

43. 写一个在一个字符串(n)中寻找一个子串(m)第一个位臵的函数。

KMP算法效率最好,时间复杂度是O(n+m),详见:https://www.360docs.net/doc/3d4352426.html,/ blog/c_335_kmp.html

44. 多重继承的内存分配问题:

比如有class A : public class B, public class C {}

那么A的内存结构大致是怎么样的?

这个是compiler-dependent的, 不同的实现其细节可能不同。

如果不考虑有虚函数、虚继承的话就相当简单;否则的话,相当复杂。

可以参考《深入探索C++对象模型》,或者:

https://www.360docs.net/doc/3d4352426.html,/rainlight/archive/2006/03/03/614792.aspx

https://www.360docs.net/doc/3d4352426.html,/archive/default.asp?url=/archive/en-us/dnar vc/html/jangrayhood.asp

45. 如何判断一个单链表是有环的?(注意不能用标志位,最多只能用两个额外指针)

struct node { char val; node* next;}

bool check(const node* head) {} //return false : 无环;true: 有环

一种O(n)的办法就是(搞两个指针,一个每次递增一步,一个每次递增两步,如果有环的话两者必然重合,反之亦然):

bool check(const node* head)

{

if(head==NULL) return false;

node *low=head, *fast=head->next;

while(fast!=NULL && fast->next!=NULL)

{

low=low->next;

fast=fast->next->next;

if(low==fast) return true;

}

return false;

}

一、请填写BOOL , float, 指针变量与“零值”比较的 if 语句。(10分)

提示:这里“零值”可以是0, 0.0 , FALSE或者“空指针”。例如 int 变量 n 与“零值”比较的 if 语句为:

if ( n == 0 )

if ( n != 0 )

以此类推。

二、以下为Windows NT下的32位C++程序,请计算sizeof的值(10分)

三、简答题(25分)

1、头文件中的 ifndef/define/endif 干什么用?

2、#include 和 #include “filename.h”有什么区别?

3、const 有什么用途?(请至少说明两种)

4、在C++ 程序中调用被 C编译器编译后的函数,为什么要加extern “C”声明?

5、请简述以下两个for循环的优缺点

四、有关内存的思考题(20分)

五、编写strcpy函数(10分)

已知strcpy函数的原型是

char *strcpy(char *strDest, const char *strSrc);

其中strDest是目的字符串,strSrc是源字符串。

(1)不调用C++/C的字符串库函数,请编写函数 strcpy

(2)strcpy能把strSrc的内容复制到strDest,为什么还要char * 类型的返回值?

六、编写类String的构造函数、析构函数和赋值函数(25分)

已知类String的原型为:

class String

{

public:

String(const char *str = NULL); // 普通构造函数

String(const String &other);// 拷贝构造函数

~ String(voi

d); // 析构函数

String & operate =(const String &other);// 赋值函数

private:

char*m_data;/ / 用于保存字符串

};

请编写String的上述4个函数。

以上题目摘自林锐博士的《高质量C++编程指南》。大家可以去看这本书作为参考

软件测试工程师笔面试试题

软件测试工程师笔面试试题 面试题 1.为什么要在一个团队中开展软件测试工作? 2.您是否了解以往所工作的企业的软件测试过程?如果了解,请试述 在这个过程中都有哪些工作要做?分别由哪些不同的角色来完成这些 工作? 03. 您是否了解以往所工作的企业的软件开发过程?如果了解,请试述 一个完整的开发过程需要完成哪些工作?分别由哪些不同的角色来完 成这些工作?(对于软件测试部分,可以简述) 4.您在以往的测试工作中都曾经具体从事过哪些工作?其中最擅长

哪 部分工作? 5.您所熟悉的软件测试类型都有哪些?请试着分别比较这些不同的测 试类型的区别与联系(如功能测试、性能测试……) 6.请试着比较一下黑盒测试、白盒测试、单元测试、集成测试、系统 测试、验收测试的区别与联系。 7.测试计划工作的目的是什么?测试计划工作的内容都包括什么?其 中哪些是最重要的? 8.您认为做好测试计划工作的关键是什么? 9.您所熟悉的测试用例设计方法都有哪些?请分别以具体的例子来说 明这些方法在测试用例设计工作中的应用。 10.您认为做好测试用例设计工作的关键是什么?

11.请以您以往的实际工作为例,详细的描述一次测试用例设计的完整 的过程。 12.您以往的工作中是否曾开展过测试用例的评审工作?如果有,请描 述测试用例评审的过程和评审的内容。 13.您以往是否曾经从事过性能测试工作?如果有,请尽可能的详细描 述您以往的性能测试工作的完整过程。 14.您在从事性能测试工作时,是否使用过一些测试工具?如果有,请 试述该工具的工作原理,并以一个具体的工作中的例子描述该工具是如何在实际工作中应用的。 15.您认为性能测试工作的目的是什么?做好性能测试工作的关键 是什 么?

46家公司面试笔试题

46 家公司面试笔试题 Sony 笔试题 1.完成下列程序 #include #define N 8 int main() { int i; int j; int k;

return 0; } 2.完成程序,实现对数组的降序排序 #include void sort( ); int main() { int array[]={45 ,56 ,76 ,234 ,1,34,23,2,3};// 数字任// 意给出 sort( ); return 0; } void sort( ) { } 3.费波那其数列,1, 1 , 2 , 3 , 5……编写程序求第十 项。可以用递归,也可以用其他方法,但要说明你选择 的理由。 #include int Pheponatch(int);

int main() { printf("The 10th is %d",Pheponatch(10)); return 0; } int Pheponatch(int N) { } 4.下列程序运行时会崩溃,请找出错误并改正,并且说明原因。 #include #include typedef struct{ TNode* left; TNode* right; int value; } TNode; TNode* root=NULL; void append(int N); int main() {

append(63); append(45); append(32); append(77); append(96); append(21); append(17); // Again, 数字任意给出 } void append(int N) { TNode* NewNode=(TNode *)malloc(sizeof(TNode)); NewNode->value=N; if(root==NULL) { root=NewNode; return; } else { TNode* temp; temp=root; while((N>=temp.value && temp.left!=NULL) || (N !=NULL )) { while(N>=temp.value && temp.left!=NULL) temp=temp.left; while(N temp=temp.right;

软件测试工程师笔试题及答案

测试工程师笔试题 一、计算机知识(30分) 1、在Linux系统中,一个文件的访问权限是755,其含义是什么 参考答案: 755表示该文件所有者对该文件具有读、写、执行权限,该文件所有者所在组用户及其他用户对该文件具有读和执行权限。 2、Linux中,如何从root用户切换到普通用户 参考答案:su su user1 切换到user1,但切换后的当前目录还是root访问的目录 su – user1 切换到user1,并且当前目录切换到user1的根目录下(/home/user1/) 3、简述一下C/S模式和B/S模式的区别 参考答案: c/s 是客户端/服务器架构 b/s 是浏览器/服务器架构 C/S模式有以下特点: S模式将应用与服务分离,系统具有稳定性和灵活性 S模式配备的是点对点的结构模式,适用于局域网,有可靠的安全性 3.由于客户端实现与服务器端的直接连接,没有中间环节,因此响应速度快 4.在C/S模式中,作为客户机的计算机都要安装客户机程序,一旦软件系统升级,每台客户机都要安装客户机程序,系统升级和维护较为复杂 B/S模式有以下特点: 1.系统开发、维护、升级方便 每当服务器应用程序升级时,只要在服务器上升级服务应用程序即可,用户计算机上的浏览器软件不需要修改,系统开发和升级维护方便 S模式具有很强的开放性 在B/S模式下,用户通过通用的浏览器进行访问,系统开放性好 S模式的结构易于扩展 由于Web的平台无关性,B/S模式的结构可以任意扩展,可以从包含一台服务器和几个用户的小型系统扩展成为拥有成千上万个用户的大型系统 4.用户使用方便 B/S模式的应用软件都是基于Web浏览器的,而Web浏览器的界面是类似的。对于无用户交换功能的页面。用户接触的界面都是一致的,用户使用方便 4、Windows操作系统中PATH环境变量的作用是什么 参考答案: PATH是Windows操作系统环境变量,PATH作用是用户在命令行窗口执行一个命令,则在PATH变量设置的目录下依次寻找该命令或对应的执行文件,若找到,则执行,若没有找到,则命令行窗口返回无效命令。 5、TCP和UDP有什么区别 参考答案: TCP-有连接,所以握手过程会消耗资源,过程为可靠连接,不会丢失数据,适合大数据量交换UDP-非可靠连接,会丢包,没有校验,速度快,无须握手过程

数字IC设计笔试面试经典100题

1:什么是同步逻辑和异步逻辑?(汉王) 同步逻辑是时钟之间有固定的因果关系。异步逻辑是各时钟之间没有固定的因果关系。 同步时序逻辑电路的特点:各触发器的时钟端全部连接在一起,并接在系统时钟端,只有当时钟脉冲到来时,电路的状态才能改变。改变后的状态将一直保持到下一个时钟脉冲的到来,此时无论外部输入x 有无变化,状态表中的每个状态都是稳定的。 异步时序逻辑电路的特点:电路中除可以使用带时钟的触发器外,还可以使用不带时钟的触发器和延迟元件作为存储元件,电路中没有统一的时钟,电路状态的改变由外部输入的变化直接引起。 2:同步电路和异步电路的区别: 同步电路:存储电路中所有触发器的时钟输入端都接同一个时钟脉冲源,因而所有触发器的状态的变化都与所加的时钟脉冲信号同步。 异步电路:电路没有统一的时钟,有些触发器的时钟输入端与时钟脉冲源相连,只有这些触发器的状态变化与时钟脉冲同步,而其他的触发器的状态变化不与时钟脉冲同步。 3:时序设计的实质: 时序设计的实质就是满足每一个触发器的建立/保持时间的要求。 4:建立时间与保持时间的概念? 建立时间:触发器在时钟上升沿到来之前,其数据输入端的数据必须保持不变的最小时间。保持时间:触发器在时钟上升沿到来之后,其数据输入端的数据必须保持不变的最小时间。 5:为什么触发器要满足建立时间和保持时间? 因为触发器内部数据的形成是需要一定的时间的,如果不满足建立和保持时间,触发器将进入亚稳态,进入亚稳态后触发器的输出将不稳定,在0和1之间变化,这时需要经过一个恢复时间,其输出才能稳定,但稳定后的值并不一定是你的输入值。这就是为什么要用两级触发器来同步异步输入信号。这样做可以防止由于异步输入信号对于本级时钟可能不满足建立保持时间而使本级触发器产生的亚稳态传播到后面逻辑中,导致亚稳态的传播。 (比较容易理解的方式)换个方式理解:需要建立时间是因为触发器的D端像一个锁存器在接受数据,为了稳定的设置前级门的状态需要一段稳定时间;需要保持时间是因为在时钟沿到来之后,触发器要通过反馈来锁存状态,从后级门传到前级门需要时间。 6:什么是亚稳态?为什么两级触发器可以防止亚稳态传播? 这也是一个异步电路同步化的问题。亚稳态是指触发器无法在某个规定的时间段内到达一个可以确认的状态。使用两级触发器来使异步电路同步化的电路其实叫做“一位同步器”,他只能用来对一位异步信号进行同步。两级触发器可防止亚稳态传播的原理:假设第一级触发器的输入不满足其建立保持时间,它在第一个脉冲沿到来后输出的数据就为亚稳态,那么在下一个脉冲沿到来之前,其输出的亚稳态数据在一段恢复时间后必须稳定下来,而且稳定的数据必须满足第二级触发器的建立时间,如果都满足了,在下一个脉冲沿到来时,第二级触发器将不会出现亚稳态,因为其输入端的数据满足其建立保持时间。同步器有效的条件:第一级触发器进入亚稳态后的恢复时间+ 第二级触发器的建立时间< = 时钟周期。

自动化测试工程师面试题

自动化测试工程师面试题 (答题时间100分钟) A.测试基础 1、白盒测试与黑盒测试的区别是什么? 2、什么是正交试验法,使用场景是什么? 3、数据库中,游标是什么?其作用是什么? 。 4、简述常用的Bug管理或者用例管理工具,并且描述其中一个工作流程。 5、智力题 6、一个屋子有一个门(门是关闭的)和3盏电灯。屋外有3个开关,分别与这3 盏灯相连。你可以随意操纵这些开关,可一旦你将门打开,就不能变换开关了。请确定每个开关具体管哪盏灯。

B.自动化测试 1、自动化测试与测试自动化的区别。 2、列举出你熟悉的自动化工具,并说明其实现原理。 3、自动化测试的使用场景? 4、什么是关键字驱动? 5、高质量的自动化脚本应该具备哪些特性? 6、简述Slenium grid的作用。 7、简要说明下面api的使用方法 A: 此API功能说明:

C.开发能力 1、描述==与equals的区别 2、final, finally, finalize的区别 3、说明Tomcat的中下列参数的作用: enableLookups= "false " redirectPort= "8443 " 4、Java中sleep和wait的区别 5、SSH是什么?每个框架扮演的角色是什么? 6、Linux系统下怎么查看和关闭名为jira的进程? 7、Linux如何安装jdk、mysql请写出相关命令? 8、HashMap和Hashtable的区别? 9、编程题: 1:写一个Singleton模式

2:现在需要实现一个用户登录功能,需要不同的用户有不同的权限,请设计出开发思路,可以使用伪代码。

软件测试工程师笔试题目和答案

一、判断题 1.软件测试的目的是尽可能多的找出软件的缺陷。(Y) 2.Beta测试是验收测试的一种。(Y) 3.验收测试是由最终用户来实施的。(N) 4.项目立项前测试人员不需要提交任何工件。(Y) 5.单元测试能发现约80%的软件缺陷。(Y) 6.代码评审是检查源代码是否达到模块设计的要求。(N) 7.自底向上集成需要测试员编写驱动程序。(Y) 8.负载测试是验证要检验的系统的能力最高能达到什么程度。(N) 9.测试人员要坚持原则,缺陷未修复完坚决不予通过。(N) 10.代码评审员一般由测试员担任。(N) 11.我们可以人为的使得软件不存在配置问题。(N) 12.集成测试计划在需求分析阶段末提交。(N) 二、选择题 1.软件验收测试的合格通过准则是:(ABCD) A.软件需求分析说明书中定义的所有功能已全部实现,性能指标全部达到要求。B.所有测试项没有残余一级、二级和三级错误。 C.立项审批表、需求分析文档、设计文档和编码实现一致。 D.验收测试工件齐全。 2.软件测试计划评审会需要哪些人员参加?(ABCD) A.项目经理 B.SQA负责人

D.测试组 3.下列关于alpha测试的描述中正确的是:(AD) A.alpha测试需要用户代表参加 B.alpha测试不需要用户代表参加 C.alpha测试是系统测试的一种 D.alpha测试是验收测试的一种 4.测试设计员的职责有:(BC) A.制定测试计划 B.设计测试用例 C.设计测试过程、脚本 D.评估测试活动 5.软件实施活动的进入准则是:(ABC) A.需求工件已经被基线化 B.详细设计工件已经被基线化 C.构架工件已经被基线化 D.项目阶段成果已经被基线化 三、填空题 1.软件验收测试包括:正式验收测试,alpha测试,beta测试。 2.系统测试的策略有:功能测试,性能测试,可靠性测试,负载测试,易用性测试,强度测试,安全测试,配置测试,安装测试,卸载测试,文挡测试,故障恢复测试,界面测试,容量测试,兼容性测试,分布测试,可用性测试,(有的可以合在一起,分开写只要写出15就满分哦) 3.设计系统测试计划需要参考的项目文挡有:软件测试计划,软件需求工件和迭代计划。

一套比较完整的软件测试人员面试题

人力资源问题 你为什么选择软件测试行业 因为之前有了解软件测试这个行业,觉得他的发展前景很好。也对 根据你以前的工作经验描述一下软件开发、测试过程,由那些角色负责,你做什么 要有架构师、开发经理、测试经理、程序员、测试员 我在里面主要是负责所分到的模块执行测试用例。 结合你以前的学习和工作经验,你认为如何做好测试。 根据我以前的工作经验,我认为做好工作首先要有一个好的沟通,只有沟通无障碍了,才会有好的协作,才会有跟好的效率,再一个就是技术一定要过关,做测试要有足够的耐心,和一个良好的工作习惯,不懂的就问,实时与同事沟通这样的话才能做好测试工作。 你觉得测试最重要的是什么 尽可能的找出软件的错误 怎样看待加班问题 加班的话我没有太多的意见,但是我还是觉得如果能够合理的安排时间的话,不会有太多时候会加班 的。 如果一个很有个性的程序员认为自己的BUG不是BUG,怎么解决? 首先我要确定我所提的在我认为是不是bug,如果我认为是的话我会在他面前重现这个bug和他讲这是个bug,和他沟通,或者我会找到我的直系领导让他解决。 为什么在团队中要有测试 因为软件有错误,如果没有专业的测试人员很难发现软件的一些错误。 在测试时代学习自己最大的收获是什么? 在测试时代我除了学习了测试的知识外,还看到了老师们对待测试的一种态度,明白了做任何工作都要有沟通,做测试的也要有很好的沟通才可以做好。知道自己在项目组中的位置,和开发的关系。 你对未来的规划 我想在工作中慢慢的积累经验,使自己强大起来,能够担任更重要的职务。 自己优势及缺点 我的优点是有足够的耐心对待每一件事情,善于观察事物,承受压力的能力很强。缺点可能就是我不是很爱说话,习惯做不习惯说,但是和人沟通还是没有问题的。

校园招聘笔试面试题及部分答案

笔试面试题汇总 一、笔试题 1、给你一个二叉树的前序序列和中序序列,求其后续序列?(淘宝) 先看三个公式: PreOrder(T)=T的根节点+PreOrder(T的左子树)+PreOrder(T的右子树); InOrder(T)= InOrder(T的左子树)+T的根节点+ InOrder(T的右子树); PostOrder(T)= PostOrder(T的左子树)+ PostOrder(T的右子树)+T的根节点。 根据以上的三给公式就可以很容易解决一下两个问题: 前序+中序→后序; 中序+后序→前序。 当然也可把树画出来,再求他的各种序列。 2、Cache替换算法命中率最高是?(淘宝) 这个组成原理就有讲到了,可以找组成原理的书看下,把各种替换算法在理解下,在书上的P98-P99讲得很详细。 3、给一个顺序表,然后再给你一个码值,求在二分查找改码值的比较次数?(淘宝) 自己去做二分的查找的过程,我们知道二分查找是log(n)的,一次比较次数大于log(n)肯定是错的。具体可以看下数据结构的书,P17-P一八讲的很详细。 4、编译程序中安排中间代码生成的目的是?(淘宝) 把与机器相关的工作集中到目标代码生成阶段,难度和工作量下降。便于移直和维护。利于优化。 5、假设在n进制下,17*456=8206成立,n是多少?(淘宝) 从上面的等式中可以看到8,则进制可定大于8,因此可以从9进制开始枚举,直至满足等式,就可以了。(建议:先都转换成十进制,在实现乘法运算) 6、要从一亿会员中抽出100万会员,考虑到公平性、相对分散、相对随机,不能重复,抽取速度 要快。有一个random函数,能产生0-9的随机数。请写出你能想到的抽取方法?并写明步骤。 (淘宝) 用random函数产生两个数x1、x2,那么会员号mod 100 等于x1x2的话,该会与就被选中。这样每个会员的中奖概率是1/100。 7、Malloc和new的区别? 8、++、--、sizeof(字符串、结构体)(融通) 9、字符串函数的实现(strlen、strcpy等)(网龙、亿联网络) 10、字符串以单词逆序 11、CSTRING类的一些基本函数的实现 12、DEBUG 和RELESE 两种调试的区别 13、CONST的用法 我只要一听到被面试者说:"const意味着常数",我就知道我正在和一个业余者打交道。去年Dan Saks已经在他的文章里完全概括了const的所有用法,因此ESP(译者:Embedded Systems Programming)的每一位读者应该非常熟悉const能做什么和不能做什么.如果你从没有读到那篇文章,只要能说出const意味着"只读"就可以了。尽管这个答案不是完全的答案,但我接受它作为一个正确的答案。(如果你想知道更详细的答案,仔细读一下Saks的文章吧。) 如果应试者能正确回答这个问题,我将问他一个附加的问题: 下面的声明都是什么意思? const int a;

测试面试问题及答案

这篇帖子中的题目有我自己面试过程中问道过的,也有在网上看到的,但是答案我都是结合自己的从业经验以及真是的项目实践流程来编写的,不能说这就是最终的正确答案,但是希望整理出来能给大家一些参考和帮助!如果大家有更好的答案不妨写到帖子当中,我们共同讨论 1、介绍一下整体项目流程 答案: 1.搭建缺陷管理的环境和测试环境以及配置管理的环境搭建; 2.编写测试计划; 3.设计测试用例; 4.编写测试用例; 5.测试用例的评审; 6.执行测试; 7.缺陷管理; 8.测试报告的输出 2、在实际项目中你是如何做测试计划 答案: 1.对客户提供的或需求分析人员编写的用户需求文档或需求规格说明书进行分析,提炼出测试要点; 2.根据测试要点编写测试用例。 3.由评审组对测试用例进行评审--修改--再次评审--初步定稿 4.执行测试 4.1按照测试用例对系统进行功能验证及客户的需求验证 4.2将测试过程中产生的Bug录入缺陷管理系统 4.3新版本发布后,对本次版本新增加的功能以及开发人员修正的Bug进行回归测试 4.4根据项目需要提交测试报告。 3、你是如何制定测试过程中的时间进度表的 答案:根据项目的需求、开发周期、开发人员的开发进度等时间安排来制定一个测试时间进度初稿,并将测试时间进度表交与整个项 目团队成员大家一起讨论和分析,最终和所有人达成共识制定出一个大家都可以执行的测试时间进度表。时间表中包括了开发人员提交功能或功能模块的时间,以及为了更好的执行测试,配合测试人员进行功能培训的时间,以及测试执行时间等,都详细的写到WBS中,并按照这个时间进度表来执行项目的测试任务。 4、测试计划都包括那些项 答案:1.测试计划目标2.测试参考文档3.测试术语与定义4.测试内容5.测试人员的分工6.测试进度7.测试流程8.测试工具9.测试缺陷管理10.测试的风险分析 5、测试用例如何设计的 答案:在测试用例设计之前首先要熟悉客户的需求文档或需求规格说明书,以做到对被测系统的熟悉,充分了解产品的详细功能,并在熟悉过程中即使与研发人员和客户人员进行有效的沟通。然后从需求中提炼中各个模块的详细功能点编写出一个测试要点的文档。根据测试要点设计测试用例,测试要点与测试用例

100道面试常见问题经典面试题

工作动机、个人愿望 ?问题:请给我们谈谈你自己的一些情况 ?回答:简要的描述你的相关工作经历以及你的一些特征,包括与人相处的能力和个人的性格特征。如果你一下子不能够确定面试者到底需要什么样的内容,你可以这样说: “有没有什么您特别感兴趣的范围?” ?点评:企业以此来判断是否应该聘用你。通过你的谈论,可以看出你想的是如何为公司效力还是那些会影响工作的个人问题。当然,还可以知道你的一些背景。 问题:你是哪年出生的?你是哪所大学毕业的?等等 回答:我是XXXX年出生的。我是XX大学毕业的。 ?点评:这类问题至为关键的是要针对每个问题简洁明了的回答,不可拖泥带水,也不必再加什么说明。完全不必再画蛇添足的说“我属X,今年XX岁”之类的话。至于专业等 或许主考官接下来的问题就是针对此而言的,故而不必迫不及待和盘托出。 ?问题:你认为对你来说现在找一份工作是不是不太容易,或者你很需要这份工作? ?回答: ? 1.是的。 ? 2.我看不见得。 ?点评: ?一般按1回答,一切便大功告成。 ?有些同学为了显示自己的“不卑不亢“,强调个人尊严,故按2回答。结果,用人单位打消了录用该生的念头,理由是:“此人比较傲“一句话,断送了该生一次较好的就 业机会。 ?问题:为何辞去原来的工作? ?回答:工作地点离家较远,路上花费时间多,发生交通问题时,影响工作。贵公司的工作岗位更适合自己专业(个性)的发展。 ?点评:为了避免应聘者以相同的原因辞职,公司尽量能做到对这方面原因的了解,有助于创造一个良好的工作环境和人际氛围。因此,应聘者最好说出对方能信服的理由。 如果自己确有缺点,要说出“将尽量克服自己缺点”,作为有信心改变这类情况的答复。 ?问题:你是怎么应聘到我们公司的?

性能测试面试题附答案范文

1、哪个函数是用来截取虚拟用户脚本中的动态值?(手工关联) Web_reg_save_param 2、你如何识别系统瓶颈? 从TPS指标分析(即系统每秒处理可处理事务数)当前随着用户数的增长其系统每秒可处理的事务数是否也会增长 3、think_time有什么用? Think_time作用主要有以下几种: 1)降低当前运行时压力,缓解对应用服务器所造成的压力 2)模拟真实生产用户操作,考察对服务器所造成的影响 4、一般什么时候开始进行性能测试 被测系统的正常业务流程通过,即集成测试通过后。 5、进行参数化的目的 1)减少脚本的大小 2)提供不同的值以提高执行脚本的能力,从而更加真实的模拟生产环境的数据 6、容量测试方法中为什么要以逐步递增的的方式进行 虚拟用户数随着负载时间的延长而增加,可以帮助确定系统响应时间减慢的准确时间点以及准确用户数 7、假设在测试过程中发现某些事务的响应时间过长,但分析应用服务、数据库服务以及网络都属于 正常现象,问题可能出现的原因 1)LR客户端机器是否已无法承载当前运行压力导致LR无法及时获取从服务端返回的信息2)Think_time(即思考时间)是否已忽略 3)确定当前被测系统架构,是否为在每次测试过程中清除缓存所导致 8、如何发现应用服务的相关问题? 1)通过某些事务的运行,判断是否在应用代码层未进行调优导致事务响应事件过长 2)通过实时监控工具(nmon等)监控分析: a)系统在运行过程其CPU是否稳定运行或CPU耗用是否过高 b)在系统运行过程中其内存是否存在内存泄露现象 3)打开应用相应日志,分析在运行过程中是否存在交易报错并获取错误原因查看是否由于代码原因导致交易错误发生 9、如何发现数据库的相关问题? 1)通过运行某些相应的已获取的SQL语句,判断是否由于数据库索引所导致的事务响应过长的问题发生 2)通过实时监控工具(nmon等)监控分析: a)在系统运行过程中CPU是否可稳定运行或CPU耗用过高; b)在系统运行过程中其内存是否存在内存泄露等现象。

笔试题-经典LINUX程序员面试题

比较经典(闭卷,100分钟完卷,最好写出解题步骤),若你能答对百分之七八十,说明你一只脚踏进了linux 编程的大门,若你能答对百分之九十以上,你收我做弟子(可怜可怜我吧),你若不及格,那就跟我一样:菜鸟! 一、基础题: 1.请列举出你用过的LINUX发行版及其中的GCC版本、GLIB版本 2.ISO七层参考模型中的PPP协议、HTTP协议处于哪一层? 3.说出TCP和UDP的相同和不同之处 4.IP数据包头部是多长?146.0.0.0属于哪一类IP地址? 5.请写出linux嵌入式系统开发过程 6.在以下列举的GCC中的参数,请一一写出代表的意思: -c -o -share -static 7.写出以下参数的含义: _attribute_ (packet) volatile #define ANYONE((DIR)< (FILE)< 二、程序阅读题(输出程序结果): 1.按值和按地址传递(此题太简单,略) 2.指针的取地址和取值、指针运算操作(比较简单,略) 3.char *p; p=malloc(20); char q*; q=strcpy(p,"Please answer the question carefully"); q+=7; printf("%s",q); printf("%s",p); 4.#define X 1 #define Y X+1 int p; p=x+y/2; printf("%d",p); 5.struct n{ int p; char name; }a; void structp(struct n b) { b.p=10;

https://www.360docs.net/doc/3d4352426.html,='X'; } int main() { int x=5; char name='Y'; a.p=x; https://www.360docs.net/doc/3d4352426.html,=name; structp(a); printf("%d",a.p); printf("%c",https://www.360docs.net/doc/3d4352426.html,); } 6.略(记不清楚了,好像是字符串操作题) 7.略(结构和双链表,此题比较难,花时间多) 8.分析以下程序,写出结果 V oid GetMemory2(char **p, int num) { *p = (char *)malloc(num); } void Test(void) { char *str = NULL; GetMemory(&str, 100); strcpy(str, "hello"); printf(str); } 9.分析以下程序,写出结果 char *GetMemory(void) { char p[] = "hello world"; return p; } void Test(void) { char *str = NULL; str = GetMemory(); printf(str); } 三、程序写作题: 1.用C语言实现下现函数(不能调用库函数) char *strcpy(char *dest,const char *src) 为什么此字符串拷贝函数还要返回一个字符指针?

测试工程师面试题(100分钟完成)

测试工程师面试题 (答题时间100分钟) A.测试基础 1、白盒测试与黑盒测试的区别是什么? 白盒测试:测试程序内部结构,内部特征 黑盒测试:通过界面测试程序功能,查看输入输出结果 2、什么是正交试验法,使用场景是什么? 研究多因素多水平的一种设计方法 场景:多因素多条件的情况下 3、数据库中,游标是什么?其作用是什么? 。 游标:从多条数据中检索集中提取一条数据 作用:当做指针,保存查询结果,方便后续使用 4、简述常用的Bug管理或者用例管理工具,并且描述其中一个工作流程。 常用:testlink,QC,mantis,禅道,TAPD,JIRA TAPD:产品创建(需求,计划,模块)-->项目创建(PM排期、任务分解)-->研发(编码、单元测试等)-->测试(测试计划,用例,执行,bug,报告等) 基于敏捷开发 5、智力题 一个屋子有一个门(门是关闭的)和3盏电灯。屋外有3个开关,分别与这3盏灯相连。 你可以随意操纵这些开关,可一旦你将门打开,就不能变换开关了。请确定每个开关具体管哪盏灯。 一个开关关掉,一个打开,一个打开几分钟、然后关掉 进屋后,亮这的是第二个开关,关闭的两灯中,有热量的为第三个开关,剩下的为第一个开关

B.自动化测试 1、自动化测试与测试自动化的区别。 自动化测试:利用工具录制或编写脚本进行功能以及性能测试 测试自动化:让测试过程脱离人工。对于控制成本,控制质量,回溯质量和减少测试周期都有积极影响的一种研发过程 2、列举出你熟悉的自动化工具,并说明其实现原理。 Web应用类工具:selenium 客户端建立与selenium-RC server 的连接。 Selenium RC Server 启动一个浏览器,并注入JS 代码 将Selenese 代码传到客户端的Selenium-Core 中。 Selenium-Core 翻译并解析执行用户录制的操作。 让代理Server 进行通讯 Remote Control Server 负责跟远程Web 应用服务器进行通讯。 操作完成,显示结果,并执行下一指令。 3、自动化测试的使用场景? 软件需求变更不是很快(尤其是UI自动化)}, 项目周期长 自动化测试脚本重复使用 4、什么是关键字驱动? 功能自动化测试框架,表格驱动测试或者基于动作字的测试 5、高质量的自动化脚本应该具备哪些特性? 1、不需要深入的工作或计划 2、可以加快开始自动化 3、对实际执行操作可以审计跟踪 4、用户不必是编程人员 5、提供良好的(软件或工具)的演示

精选软件测试笔试题目及答案

精选软件测试笔试题目及答案 软件测试去面试的时候都会做哪些题目呢?下面是收集的精选软件测试笔试题目及答案,欢迎大家阅读。 1、集成测试也叫组装测试或者联合测试,请简述集成测试的主要内容? (1)在把各个模块连接起来的时候,穿越模块接口的数据是否会丢失; (2)一个模块的功能是否会对另一个模块的功能产生不利的影响; (3)各个子功能组合起来,能否达到预期要求的父功能; (4)全局数据结构是否有问题; (5)单个模块的误差累积起来,是否会放大,从而达到不能接受的程度。 2、简述集成测试与系统测试关系?

(1)集成测试的主要依据概要设计说明书,系统测试的主要依据是需求设计说明书; (2)集成测试是系统模块的测试,系统测试是对整个系统的测试,包括相关的软硬件平台、网络以及相关外设的测试。 3、软件测试的文档测试应当贯穿于软件生命周期的全过程,其中用户文档是文档测试的重点。那么软件系统的用户文档包括哪些? 用户手册 安装和设置指导 联机帮助 指南、向导 样例、示例和模板 授权/注册登记表 最终用户许可协议

4、软件系统中除用户文档之外,文档测试还应该关注哪些文档? 开发文档 软件需求说明书 数据库设计说明书 概要设计说明书 详细设计说明书 可行性研究报告 管理文档 项目开发计划 测试计划 测试报告

开发进度月报 开发总结报告 5、简述软件系统中用户文档的测试要点? (1)读者群。文档面向的读者定位要明确。对于初级用户、中 级用户以及高级用户应该有不同的定位 (2)术语。文档中用到的术语要适用与定位的读者群,用法一致,标准定义与业界规范相吻合。 (3)正确性。测试中需检查所有信息是否真实正确,查找由于 过期产品说明书和销售人员夸大事实而导致的错误。检查所有的 目录、索引和章节引用是否已更新,尝试链接是否准确,产品支 持电话、地址和邮政编码是否正确。 (4)完整性。对照软件界面检查是否有重要的分支没有描述到,甚至是否有整个大模块没有描述到。 (5)一致性。按照文档描述的操作执行后,检查软件返回的结 果是否与文档描述的相同。 (6)易用性。对关键步骤以粗体或背景色给用户以提示,合理

国有企业经典笔试题目

国有企业经典笔试题目 笔试是以文字为媒介,考察一个人的知识水平素质能力。下面整理的国有企业经典笔试题目,欢迎大家参考。 1、如果你的工作出现失误,给本单位造成经济损失,你认为该怎么办? [思路点拨] 我认为首要的问题是想方设法去弥补或挽回经济损失,其次才是责任问题。我想首先的问题是分清责任,各负其责;如果是我的责任,我甘愿受罚。 2、在此之前你去过什么单位求职,结果如何? [思路点拨] 这是面试比较深入以后涉及的问题,用以了解求职者在人才市场中的经历。我去过一些单位求职,都没成功,原因是双向的。

3、你所学的专业和我们招聘的广告策划人员并不对口,你是不是不太适合这项工作呢? [思路点拨] 是这样。但是我所在的学校近几年不断深化改革,因为??为了完善大学生的知识结构,开设了许多选修课,例如.对项工作有很深厚的兴趣,而且注意在实践中不断提高自己,这是我画的水粉画、油画,还有我发表的一些豆腐块文章。 4、你受过挫折吗?若有,请告知具体是什么事,又是如何渡过难关的? [思路点拨] 有。考试大提供我在大学三年级参加四级英语考试时,只考了47分,我很羞愧、伤心。后来我认真总结英语考试失败的教训,奋发努力,在大四时,我终于考了74分;又如,在大一暑假回家的路上,我的钱包丢了,在中途转车时,我打了3天工,凑齐了路费才回家。 5、你的司长让你将一份急件送给中宣部,第二天却发现送错了单位,他不仅不承担责任,还生气地批评你马虎大意,没按要求将材料送给文化部。这时,你要怎样表白自己,而又不影响工作,不加剧你与领导的矛盾?

[思路点拨] 该题用于考察考生的应变能力和情绪稳定性,考生应该尽快找出压力情况下合乎情理地解决问题的办法,做法灵活周到。该题也能考察考生处理与上级关系的能力与技巧。情绪稳定,思维敏捷,考虑问题周到。如:当时不做解释,只抓紧时间补救,以后选择较轻松场合,再做适当解释。 6、假设你手头上有好几项工作没有完成,可是上级又给你安排了一项任务。你感到自己完成这项工作有困难。你如何处理这? 个矛盾 [思路点拨] 该题用于考察考生的人际交往的意识与技巧,主要是在组织中处理权属关系的能力。能够很好地与人沟通,有很好的交往方法和技巧;能够在尊重他人的前提下恰当地表达自己的意见。如:能用适当方法让领导了解到自己现有任务已很重,并能向领导提出完成该任务的可行建议。 7、这次报考,你的笔试成绩一般,面试情况也不突出,你觉得我们会录用你吗? [思路点拨] 该题有意地给考生施加压力,考察考生的应变能力和自哉情绪控制及自信心。考试大提供情绪稳定,思维敏捷、自信,对自己有正确的评价,并设法得体地突出自己的优势,变被

软件测试人员面试笔试题及答案

软件测试笔试试题 一、单选题 1.关于HTTP协议中状态码的表示,下列说法错误的是(A) A.1**:表示服务器错误 B.2**:表示请求成功地接收 C.3**:表示重定向 D.4**:表示客户端错误 2.在Linux中.要解包bugzilla.tar.gz并详细报告tar命令处理的文件名,应使用命令(A )A.tar –xvzf bugzilla.tar.gz B.tar –cvzf bugzilla.tar.gz C.tar –cvzf bugzilla.tar.gz D.tar –cxvf bugzilla.tar.gz 3.有如下C程序 #include void main() { int n; int s = 0; int t = 1; for( n = 1 ; n <= 20 ; n++) { _______ s += t; } printf(“%d\n”, s); } 若使该程序实现计算1!+ 2!…….+20!的功能,则在程序横线上应填语句(D ) A.n*=t B. n=n*(n-1) C. t=t*(n-1) D. t*=n; 4.有如下IP地址 (1)192.168.1.1 (2)10.10.0.0 (3)165.100.0.0 (4)202.255.0.255 则下列说法中正确的是(C ) A.(1)是C类地址可以直接出现在互联网上 B.(2)是A类地址,主机号为0.0,不可以直接出现在互联网上 C.(3)是B类地址,不可以直接出现在互联网上 D.(4)是D类地址,不可以直接出现在互联网上 5. 下列常用的测试用例设计技术中,不属于白盒测试技术的是(D ) A.信息流分析法 B.数据流分析法 C.逻辑覆盖测试和基本路径测试 D.状态图法

java笔试面试题及答案

java笔试面试题及答案

一.选择题(30分) 1.下列哪些情况能够终止当前线程的运行? a. 抛出一个异常时。 b. 当该线程调用sleep()方法时。 c. 当创立一个新线程时。(与当前进程无关) d. 当一个优先级高的线程进入就绪状态时。 2. 下面哪些为构造函数的特性定义 a. 在类中声明构造函数时,名称应该与类名相同 b. 具有重载特性,能够建立多个相同的名称 c. 使用类建立新对象时,会自动执行构造函数,因此在构造函 数内设定变量的初值或进行内存分配 d. 以上都是 3. 关于异常处理机制的叙述哪些正确 a. catch部分捕捉到异常情况时,才会执行finally部分(无论是否有毛病,都执行) b. 当try区段的程序发生异常时,才会执行catch区段的程序 c. 不论程序是否发生错误及捕捉到异常情况,都会执行finally 部分 d. 以上都是 4. 下列关于接口的叙述中哪些是正确的 a. 接口中的数据必须设定初值(就是接口中的常量) b. 接口中的方法都是抽象方法

c. 接口能够声明引用 d. 以上都正确 5. Java语言中,方法的重写(Overriding)和重载(Overloading)是多态性的不同表现。下边哪些说法是正确? A.重写是父类与子类之间多态性的一种表现。 B.重写是一个类中多态性的一种表现。 C.重载是一个类中多态性的一种表现。 D.重载是父类与子类之间多态性的一种表现。 6.在Struts应用的视图中包含哪些组件? A. JSP B. Servlet C. ActionServlet D. Action E. 代表业务逻辑或业务数据的JavaBean F. EJB G. 客户化标签 7. struts框架中,关于FormBean,下列哪些说法是正确的: A FormBean是一种数据bean,主要用来封装表单提交上来的数据,并把这些数据传递给Action B 在FormBean中能够对页面上传递来的参数进行一下格式上的验证,这种验证是一种客户端的验证 C 用户每次提交表单,都会产生一个新的FormBean实例 D 动态FormBean不能进行验证操作 8哪些方法能够进行servlet的调试?()

软件测试面试题目及答案

软件测试面试题目及答案 这是一份很火的软件测试面试题目及答案,今天千锋老师就发出来给大家看看,并介绍一下思路。 <1>功能方面,是否能按指定条件查到正确、完整的结果,具体: 1、录入条件为可查到结果的正常关键字、词、语句,检索到的内容、链接正确性; 2、录入条件为不可查到结果的关键字、词、语句; 3、录入条件为一些特殊的内容,如空、特殊符、标点符、极限值等,可引入等价类划分的方法等。

<2>性能方面,可利用测试工具或各种测试手段考虑功能在各方面的表现,具体: 1、压力测试:在不同发用户数压力下的表现(评价指标如响应时间等); 2、负载测试:看极限能承载多大的用户量同时正常使用; 3、稳定性测试:常规压力下能保持多久持续稳定运行; 4、内存测试:有无内存泄漏现象; 5、大数据量测试:如模拟从庞大的海量数据中搜索结果、或搜索出海量的结果后列示出来,看表现如何等等。 <3>易用性方面,交互界面的设计是否便于、易于使用,具体: 1、依据不同的查询结果会有相关的人性化提示,查不到时告知?查到时统计条数并告知?有疑似输入条件错误时提示可能正确的输入项等等处理; 2、查询出的结果罗列有序,如按点击率或其他排序规则,确保每次查询出的结果位置按规则列示方便定位,显示字体、字号、色彩便于识别等等; 3、标题查询、全文检索、模糊查询、容错查询、多关键字组织查询(空格间格开)等实用的检索方式是否正常? 4、输入搜索条件的控件风格设计、位置摆放是否醒目便于使用者注意到,有否快照等快捷查看方式等人性化设计?

<4>兼容性方面,跨平台、多语言等多样性环境组合情况下测试使用的正常性,具体: 1、WINDOWS/Linux/UNIX等各类操作系统下及各版本条件下的应用; 2、IE/FIREFOX/GOOGLE/360/QQ等各类浏览器下及各版本条件下、各种显示分辨率条件下的应用; 3、SQL/Oracle/DB2/MySQL等各类数据库存储情况下的兼容性测试; 4、简体中文、繁体中文、英文等各类语种软件平台下的兼容性测试; 5、IPHONE/IPAD、安卓等各类移动应用平台下的兼容性测试; 6、与各相关的监控程序的兼容性测试,如输入法、杀毒、监控、防火墙等工具同时使用。 <5>安全性方面,往往容易被忽视的环节,具体: 1、被删除、加密、授权的数据,不允许被查出来的,是否有安全控制设计; 2、录入一些数据库查询的保留字符,如单引号、%等等,造成查询SQL拼接出的语句产生漏洞,如可以查出所有数据等等,这方面要有一些黑客攻击的思想并引入一些工具和技术,如爬网等。 3、用白盒测试技术,检查一下在程序设计上是否存在安全方面的隐患; 4、对涉及国家安全、法律禁止的内容是否进行了相关的过滤和控制;

软件测试工程师经典面试题目

软件测试工程师面试题汇总 测试技术面试题 (5) 1、什么是兼容性测试?兼容性测试侧重哪些方面? (5) 2、我现在有个程序,发现在Windows上运行得很慢,怎么判别是程序存在问题还是软硬件系统存在问题? (5) 3、测试的策略有哪些? (5) 4、正交表测试用例设计方法的特点是什么? (5) 5、描述使用bugzilla缺陷管理工具对软件缺陷(BUG)跟踪的管理的流程? (5) 6、你觉得bugzilla在使用的过程中,有什么问题? (5) 7、描述测试用例设计的完整过程? (6) 8、单元测试的策略有哪些? (6) 9、LoadRunner分哪三部分? (6) 10、LoadRunner进行测试的流程? (6) 什么是并发?在lordrunner中,如何进行并发的测试?集合点失败了会怎么样? (6) 12、使用QTP做功能测试,录制脚本的时候,要验证多个用户的登录情况/查询情况,如何操作? (6) 13、QTP中的Action有什么作用?有几种? (6) 14、TestDirector有些什么功能,如何对软件测试过程进行管理? (7) 15、你所熟悉的软件测试类型都有哪些?请试着分别比较这些不同的测试类型的区别与联系(如功能测试、性 能测试......)? .. (7) 16、条软件缺陷(或者叫Bug)记录都包含了哪些内容?如何提交高质量的软件缺陷(Bug)记录? (8) 17、Beta测试与Alpha测试有什么区别? (8) 18、软件的评审一般由哪些人参加?其目的是什么? (8) 19、测试活动中,如果发现需求文档不完善或者不准确,怎么处理? (8) 20、阶段评审与项目评审有什么区别? (8) 21、阐述工作版本的定义? (8) 22、什么是桩模块?什么是驱动模块? (8) 23、什么是扇入?什么是扇出? (8) 24、你认为做好测试计划工作的关键是什么? (8) 25、你认为做好测试用例工作的关键是什么? (9) 26、简述一下缺陷的生命周期? (9) 27、软件的安全性应从哪几个方面去测试? (9) 28、软件配置管理工作开展的情况和认识? (9) 29、你觉得软件测试通过的标准应该是什么样的? (10) 30、引入测试管理的含义? (10) 31、一套完整的测试应该由哪些阶段组成? (10) 32、单元测试的主要内容? (10) 33、集成测试也叫组装测试或者联合测试,请简述集成测试的主要内容? (10) 34、简述集成测试与系统测试关系? (10) 35、软件测试的文档测试应当贯穿于软件生命周期的全过程,其中用户文档是文档测试的重点。那么软件系统 的用户文档包括哪些? (10) 36、软件系统中除用户文档之外,文档测试还应该关注哪些文档? (10) 37、简述软件系统中用户文档的测试要点? (11) 38、单元测试主要内容是什么? (11) 39、如何理解强度测试? (13) 40、如何理解压力、负载、性能测试测试? (13) 41、什么是系统瓶颈? (13) 42、文档测试主要包含什么内容? (13)

相关文档
最新文档