软件测试经典面试题,答对三个你就过关了

测试设计题

A、 规则说明

一 通功能是指用户的多个终端(手机、固定电话)可以挂在一个虚拟或实际 码下面、这个 码称为引导 码。当其它用户拨打引导 码时,用户的多个终端会同时振铃,当用户接听其中一个终端后,其它终端将停止振铃。一 通最多只支持有2个成员;一 通的成员可以是固定电话或移动电话;引导 码长度为4-16

请设计相应测试用例验证一 通功能(写出分析过程)

正常:

1、引导 码:长度、 码规则、虚拟 码、实际 码

2、两个终端:手机-固定电话、手机-手机、固定电话-固定电话

3、一个终端:手机、固定电话

4、终端通话切换

异常:

1、 码异常

2、加载两个各以上的终端

3、一个终端故障、两个终端均故障

4、一个终端接通后继续拨打引导 码

B、 规则说明

假设需要实现操作系统中的一个进程调度器,根据如下规则来确定如何进行测试设计、进程可处于5种状态;

1、 就绪 随时可以被调度器选中,从而获得CPU得到执行

2、 运行 已经获得CPU,正在执行

3、 阻塞 进程申请系统中的资源,如果资源暂时无法获得,则进入阻塞状态

4、 终止 进程结束,则进入终止状态,等待操作系统回收进程在创建或运行时申请的资源

5、 死亡 处于终止状态的进程资源被回收后,进程彻底消失,等价于没有被创建请设计用例测试进程调度器(写出分析过程)。

程序设计题

不使用任何库,编写一个函数char*remove(const char* src,char c )

参数src为输入的字符串,长度不确定,不为空。

参数c为任何可能的字符

返回值。Src中删除了所有字符c的字符串。对是否通过动态分配内存的方式返回这个字符串还是使用静态的内

char *remove(const char *src,char c)

{

char temp[20];

int i=0,j=0;

while(src[i]!=’ ’)

{

if(src[i]!=c)

{

temp[j]=src[i];

i++;

j++;

}

else

{

i++;

}

}

temp[j]=’ ’;

答:七层结构从上到下依次是:

7 应用层 ;6 表示层 ;5 会话层 ;4 传输层 ;3 络层 ;2 数据链路层 ;1 物理层

五层结构是

结构从上到下依次是:

7 应用层 ;6 表示层 ;5 会话层 ;4 传输层 ;3 络层 ;2 数据链路层 ;1 物理层

五层结构是

5

答:UDP,TCP在传输层,IP在 络层,

TCP/IP是英文Transmission Control Protocol/Internet Protocol的缩写,意思是”传输控制协议/ 际协议”。TCP/IP协议组之所以流行,部分原因是因为它可以用在各种各样的信道和底层协议(例如T1和X.25、以太 以及RS-232串行接口)之上。确切地说,TCP/IP协议是一组包括TCP协议和IP协议,UDP(User Datagram Protocol)协议、ICMP(Internet Control Message Protocol)协议和其他一些协议的协议组。TCP/IP协议并不完全符合OSI的七层参考模型。传统的开放式系统互连参考模型,是一种通信协议的7层抽象的参考模型,其中每一层执行某一特定任务。该模型的目的是使各种硬件在相同的层次上相互通信。这7层是:物理层、数据链路层、 路层、传输层、话路层、表示层和应用层。而TCP/IP通讯协议采用了4层的层级结构,每一层都呼叫它的下一层所提供的 络来完成自己的需求。这4层分别为:应用层:应用程序间沟通的层,如简单电子邮件传输(SMTP)、文件传输协议(FTP)、 络远程访问协议(Telnet)等。

传输层:在此层中,它提供了节点间的数据传送服务,如传输控制协议(TCP)、用户数据 协议(UDP)等,TCP和UDP给数据包加入传输数据并把它传输

传输层:在此层中,它提供了节点间的数据传送服务,如传输

一般意义上说交换机是工作在数据链路层。但随着科技的发展,现在有了三层交换机,三层交换机已经扩展到了 络层。也就是说:它等于“数据链路层 + 部分 络层”。交换机中传的是帧。通过存储转发来实现的。

路由器是工作在 络层。路由器中传的是IP数据 。主要是选址和路由。

络层。也就是说:它等于“数据链路层 +

答:除关键字不同外(class,struct)的唯一区别是,

结构在默认情况下的成员是公共(public)的,

而类在默认情况下的成员是私有(private)的。

在C++中,结构是特殊的类。

class是从struct发展而来的。之所以将struct和class都保留,是因为:

1、提出class是为了强调一种概念。

2、保留struct是为了照顾到大多数人的习惯。

struct和class是有区别的。

struct保证成员按照声明顺序在内存中存储。class不保证等等

而它们都可以继承,实现多态等。但也有少许区别。比如:

struct A { };

class B : A{ }; //private继承

struct C : B{ }; //public继承

这是由于class默认是private,struct默认是public。

一般说来,struct和class可以换用(当然要注意一些语法问题)。

而struct更适合看成是一个数据结构的实现体,

class更适合看成是一个对象

答:置于“~”是析构函数;析构函数因使用”~”符 (逻辑非运算符),表示它为腻构造函数,加上类名称来定义。

;析构函数也是特殊的类成员函数,它没有返回类型,没有参数,不能随意调用,也没有重载,只有在类对象的生命期结束的时候,由系统自动调用。

有适放内存空间的做用!

虚函数是C++多态的一种表现

例如:子类继承了父类的一个函数(方法),而我们把父类的指针指向子类,则必须把父类的该函数(方法)设为virturl(虚函数)。

使用虚函数,我们可以灵活的进行动态绑定,当然是以一定的开销为代价。

如果父类的函数(方法)根本没有必要或者无法实现,完全要依赖子类去实现的话,可以把此函数(方法)设为virturl 函数名=0

我们把这样的函数(方法)称为纯虚函数。

如果一个类包含了纯虚函数,称

把父类的该函数(方法)设为virturl(虚函数)。

使用虚函数,我们可以灵活的进行动态绑定,当然是以一定的开销为代价。

如果父类的函数(方法)根本没有必要或者无法实现,完全要依赖子类去实现的话,可以把此函数(方法)设为virturl 函数名=0

我们把这样的函数(方法)称为纯虚函数。

如果一个类包含了纯虚函数,称此类为抽象类

此类为抽象类

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2020年1月7日
下一篇 2020年1月7日

相关推荐