面試準備階段必考知識點和美團測開面試題分享

發表于:2020-4-23 09:48  作者:吳雨年   來源:百度文庫

字體: | 上一篇 | 下一篇 |我要投稿 | 推薦標簽: 軟件測試面試題 測試人生

  測試生命周期
  需求階段(Requirements phase)
  計劃階段(Planning Phase)
  分析階段(Analysis phase)
  設計階段(Design Phase)
  實施階段(Implementation Phase)
  執行階段(Execution Phase)
  總結階段(Conclusion Phase)
  結束階段(Closure Phase)
  V、W模型
  V模型
  最典型的V模型版本一般會在其開始部分對軟件開發過程進行描述,為古老的瀑布模型。在V模型中,測試過程被加在開發過程的后半部分,單元測試所檢測代碼的開發是否符合詳細設計的要求。集成測試所檢測此前測試過的各組成部分是否能完好地結合到一起。系統測試所檢測已集成在一起的產品是否符合系統規格說明書的要求。而驗收測試則檢測產品是否符合最終用戶的需求。如圖下:
  V模型的缺陷
  僅僅把測試過程作為在需求分析、系統設計及編碼之后的一個階段
  忽視了測試對需求分析,系統設計的驗證,一直到后期的驗收測試才被發現。
  W模型
  相對于V模型,W模型增加了軟件各開發階段中應同步進行的驗證和確認活動。W模型由兩個V字型模型組成,分別代表測試與開發過程,圖中明確表示出了測試與開發的并行關系。
  W模型強調
  測試伴隨著整個軟件開發周期,而且測試的對象不僅僅是程序,需求、設計等同樣要測試,也就是說,測試與開發是同步進行的。W模型有利于盡早地全面的發現問題。例如,需求分析完成后,測試人員就應該參與到對需求的驗證和確認活動中,以盡早地找出缺陷所在。同時,對需求的測試也有利于及時了解項目難度和測試風險,及早制定應對措施,這將顯著減少總體測試時間,加快項目進度。
  但W模型也存在局限性。在W模型中,需求、設計、編碼等活動被視為串行的,同時,測試和開發活動也保持著一種線性的前后關系,上一階段完全結束,才可正式開始下一個階段工作。這樣就無法支持迭代的開發模型。對于當前軟件開發復雜多變的情況,W模型并不能解除測試管理面臨著困惑。
  W模型的優點
  測試的活動與軟件開發同步進行
  測試的對象不僅僅是程序,還包括需求和設計
  盡早發現軟件缺陷可降低軟件開發的成本
  測試用例編寫方法
  基于需求的設計方法
  等價類
  邊界值
  因果圖
  正交排列法
  場景設計法
  錯誤猜測法
  如何描述一個Bug
  1、發現問題的版本
  2、問題出現的環境
  環境分為硬件環境和軟件環境。如果是web項目,需要描述瀏覽器版本、客戶機操作系統等;如果是APP項目,需要描述機型、分辨率、操作系統版本等。
  3、錯誤重現的步驟
  描述問題的最短版本。
  4、預期結果
  要讓開發人員知道怎么樣才是正確的,尤其要以用戶的角度來描述程序的行為是怎么樣的。如果依據需求提出的故障,能寫明需求來源是最好的。
  5、實際結果
  描述錯誤的現象。比如錄制,截圖等操作。
  Bug的等級
  崩潰(Blocker) 1級bug,必須優先修改
  (1)常規操作引起的系統崩潰、死機、死循環
  (2)造成數據泄漏的安全性問題,比如惡意攻擊造成的賬戶私密信息泄漏。
  (3)涉及金錢,如支付類軟件,金錢計算錯誤
  嚴重(Critical) 2級bug
  (1)重要功能不實現(如:微信沒有語音聊天,朋友圈等)
  (2)錯誤的波及面廣,影響到其他重要功能的正常實現
  (3)非常規操作導致的程序崩潰、死機、死循環(非常規操作:用戶使用軟件時不會進行的操作)
  (4)外觀難以接受的缺陷(例如:直播平臺的封面圖片的失真、壓縮,完全變形)
  (5)密碼明文顯示
  一般(Major) 3級bug
  不影響產品的運行、不會成為故障的起因、但對產品外觀和下道工序影響較大的缺陷
  (1)次要功能不能正常實現
  (2)操作界面錯誤(包括數據窗口內列名的定義,含義不一樣) eg:列名與列名下的內容不一樣
  (3)查詢錯誤、數據顯示錯誤
  (4)簡單的輸入限制未放在前端進行控制;(格式顯示,如登錄和注冊中的格式判斷可由前端判斷)
  (5)刪除操作未給出提示
  次要(Minor) 4級bug
  程序在一些顯示上不美觀,不符合用戶習慣,或者是一些文字的錯誤
  (1)界面不規范
  (2)輔助說明描述不清楚
  (3)提示窗口文字未采用行業術語
  (4)界面存在文字錯誤
  (5)改進意見:可以提高產品質量建議,包括新需求和對需求的改進
  美團測開面試題
  1、自我介紹,問項目中印象最深的點
  2、tdp和udp都是哪一層的,有什么應用場景ftp、dns分別用的是哪個?
  傳輸層,ftp用tcp,dns用tcp和udp,普通域名解析用udp,區域傳輸用udp,當區域內的輔助dns服務器向主dns服務器請求數據進行更新時就是區域傳輸
  3、和equal區別
  判斷地址是否相同,equal判斷地址指向的內存空間中的值是否相同
  4、深拷貝和淺拷貝
  淺拷貝只增加一個新指針,指向已有的內存空間,深拷貝增加新指針并申請新的內存空間
  5、session和cookie
  會話(Session)跟蹤是Web程序中常用的技術,用來跟蹤用戶的整個會話。常用的會話跟蹤技術是Cookie與Session。Cookie通過在客戶端記錄信息確定用戶身份,Session通過在服務器端記錄信息確定用戶身份。
  cookie不屬于http協議范圍,由于http協議無法保持狀態,但實際情況,我們卻又需要“保持狀態”,因此cookie就是在這樣一個場景下誕生。
  cookie的工作原理是:由服務器產生內容,瀏覽器收到請求后保存在本地;當瀏覽器再次訪問時,瀏覽器會自動帶上cookie,這樣服務器就能通過cookie的內容來判斷這個是“誰”了。
  cookie雖然在一定程度上解決了“保持狀態”的需求,但是由于cookie本身最大支持4096字節,以及cookie本身保存在客戶端,可能被攔截或竊取,因此就需要有一種新的東西,它能支持更多的字節,并且他保存在服務器,有較高的安全性。這就是session。
  問題來了,基于http協議的無狀態特征,服務器根本就不知道訪問者是“誰”。那么上述的cookie就起到橋接的作用。
  我們可以給每個客戶端的cookie分配一個唯一的id,這樣用戶在訪問時,通過cookie,服務器就知道來的人是“誰”。然后我們再根據不同的cookie的id,在服務器上保存一段時間的私密資料,如“賬號密碼”等等。
  總結而言:cookie彌補了http無狀態的不足,讓服務器知道來的人是“誰”;但是cookie以文本的形式保存在本地,自身安全性較差;所以我們就通過cookie識別不同的用戶,對應的在session里保存私密的信息以及超過4096字節的文本。
  另外,上述所說的cookie和session其實是共通性的東西,不限于語言和框架。
  6、進程與線程,線程有哪幾種模式
  模式3種:
  1、繼承thread
  2、實現runnable接口,實現Callable接口通過FutureTask包裝器來創建Thread線程
  3、使用ExecutorService、Callable、Future實現有返回結果的線程。
  ----- 繼承Thread類創建線程 ----
  1】d定義Thread類的子類,并重寫該類的run()方法,該方法的方法體就是線程需要完成的任務,run()方法也稱為線程執行體。
  2】創建Thread子類的實例,也就是創建了線程對象
  3】啟動線程,即調用線程的start()方法
  ----- 實現Runnable接口創建線程 -----
  1】定義Runnable接口的實現類,一樣要重寫run()方法,這個run()方法和Thread中的run()方法一樣是線程的執行體
  2】創建Runnable實現類的實例,并用這個實例作為Thread的target來創建Thread對象,這個Thread對象才是真正的線程對象
  3】第三部依然是通過調用線程對象的start()方法來啟動線程
  -----  使用Callable和Future創建線程 -----
  1】創建Callable接口的實現類,并實現call()方法,然后創建該實現類的實例(從java8開始可以直接使用Lambda表達式創建Callable對象)。
  2】使用FutureTask類來包裝Callable對象,該FutureTask對象封裝了Callable對象的call()方法的返回值
  3】使用FutureTask對象作為Thread對象的target創建并啟動線程(因為FutureTask實現了Runnable接口)
  4】調用FutureTask對象的get()方法來獲得子線程執行結束后的返回值
  7、寫sql,所有課程成績大于80分的學生名字
  sql語句:
  distinct:去重 select distinct name from table
  where:語法:SELECT 列名稱 FROM 表名稱 WHERE 列 運算符 值    select name from table where grade>80
  order by:SELECT Company, OrderNumber FROM Orders ORDER BY Company, OrderNumber
  先順序排序company,然后在同樣的company之間順序排序ordernumber以逆字母順序顯示公司名稱,并以數字順序顯示順序號:
  SELECT Company, OrderNumber FROM Orders ORDER BY Company DESC, OrderNumber ASC
  group by:SELECT Customer,SUM(OrderPrice) FROM Orders GROUP BY Customer
  8、手撕代碼,兩個棧實現隊列
  9、如何測試地鐵閘機
  10、平時在哪學新技術,看到的最新的技術熱點是什么
  11、聚簇索引和非聚簇索引
  聚簇索引:將數據存儲與索引放到了一塊,找到索引也就找到了數據。
  非聚簇索引:將數據存儲于索引分開結構,索引結構的葉子節點指向了數據的對應行,myisam通過key_buffer把索引先緩存到內存中,當需要訪問數據時(通過索引訪問數據),在內存中直接搜索索引,然后通過索引找到磁盤相應數據,這也就是為什么索引不在key buffer命中時,速度慢的原因。
  12、主鍵和唯一鍵
  當一個屬性聲明為主鍵時,它將不接受NULL值。另一方面,當聲明為Unique的屬性時,它可以接受一個NULL值。
  表中只能有一個主鍵,但可以有多個唯一鍵。
  定義主鍵時自動創建聚簇索引。相反,Unique鍵生成非聚集索引。

     本文內容不用于商業目的,如涉及知識產權問題,請權利人聯系博為峰小編(021-64471599-8017),我們將立即處理

【福利】填問卷送精選測試禮包+接口測試課程!為測試行業做點事!

評 論

論壇新帖

頂部 底部


建議使用IE 6.0以上瀏覽器,800×600以上分辨率,法律顧問:上海瀛東律師事務所 張楠律師
版權所有 上海博為峰軟件技術股份有限公司 Copyright©51testing.com 2003-2020, 滬ICP備05003035號
投訴及意見反饋:webmaster@51testing.com; 業務聯系:service@51testing.com 021-64471599-8017

滬公網安備 31010102002173號

51Testing官方微信

51Testing官方微博

掃一掃 測試知識全知道

日本av