面试总结2--美团测试面试

1面:

1、 自我介绍(奖学金、专利、在校获奖好像有加分)。

2、 介绍一个你认为最有含金量的项目?

3、 根据项目用到的知识:程序中TCP具体怎么实现?TCPUDP区别、分别用在哪些场合?

答:TCP实现步骤:服务器调用socket()、bind()、listen()完成初始化后,调用accept()阻塞等待,处于监听端口的状态,客户端调用socket()初始化后,调用connect()发出SYN段并阻塞等待服务器应答,服务器应答一个SYN-ACK段,客户端收到后从connect()返回,同时应答一个ACK段,服务器收到后从accept()返回。

TCP、UDP区别:…….

TCP用在需要确保信息可靠传输或者丢包重传的地方,如QQ文件传输

UDP用在对传输实时性要求高的地方,如QQ语音、视频等


4、 URL登陆网站时用到那些协议?

答:URL(统一资源定位符),是对可以从互联网上得到的资源的位置和访问方法的一种简洁的表示,是互联网上标准资源的地址。互联网上的每个文件都有一个唯一的URL,它包含的信息指出文件的位置以及浏览器应该怎么处理它。基本URL包含模式(或称协议)、服务器名称(或IP地址)、路径和文件名,如“协议://授权/路径?查询”。

     可能用到HTTP协议,DNS协议,TCP/IP,ARP。


5、 讲讲多线程内部怎么实现?

答:Win32 API提供了_beginthreadex函数,可以让你在底层启动线程。

在MFC中所有的线程都由CWinThread对象来表现,包括你的应用程序的主线程。主线程由一个起源于CWinApp的类实现,而CWinApp直接起源于CWinThread。让MFC全局函数AfxBeginThread()来为你创建一个CWinThread对象。CWinThread::CreateThread()函数用来启动新的线程。CWinThread类也提供了SuspendThread()和ResumeThread()函数以便你挂起和恢复线程的执行。

 MFC区别两种线程:工作线程和用户界面线程。这种区分是由MFC自己进行的,Win32 API不区分线程的种类。

工作线程一般用来完成那些不需要用户输入的后台任务。可举的例子包括数据库备份功能和网络联接状态监视功能。

用户界面线程能够处理用户输入,它们通过实现消息循环来响应那些由用户与应用程序交互所产生的事件和消息。


6、 Linux相关知识,grepfind区别?用什么命令查看ip?怎么杀死占用80端口的所有进程?讲讲AWK?正则表达式方面知识(写一个正则表达式表示电话号码)?

答:grep是查找匹配条件的行,find是搜索匹配条件的文件。

用ifconfig查看ip。

杀死某端口号的进程步骤:1 netstat -nlp 查看占用端口号的服务;2找到该端口号的进程;3找到该进程id4 kill它。

kill [‘]netstat –nlp |grep:80|awk ‘{print $7}’|awk –F ”/” ‘{print $1}’ [‘]

正则表达式:1[3|5|7][0-9]{9}


7、 数据库方面知识,了不了解SQL语句?怎么删除表结构中的一个列?index的作用?讲讲havingwhere

答:ALTER  TABLE  tablename

DROP COLUMN  columnname;

Index两大好处:1、加快查询速度;2确保唯一特性。可为表中某一列建一个唯一性索引,那么如果有人企图向表中插入这样一行记录,即他在这个有索引的列的数值与以前已有值重复,则这个操作就会失败。

having和where都是用来筛选的,having是筛选组,而where是筛选记录。用having就一定要和group by连用,用group by不一有having (它只是一个筛选条件用的)。


8、 写二叉树中序遍历非递归?给出两个API getChilds()getFather()求多叉树第n层节点数?写双向链表插入删除?

中序遍历:根据中序遍历的顺序,对于任一结点,优先访问其左孩子,而左孩子结点又可以看做一根结点,然后继续访问其左孩子结点,直到遇到左孩子结点为空的结点才进行访问,然后按相同的规则访问其右子树。因此其处理过程如下:(1)若其左孩子不为空,则将P入栈并将P的左孩子置为当前的P,然后对当前结点P再进行相同的处理;(2)若其左孩子为空,则取栈顶元素并进行出栈操作,访问该栈顶结点,然后将当前的P置为栈顶结点的右孩子;(3)直到P为NULL并且栈为空则遍历结束

void inOrder(BinaryTree* root)
{
    stack<BinaryTree*> s;
    BinaryTree* p=root;
    while(p!=NULL||!s.empty())
    {
        while(p!=NULL)
        {
            s.push(p);
            p=p->left;
        }
        if(!s.empty())
        {
            p=s.top();
            printf("%d\n",p->value);
            s.pop();
            p=p->right;
        }
    }
}


9、 智力题7个等重量的球还有一个稍重的球共8个怎么用天平2次找出最重的一个?

答:去6个均分成两组称一次,如果相等则再称剩下的两个。如果不相等取重的一组,取两个称。

10、怎么对一个东西要从那些方面进行测试?怎么测试一个电梯?

11、讲讲自己的专利,为什么投测试、选测试的哪个方向?

 

二面:

1、 自我介绍

2、 二叉树怎么分层遍历每一层节点?讲讲快速排序?

3、 进程和线程的区别?

4、 一个执行的进程的空间分哪些部分?分别讲讲。

5、 什么死锁?

6、 C++哪些情况会出现内存泄露?

7、 讲讲中断?

答:中断是CPU处理外部突发事件的一个重要技术。它能使CPU在运行过程中对外部事件发出的中断请求及时地进行处理,处理完成后又立即返回断点,继续进行CPU原来的工作。引起中断的原因或者说发出中断请求的来源叫做中断源。 根据中断源的不同,可以把中断分为硬件中断和软件中断两大类,而硬件中断又可以分为外部中断和内部中断两类。

8、 给一个字符串转换为整数的函数怎么进行测试?

9、 Web测试,给你一个登陆界面怎么进行测试?什么是性能?

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章