【今日頭條】測試工程師面試題


第一套

答案整理如下:

算法題
二叉樹遍歷
思路
遍歷,就是按一定的規則和順序走遍二叉樹的所有結點,使每一個結點都被訪問一次,而且只被訪問一次。
分為遞歸算法、非遞歸算法
遞歸算法又分為:先序遍歷、中序遍歷、后序遍歷

遞歸算法

//輸出
void Visit(BiTree T){
    if(T->data != '#'){
        printf("%c ",T->data);
    }
}
//先序遍歷
void PreOrder(BiTree T){
    if(T != NULL){
        //訪問根節點
        Visit(T);
        //訪問左子結點
        PreOrder(T->lchild);
        //訪問右子結點
        PreOrder(T->rchild);
    }
}
//中序遍歷
void InOrder(BiTree T){
    if(T != NULL){
        //訪問左子結點
        InOrder(T->lchild);
        //訪問根節點
        Visit(T);
        //訪問右子結點
        InOrder(T->rchild);
    }
}
//后序遍歷
void PostOrder(BiTree T){
    if(T != NULL){
        //訪問左子結點
        PostOrder(T->lchild);
        //訪問右子結點
        PostOrder(T->rchild);
        //訪問根節點
        Visit(T);
    }
}

非遞歸算法比較復雜,每一級都需要循環所有孩子節點

參考資料:http://blog.csdn.net/sjf0115/article/details/8645991

 

判斷IP合法性
思路:
IP地址:由 . 分割的四組數字,每個數字的范圍是 0 - 255
使用正則表達式,網上搜到IP的正則表達式為
((?:(?:25[0-5]|2[0-4]\d|((1\d{2})|([1-9]?\d)))\.){3}(?:25[0-5]|2[0-4]\d|((1\d{2})|([1-9]?\d))))

java實現代碼

public class isIP {
    public static void main(String[] args) throws Exception {

        String ip = "172.16.11.14";
        String regex = "((?:(?:25[0-5]|2[0-4]\\d|((1\\d{2})|([1-9]?\\d)))\\.){3}(?:25[0-5]|2[0-4]\\d|((1\\d{2})|([1-9]?\\d))))";
        if (ip.matches(regex)) {
            System.out.println("合法");
        }else {
            System.out.println("非法");
        }
    }
}

參考資料:http://www.cnblogs.com/txw1958/archive/2011/10/13/2210114.html

 

測試設計題
朋友對狀態點贊

1.是否可以正常點贊和取消;
2.點贊的人是否在可見分組里;
3.點贊狀態是否能即時更新顯示;
4.點贊狀態,共同好友是否可見;
5.不同手機,系統顯示界面如何;
6.性能檢測,網速快慢對其影響;
7.點贊顯示的是否正確,一行幾個;
8.點贊是否按時間進行排序,頭像對應的是否正確;
9.是否能在消息列表中顯示點贊人的昵稱、備注;
10.可擴展性測試,點贊后是否能發表評論;
11.是否在未登錄時可查看被點贊的信息。

參考資料:http://blog.csdn.net/maomaomao425/article/details/61208586

varchar(512)升級到varchar(1024)后測試
varchar
mysql中varchar存儲的中文字符、英文字符、數字,是一致的,varchar(512)能存儲512和漢字或者數字或者字母;
sql server中varchar存儲漢字不同,一個漢字占兩個字符;
針對能存儲的漢子和字母數字字符數,進行不同內容長度的測試;

系統測試題

多線程安全日志庫

使用以下代碼測試打印出來的日志序號是否順序

for(int i = 0; i <= 100; i++){
Thread t = new Thread(new MultithreadingLog("JOB" + i));
t.start();
}

IM系統測試
登錄
注冊
好友管理:增刪改好友
消息收發:消息發送接收
安全:本地密碼保存加密、消息網絡通訊加密

參考資料:https://wenku.baidu.com/view/4c4e9f17866fb84ae45c8d3e.html

----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

第二套

字符串拼接函數
C語言

char* strconcat(char * pCh1, char * pCh2)
{
    char *result = (char *) malloc(strlen(apCh1) + strlen(pCh2) + 1); //局部變量,用malloc申請內存  
    if (result == NULL) exit (1);  
    char *tempc = result; //把首地址存下來  
    while (*pCh1 != '\0') {  
        *result++ = *pCh1++;  
    }  
    while ((*result++ = *pCh2++) != '\0') {  
        ;  
    }  
    //注意,此時指針c已經指向拼接之后的字符串的結尾'\0' !  
    return tempc;//返回值是局部malloc申請的指針變量,需在函數調用結束后free之  
}

參考資料:http://blog.csdn.net/wusuopubupt/article/details/17284423

有序單向鏈表反轉

LinkedList ReverseSinglyLinkedList(LinkedList list)
{
    LinkedList  newList;    //新鏈表的頭結點
    LNode       *tmp;       //指向list的第一個結點,也就是要摘除的結點
                            
    //
    //參數為空或者內存分配失敗則返回NULL
    //
    if (list == NULL || (newList = (LinkedList)malloc(sizeof(LNode))) == NULL)
    {
        return NULL;
    }
                            
    //
    //初始化newList
    //
    newList->data = list->data;
    newList->next = NULL;
                            
    //
    //依次將list的第一個結點放到newList的第一個結點位置
    //
    while (list->next != NULL)
    {
        tmp = newList->next;         //保存newList中的后續結點
        newList->next = list->next;       //將list的第一個結點放到newList中
        list->next = list->next->next;     //從list中摘除這個結點
        newList->next->next = tmp;        //恢復newList中后續結點的指針
    }
                            
    //
    //原頭結點應該釋放掉,並返回新頭結點的指針
    //
    free(list);
    return newList;
}

參考資料:http://yiluohuanghun.blog.51cto.com/3407300/1305094/

strconcat測試用例


手機app發帖子測試點

功能點測試
流程測試
交叉測試,來電、短信等app進入后台
內存不足測試
編輯過程中應用切換測試
重復提交測試

升級HTTPS測試

 ???

其他幾個題目暫時沒有查到相關答案,歡迎大家補充說明。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM