零、測試開發前置知識

文章目錄

  • 1、什么是冒煙測試、回歸測試?
  • 2、設計測試用例的方法有哪些?
  • 3、對于404或500,你會如何分析定位?
  • 4、什么是敏捷開發?敏捷開發流程是怎么樣的?
  • 5、做接口測試過程中,下游接口需要上游數據依賴,如何處理?
  • 6、POST與GET請求的區別?
  • 7、用sql查詢所有學生中,各科最高學生的成績,并按成績大小排序。(表:student_ score,字段:student_name、score、subject)
  • 8、Python有幾種數據類型?

1、什么是冒煙測試、回歸測試?

冒煙測試(Smoke Testing)和回歸測試(Regression Testing)是軟件測試中兩種不同的測試策略和階段。
(1)冒煙測試(Smoke Testing)
定義:冒煙測試是軟件開發中的一個初步測試階段,也稱為版本驗證測試、健康檢查或健全性測試。它的目的是確認新的或更改的代碼不會破壞系統的基本功能。
特點:
快速:通常只包含少量關鍵的測試用例,目的是在短時間內確認系統是否基本可用。
前置:通常在進行詳細測試之前進行,如果冒煙測試失敗,那么進一步的測試可能會被推遲或取消。
驗證基本功能:確保系統的核心或基本功能可以正常運行。
應用:在軟件開發中,當開發團隊完成了某個迭代或修復了一些嚴重的缺陷后,會進行冒煙測試以確保系統仍然穩定且基本功能可用。
(2)回歸測試(Regression Testing)
定義:回歸測試是指修改了舊代碼后,重新進行測試以確認修改沒有引入新的錯誤或導致其他代碼產生錯誤。
特點:
重復性:每次代碼更改后,都需要重新運行回歸測試集。
全面性或選擇性:可以是全面的(測試所有以前的功能),也可以是選擇性的(只測試與更改相關的功能)。
自動化:由于需要頻繁運行,回歸測試通常會被自動化以提高效率。
應用:
新功能開發:當開發新功能時,需要確保新功能沒有破壞現有功能。
缺陷修復:在修復一個缺陷后,需要確保修復沒有引入新的缺陷,并且沒有破壞其他功能。
軟件升級或遷移:在軟件升級或從一個環境遷移到另一個環境后,需要確保所有功能仍然可用。
總的來說,冒煙測試和回歸測試都是軟件開發中非常重要的測試階段,它們確保了軟件的質量和穩定性。

2、設計測試用例的方法有哪些?

等價類劃分法
邊界值分析法
錯誤推斷法
場景設計法
判定表法

3、對于404或500,你會如何分析定位?

HTTP狀態碼404(未找到):
(1)檢查URL:
確認請求的URL是否正確,沒有拼寫錯誤或多余的字符。
檢查URL是否區分大小寫(雖然大多數現代服務器不區分,但某些服務器可能仍然會)。
(2)服務器配置:
查看服務器配置文件(如Nginx、Apache的配置文件),確保請求的URL映射到了正確的資源或處理腳本。
如果使用的是動態路由,檢查路由表是否包含了該URL。
(3)資源文件:
確認服務器上確實存在被請求的資源(如HTML文件、圖片、API端點等)。
檢查文件權限,確保服務器有權訪問這些資源。
(4)緩存問題:
清除瀏覽器緩存或使用無痕模式再次嘗試訪問。
如果服務器使用了內容分發網絡(CDN)或反向代理,檢查其緩存設置。
(5)日志分析:
查看服務器訪問日志,確認是否收到了該請求。
檢查錯誤日志,看是否有與404相關的錯誤信息。
(6)第三方服務:
如果請求涉及第三方服務(如CDN、外部API等),確保這些服務運行正常。
HTTP狀態碼500(內部服務器錯誤)
(1)服務器日志:
立即查看服務器錯誤日志,查找與500錯誤相關的詳細堆棧跟蹤或錯誤信息。
分析日志中的時間戳,確定錯誤發生的時間點。
(2)代碼審查:
根據錯誤日志中的信息,定位到引發錯誤的代碼行或模塊。
仔細檢查相關代碼,查找可能的邏輯錯誤、語法錯誤或配置問題。
(3)環境檢查:
確保服務器環境(如操作系統、數據庫、依賴庫等)配置正確,且版本兼容。
檢查服務器資源(如CPU、內存、磁盤空間)是否充足,沒有耗盡。
(4)依賴項:
如果應用程序依賴于外部庫或API,確保這些依賴項可用且版本正確。
檢查是否有任何已知的與依賴項相關的問題或安全漏洞。
(5)權限問題:
檢查應用程序和服務器進程是否具有執行所需操作所需的權限。
特別是與文件系統、數據庫和其他資源交互時,權限問題可能會導致500錯誤。
(6)回滾更改:
如果最近對應用程序或服務器進行了更改(如代碼更新、配置更改等),嘗試回滾這些更改以查看問題是否得到解決。

4、什么是敏捷開發?敏捷開發流程是怎么樣的?

敏捷開發是一種以人為核心、迭代、循序漸進的開發方法。其核心思想在于小步快跑、快速迭代、擁抱變化,不追求一開始就盡善盡美,而是把最核心的東西先交付MVP(最小可行性產品),然后根據市場反饋來對需求進行驗證和矯正,以靈活敏捷的改變調整去適應變化,在一次次持續迭代中達到最終目標。
敏捷開發的流程主要包括以下步驟:
(1)目標制定與對齊:通過市場調研、業務思路、風險評估制定公司規劃和目標,根據這一目標產生所有部門的目標并實現對齊。
(2)產品規劃:產品研發部門根據目標制定產品關鍵路線圖,這個路線圖中分布著不同的產品特性和其完成時間。
(3)組織產品待辦列表:產品規劃產生的需求、客戶需求、市場人員收集到的缺陷等將組成產品待辦列表。
(4)需求梳理:產品負責人(Product Owner)對這個列表進行梳理,并在需求梳理會(Backlog Grooming Meeting)講解具體每一個需求,團隊成員根據需求的復雜程度評估每個任務的工作量,輸出本次迭代的待辦事項列表,完成優先級排序等工作。
(5)迭代規劃:通過Sprint計劃會,明確要執行的工作、沖刺目標等。
(6)迭代開發:期間會進行每日站會、性能測試、CodeReview、Demo、測試等工作。
(7)Sprint評審:由每個任務的負責人演示其完整的工作,由PO確定Sprint目標是否完成,版本什么時候對外發布,新增bug的緊急程度等。
(8)開回顧會議:回顧會議由Scrum團隊檢視自身在過去的Sprint的表現,包括人、關系、過程、工具等,思考在下一個Sprint中怎么樣可以表現得更好,更高效,怎么樣可以和團隊合作地更愉快。

5、做接口測試過程中,下游接口需要上游數據依賴,如何處理?

(1)鏈式調用:
按照業務邏輯順序,首先調用上游接口,然后基于上游接口的響應結果調用下游接口。
關鍵點:確保上游接口的穩定性和可用性,因為下游接口的測試依賴于上游接口的正確響應。提取上游接口的關鍵數據(如token、用戶ID等),并將其作為下游接口的參數。
(2)使用全局變量或會話存儲:
當測試框架支持全局變量或會話存儲時,可以在調用上游接口后將關鍵數據保存在這些存儲中,以便在調用下游接口時直接使用。
關鍵點:選擇合適的存儲機制(如全局變量、測試框架的會話對象等)。在調用上游接口后,立即保存關鍵數據。在調用下游接口前,從存儲中讀取數據。

6、POST與GET請求的區別?

(1)get是從服務器上獲取數據,post是向服務器傳送數據。
(2)get請求時通過URL直接請求數據,數據信息可以在URL中直接看到,比如瀏覽器訪問;而post請求是放在請求頭中的,用戶無法直接看到。
(3) get傳送的數據量較小,有限制,不能大于2KB;這主要是因為它受約于URL長度的限制。
(4)post傳送的數據量較大,一般被默認為不受限制,但理論上,IIS4中最大量為80KB,IIS5中為100KB。
(5)get請求因為數據參數是暴露在URL中的,所以安全性比較低,如密碼不能暴露的就不能用get請求;post請求中,請求信息是放在請求頭的,安全性較高,可以使用。
(6)Get限制From表單的數據集的值必須為ASCLL字符,而Post支持整個ISO10646字符集。

7、用sql查詢所有學生中,各科最高學生的成績,并按成績大小排序。(表:student_ score,字段:student_name、score、subject)

select
subject,
MAX(score) AS max_score
from
student_score s
group by
subject
order by
max_score;

8、Python有幾種數據類型?

(1)Numbers(數字):數值類型就是我們日常生活中的數字,python的數字類型包括:int(長整型) float(浮點型) complex(復數)。
(2)Boolean(布爾):布爾類型是與邏輯相關一種數據類型,只有兩個值:True(真)與False(假)。
(3)String(字符串):在Python變量定義中,如果其賦值的內容是通過單引號或雙引號引起來的內容就是字符串String類型。
(4)List(列表):python的列表可以完成大多數集合類的數據結構實現。它支持字符,數字,字符串甚至可以包含列表(即嵌套或者叫多維列表,可以用來表示多維數組)。
(5)Tuple(元組):python的元組類似于list列表,元組用()標識。內部元素用逗號隔開。但是元組不能二次賦值,相當于只讀列表。它支持字符,數字,字符串,列表,元組等所有類型元組的取值、截取、連接、重復與列表一樣。
(6)Dictionary(字典):字典是除列表以外python之中最靈活的內置數據結構類型;列表是有序的對象集合,字典是無序的對象集合;字典用"{ }"標識;字典由索引(key)和它對應的值value組成。
(7)Set(集合):集合是由一個或數個形態各異的大小整體組成的,構成集合的事物或對象稱作元素或是成員,基本功能是進行成員關系測試和刪除重復元素,可以使用大括號 { } 或者 set() 函數創建集合。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/23878.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/23878.shtml
英文地址,請注明出處:http://en.pswp.cn/web/23878.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Flink端到端的精確一次(Exactly-Once)

目錄 狀態一致性 端到端的狀態一致性 端到端精確一次(End-To-End Exactly-Once) Flink內部的Exactly-Once 輸入端保證 輸出端保證 冪等寫入 事務寫入 Flink和Kafka連接時的精確一次保證 整體介紹 需要的配置 案例 狀態一致性 流式計算本身就…

Java工作學習筆記

1、ConfigurationProperties注解是什么意思? ConfigurationProperties 可以將屬性文件與一個Java類綁定,將屬性文件中的變量值注入到該Java類的成員變量中 示例代碼: /*** SSP配置** author mua*/ Component Data ConfigurationProperties…

如何提高接口響應速度

在非大數據(幾萬以上記錄)的情況下,影響接口響應速度的因素中最大的是查詢數據庫的次數,其次才是數組遍歷和簡單數據處理(如根據已有字段增加新的屬性,或計算值)。 一般一次數據庫查詢需要50毫秒…

Java Web應用,IPv6問題解決

在Java Web程序中,如果使用Tomcat并遇到了IPv6相關的問題,可以通過以下幾種方式來解決: 1. 配置Tomcat以使用IPv4 默認情況下,Java可能會優先使用IPv6。如果你希望Tomcat使用IPv4,最簡單的方法是通過設置系統屬性來強…

無線麥克風哪個牌子性價比高?一文告訴你無線領夾麥克風怎么挑選

?當我們談論到演講、表演或者錄制視頻時,一個高質量的無線麥克風能夠使得整個體驗提升至一個全新的水平。它不僅能夠保證聲音的清晰度和真實度,還能夠讓使用者在演講或者表演時更加自信和舒適。基于對市場的深入研究和用戶體驗的考量,我挑選…

TypeScript 中的 tsconfig.json

什么是 tsconfig.json? tsconfig.json 是 TypeScript 編譯器的配置文件,用于指導編譯器如何編譯 TypeScript 代碼。在 TypeScript 項目中,如果存在這個文件,那么在執行 tsc 命令時,編譯器將會使用該文件中定義的配置選…

【Java】解決Java報錯:IllegalArgumentException

文章目錄 引言1. 錯誤詳解2. 常見的出錯場景2.1 非法的參數值2.2 空值或 null 參數2.3 非法的數組索引 3. 解決方案3.1 參數驗證3.2 使用自定義異常3.3 使用Java標準庫中的 Objects 類 4. 預防措施4.1 編寫防御性代碼4.2 使用注解和檢查工具4.3 單元測試 結語 引言 在Java編程…

【NPS】微軟NPS配置802.1x,驗證域賬號,動態分配VLAN(有線網絡續篇)

繼上一篇文章中成功實施了有線802.1x驗證域賬號并動態分配VLAN的策略之后,我們迎來了一個新的目標:在用戶驗證失敗時,自動分配一個Guest VLAN,以確保用戶至少能夠訪問基本的網絡服務。這一改進將顯著提升網絡的靈活性和用戶的上網…

書籍數字字符串轉換為字母組合的種數(4)0607

題目: 給定一個字符串str,str全部由數字字符組成,如果str中某一個或某相鄰兩個字符組成的子串值在1~26之間,則這個子串可以轉換為一個字母。規定“1”轉換為“A”,“2”轉換為“B”,“3”轉換成“C”……“…

Kafka的分區副本機制

目錄 生產者的分區寫入策略 輪詢策略 隨機策略 按key分配策略 亂序分區 自定義分區策略 實現步驟: 消費者組Rebalance機制 Rebalance觸發時機 Rebalance的不良影響 消費者分區分配策略 Range范圍分配策略 RoundRobin輪詢策略 Stricky粘性分配策略 生產…

計算機網絡-NAT配置與ACL

目錄 一、ACL 1、ACL概述 2、ACL的作用 3、ACL的分類 4、ACL的配置格式 二、NAT 1、NAT概述 2、NAT分類 2.1 、 靜態NAT 2.2 、 動態NAT 3、NAT的功能 4、NAT的工作原理 三、NAT配置 1、靜態NAT配置 2、動態NAT配置 四、總結 一、ACL 1、ACL概述 ACL&#xff…

讓編程變得更加直觀與高效 “JAVA圖形化編程”官網上線!

公測預約開啟 我們歷經了長達三年的時光,執著地堅守并潛心地進行探索,始終懷著一顆敬畏的心,最終極為謹慎地推出了這款圖形化編程桌面。它能夠使得業務與程序清晰明了地呈現,而且還能與傳統的低零代碼平臺實現緊密…

新品發布 | 飛凌嵌入式RK3576核心板,為AIoT應用賦能

為了充分滿足AIoT市場對高性能、高算力和低功耗主控日益增長的需求,飛凌嵌入式全新推出基于Rockchip RK3576處理器開發設計的FET3576-C核心板! 集成4個ARM Cortex-A72和4個ARM Cortex-A53高性能核,內置6TOPS超強算力NPU,為您的AI…

LeetCode 兩數之和 + 三數之和

兩數之和 簡單題 思路:一個Map,key是數值,value是該數值對應的下標,遍歷的時候判斷一下當前數組下標對應的值在map里有沒有可組合成target的(具體體現為在map里找target-nums【i】),如果有,直接…

IDEA使用阿里通義靈碼插件

在這個AI火熱的時代,純手工寫代碼已經有點out了,使用AI插件可以幫我們快速寫代碼,起碼能省去寫那些簡單、重復性的代碼,大大提高編碼效率,在這里我推薦使用阿里的通義靈碼 注冊安裝 安裝注冊好后,打開我們…

深入探索Spark MLlib:大數據時代的機器學習利器

隨著大數據技術的迅猛發展,機器學習在各行各業的應用日益廣泛。Apache Spark作為大數據處理的利器,其內置的機器學習庫MLlib(Machine Learning Library)提供了一套高效、易用的工具,用于處理和分析海量數據。本文將深入探討Spark MLlib,介紹其核心功能和應用場景,并通過…

【流媒體】音頻相關概念詳解

文章目錄 一、前言二、概述三、音頻相關概念1、采樣率(Sampling rate)2、位深度(Bit depth)3、比特率(Bit rate)4、聲道(Audio channel)5、音頻幀6、音頻編碼7、音頻解碼 一、前言 …

【vuejs】$nextTick的原理分析和使用場景

1. $nextTick 概述 Vue.js 框架中的 $nextTick 是一個非常重要的 API,它允許開發者延遲回調函數的執行直到下次 DOM 更新循環之后。這意味著,當開發者在 Vue 組件中更改了數據,并且想要在 DOM 更新完成后執行某些操作時,可以使用…

總結開發過程遇到問題有哪些渠道可以尋找解決方案

羅列一下 百度、ChatGPT/訊飛星火等AI、Stack Overflow、github isssue 平時開發過程遇到問題的主要解決方式都是百度或者詢問ChatGPT,當然在java中這兩個方式也能解決百分之80的問題,畢竟java的社區圈夠熱鬧。 如何優雅地使用 Stack Overflow 一、學…

搭建自己的DNS服務器

個人名片 🎓作者簡介:java領域優質創作者 🌐個人主頁:碼農阿豪 📞工作室:新空間代碼工作室(提供各種軟件服務) 💌個人郵箱:[2435024119qq.com] &#x1f4f1…