文章目錄
- 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() 函數創建集合。