1)按照測試技術劃分
黑盒測試:功能測試,必須
白盒測試:邏輯結構測試,代碼的邏輯、算法、結構是否正確,要求必須懂得代碼,需要編寫測試用例,可選
灰盒測試:介于中間
注意:在單元測試時,白盒應用相對較多,在集成測試時,灰盒測試應用相對較多,在系統(tǒng)、驗收測試時一般就不會使用白盒測試和灰盒測試了。
2)按是否需要運行代碼劃分
靜態(tài)測試:界面測試,文檔測試,代碼測試【重點關注代碼的規(guī)范性,一般檢查變量的命名,注釋的頻率,編程的規(guī)范性,不需要寫測試用例,一般只需要有代碼審查單】
注意:一般經(jīng)常把白盒測試和靜態(tài)測試的要素結合在一起,形成靜態(tài)白盒測試
動態(tài)測試:運行程序進行檢查,檢查實際輸出結果和預期結果是否相符
3)按軟件特性分類
功能測試
性能測試
1. 等價類劃分
常見的軟件測試面試題劃分等價類: 等價類是指某個輸入域的子集合.在該子集合中,各個輸入數(shù)據(jù)對于揭露程序中的錯誤都是等效的.并合理地假定:測試某等價類的代表值就等于對這一類其它值的測試.因此,可以把全部輸入數(shù)據(jù)合理劃分為若干等價類,在每一個等價類中取一個數(shù)據(jù)作為測試的輸入條件,就可以用少量代表性的測試數(shù)據(jù).取得較好的測試結果.等價類劃分可有兩種不同的情況:有效等價類和無效等價類.
2. 邊界值分析法
邊界值分析方法是對等價類劃分方法的補充。測試工作經(jīng)驗告訴我,大量的錯誤是發(fā)生在輸入或輸出范圍的邊界上,而不是發(fā)生在輸入輸出范圍的內部.因此針對各種邊界情況設計測試用例,可以查出更多的錯誤.
使用邊界值分析方法設計測試用例,首先應確定邊界情況.通常輸入和輸出等價類的邊界,就是應著重測試的邊界情況.應當選取正好等于,剛剛大于或剛剛小于邊界的值作為測試數(shù)據(jù),而不是選取等價類中的典型值或任意值作為測試數(shù)據(jù).
3. 錯誤推測法
基于經(jīng)驗和直覺推測程序中所有可能存在的各種錯誤, 從而有針對性的設計測試用例的方法.
錯誤推測方法的基本思想: 列舉出程序中所有可能有的錯誤和容易發(fā)生錯誤的特殊情況,根據(jù)他們選擇測試用例. 例如, 在單元測試時曾列出的許多在模塊中常見的錯誤. 以前產(chǎn)品測試中曾經(jīng)發(fā)現(xiàn)的錯誤等, 這些就是經(jīng)驗的總結。還有, 輸入數(shù)據(jù)和輸出數(shù)據(jù)為0的情況。輸入表格為空格或輸入表格只有一行. 這些都是容易發(fā)生錯誤的情況??蛇x擇這些情況下的例子作為測試用例.
4. 因果圖方法
前面介紹的等價類劃分方法和邊界值分析方法,都是著重考慮輸入條件,但未考慮輸入條件之間的聯(lián)系, 相互組合等. 考慮輸入條件之間的相互組合,可能會產(chǎn)生一些新的情況. 但要檢查輸入條件的組合不是一件容易的事情, 即使把所有輸入條件劃分成等價類,他們之間的組合情況也相當多. 因此必須考慮采用一種適合于描述對于多種條件的組合,相應產(chǎn)生多個動作的形式來考慮設計測試用例. 這就需要利用因果圖(邏輯模型). 因果圖方法最終生成的就是判定表. 它適合于檢查程序輸入條件的各種組合情況.
5. 正交表分析法
有時候,可能因為大量的參數(shù)的組合而引起測試用例數(shù)量上的激增,同時,這些測試用例并沒有明顯的優(yōu)先級上的差距,而測試人員又無法完成這么多數(shù)量的測試,就可以通過正交表來進行縮減一些用例,從而達到盡量少的用例覆蓋盡量大的范圍的可能性。
6. 場景分析方法
指根據(jù)用戶場景來模擬用戶的操作步驟,這個比較類似因果圖,但是可能執(zhí)行的深度和可行性更好。
白盒測試用例設計的關鍵是以較少的用例覆蓋盡可能多的內部程序邏輯結果
黑盒法用例設計的關鍵同樣也是以較少的用例覆蓋模塊輸出和輸入接口。不可能做到完全測試,以最少的用例在合理的時間內發(fā)現(xiàn)最多的問題
詳細的描述一個測試活動完整的過程。1. 項目經(jīng)理通過和客戶的交流,完成需求文檔,由開發(fā)人員和測試人員共同完成需求文檔的評審,評審的內容包括:需求描述不清楚的地方和可能有明顯沖突或者無法實現(xiàn)的功
《全國計算機等級考試三級教程軟件測試》目錄 第1章 軟件測試的基本概念1.1 軟件質量的概念1.1.1 軟件質量的定義1.1.2 軟件質量的屬性1.1.3 軟件質量模型1.1.4 軟件質量的度量1.1.5 影響軟件質量的主要因素1.2 軟件測試的概念1.2.1 軟件測試的定義與目的1.2.2 軟件測試的原則1.3 軟件的缺陷與錯誤1.3.1 軟件缺陷的定義和類型1.3.2 軟件缺陷的級別1.3.3 軟件缺陷產(chǎn)生的原因1.3.4 軟件缺陷的構成第1章 軟件測試的基本概念1.1 軟件質量的概念1.1.1 軟件質量的定義1.1.2 軟件質量的屬性1.1.3 軟件質量模型1.1.4 軟件質量的度量1.1.5 影響軟件質量的主要因素1.2 軟件測試的概念1.2.1 軟件測試的定義與目的1.2.2 軟件測試的原則1.3 軟件的缺陷與錯誤1.3.1 軟件缺陷的定義和類型1.3.2 軟件缺陷的級別1.3.3 軟件缺陷產(chǎn)生的原因1.3.4 軟件缺陷的構成1.3.5 修復軟件缺陷的代價1.4 軟件測試的經(jīng)濟學與心理學1.4.1 軟件測試的心理學1.4.2 軟件測試的經(jīng)濟學1.5 軟件質量保證1.5.1 軟件質量保證概要1.5.2 軟件質量保證活動的實施1.5.3 軟件的驗證與確認1.5.4 驗證和確認任務分析 本章小結 第2章 軟件生存周期中測試的實施2.1 軟件開發(fā)階段2.1.1 軟件生存周期2.1.2 軟件測試的生存周期模型2.1.3 軟件測試過程模型2.1.4 測試信息流2.2 需求獲取與分析階段的測試2.2.1 需求評審的實施2.2.2 需求規(guī)格說明的評審2.2.3 Wiegers 用例與需求評審表2.2.4 基于原型的測試2.2.5 基于需求的測試覆蓋率評估2.3 設計階段的測試2.3.1 設計的測試因素2.3.2 設計評審的實施2.3.3 設計規(guī)格說明的評審2.3.4 設計元素的覆蓋原則2.4 編程階段的測試2.4.1 白盒測試與黑盒測試2.4.2 源代碼的控制流覆蓋原則2.4.3 源代碼的數(shù)據(jù)流覆蓋原則2.4.4 源代碼的靜態(tài)分析與動態(tài)測試2.5 運行和維護階段的測試2.6 回歸測試2.6.1 回歸測試的概念2.6.2 回歸測試的類型2.6.3 回歸測試的時機2.6.4 回歸測試的實施 本章小結 第3章 代碼檢查、走查與評審3.1 桌上檢查3.1.1 桌上檢查的實施3.1.2 桌上檢查的檢查表3.2 代碼檢查3.2.1 特定的角色和職責3.2.2 代碼檢查的實施3.2.3 用于代碼檢查的檢查表3.3 走查3.3.1 特定的角色和職責3.3.2 走查的實施3.3.3 走查中的靜態(tài)分析技術3.4 同行評審3.4.1 同行評審的角色和職責3.4.2 同行評審的內容3.4.3 評審的方法和技術3.4.4 評審工作 本章小結 第4章 白盒測試4.1 覆蓋率的概念4.2 邏輯覆蓋4.2.1 語句覆蓋與塊覆蓋4.2.2 判定覆蓋(分支覆蓋)4.2.3 條件覆蓋4.2.4 條件/判定覆蓋4.2.5 條件組合覆蓋4.2.6 路徑覆蓋4.2.7 ESTCA覆蓋4.2.8 LCSAJ覆蓋4.3 路徑測試4.3.1 分支結構的路徑測試4.3.2 循環(huán)結構的路徑測試4.3.3 圈復雜度與基本路徑測試4.4 數(shù)據(jù)流測試4.4.1 定義∕使用測試的幾個定義4.4.2 定義∕使用測試舉例4.4.3 定義∕使用路徑測試覆蓋指標4.5 基于覆蓋的測試用例選擇4.5.1 覆蓋率的使用4.5.2 使用最少的測試用例來達到覆蓋4.6 程序插樁技術4.6.1 程序插樁4.6.2 用于測試覆蓋率的程序插樁4.6.3 用于斷言檢測的程序插樁4.6.4 用于數(shù)據(jù)流異常檢測的程序插樁 本章小結 第5章 黑盒測試5.1 等價類測試5.1.1 等價類的概念5.1.2 等價類測試的原則5.1.3 等價類方法測試用例設計舉例5.2 邊界值分析5.2.1 邊界值分析的概念5.2.2 選擇測試用例的原則5.2.3 邊界值方法測試用例設計舉例5.3 基于判定表的測試5.3.1 判定表的概念5.3.2 基于判定表的測試用例設計舉例5.4 基于因果圖的測試5.4.1 因果圖的適用范圍5.4.2 用因果圖生成測試用例5.4.3 因果圖法測試用例設計舉例5.5 基于狀態(tài)圖的測試5.5.1 狀態(tài)圖5.5.2 利用狀態(tài)轉換樹生成測試用例5.5.3 利用狀態(tài)轉換表生成測試用例5.6 基于功能圖的測試5.6.1 功能圖5.6.2 功能圖法設計測試用例舉例5.7 基于用例和場景的測試5.7.1 基本流和備選流5.7.2 利用用例和場景設計測試用例的實例5.8 基于有向圖的測試用例設計5.8.1 使用基于有向圖的測試的場合5.8.2 基于事務流建模設計測試用例5.8.3 基于控制流建模設計測試用例5.8.4 基于有向圖設計測試用例的過程5.9 基于正交實驗設計法的測試5.9.1 提取功能說明,構造因子/ 狀態(tài)表5.9.2 加權篩選,生成因素分析表5.9.3 利用正交表構造測試數(shù)據(jù)集5.10 其他黑盒測試用例設計技術 本章小結 第6章 單元測試和集成測試6.1 單元測試的基本概念6.1.1 單元測試的定義6.1.2 單元測試與集成測試、系統(tǒng)測試的區(qū)別6.1.3 單元測試環(huán)境6.2 單元測試策略6.2.1 自頂向下的單元測試策略6.2.2 自底向上的單元測試策略6.2.3 孤立測試6.2.4 綜合測試6.3 單元測試分析6.3.1 模塊接口6.3.2 局部數(shù)據(jù)結構6.3.3 獨立路徑6.3.4 出錯處理6.3.5 邊界條件6.4 單元測試的測試用例設計原則6.4.1 單元測試的測試用例設計步驟6.4.2 單元測試中的白盒測試與黑盒測試6.5 集成測試的基本概念6.6 集成測試策略6.6.1 基于分解的集成策略6.6.2 基于功能的集成6.6.3 基于路徑的集成6.6.4 基于調用圖的集成6.7 集成測試分析6.7.1 體系結構分析6.7.2 模塊單元分析6.7.3 接口分析6.7.4 風險分析6.7.5 可測試性分析6.7.6 集成測試策略分析6.7.7 常見的集成測試故障6.8 集成測試的測試用例設計原則6.8.1 集成測試的測試用例設計步驟6.8.2 場景測試 本章小結 第7章 系統(tǒng)測試7.1 系統(tǒng)測試概念7.2 系。
軟件測試分類 軟件測試是一項復雜的系統(tǒng)工程,從不同的角度考慮可以有不同的劃分方法,對測試進行分類是為了更好的明確測試的過程,了解測試究竟要完成哪些工作,盡量做到全面測試。
1,按是否需要執(zhí)行被測軟件的角度 按是否需要執(zhí)行被測軟件的角度,可分為靜態(tài)測試和動態(tài)測試,前者不利用計算機運行待測程序而應用其他手段實現(xiàn)測試目的,如代碼審核。(我認為主要是讓測試人員對編譯器發(fā)現(xiàn)不了的潛在錯誤進行分析,如無效的死循環(huán),多余的變量等),而動態(tài)測試則通過運行被測試軟件來達到目的。
2、按階段劃分: 1 單元測試 單元測試是對軟件中的基本組成單位進行的測試,如一個模塊、一個過程等等。它是軟件動態(tài)測試的最基本的部分,也是最重要的部分之一,其目的是檢驗軟件基本組成單位的正確性。
因為單元測試需要知道內部程序設計和編碼的細節(jié)知識,一般應由程序員而非測試員來完成,往往需要開發(fā)測試驅動模塊和樁模塊來輔助完成單元測試。因此應用系統(tǒng)有一個設計很好的體系結構就顯得尤為重要。
一個軟件單元的正確性是相對于該單元的規(guī)約而言的。因此,單元測試以被測試單位的規(guī)約為基準。
單元測試的主要方法有控制流測試、數(shù)據(jù)流測試、排錯測試、分域測試等等。 2 集成測試 集成測試是在軟件系統(tǒng)集成過程中所進行的測試,其主要目的是檢查軟件單位之間的接口是否正確。
它根據(jù)集成測試計劃,一邊將模塊或其他軟件單位組合成越來越大的系統(tǒng),一邊運行該系統(tǒng),以分析所組成的系統(tǒng)是否正確,各組成部分是否合拍。集成測試的策略主要有自頂向下和自底向上兩種。
3 系統(tǒng)測試 系統(tǒng)測試是對已經(jīng)集成好的軟件系統(tǒng)進行徹底的測試,以驗證軟件系統(tǒng)的正確性和性能等滿足其規(guī)約所指定的要求,檢查軟件的行為和輸出是否正確并非一項簡單的任務,它被稱為測試的“先知者問題”。因此,系統(tǒng)測試應該按照測試計劃進行,其輸入、輸出和其他動態(tài)運行行為應該與軟件規(guī)約進行對比。
軟件系統(tǒng)測試方法很多,主要有功能測試、性能測試、隨機測試等等。 4 驗收測試 驗收測試旨在向軟件的購買者展示該軟件系統(tǒng)滿足其用戶的需求。
它的測試數(shù)據(jù)通常是系統(tǒng)測試的測試數(shù)據(jù)的子集。所不同的是,驗收測試常常有軟件系統(tǒng)的購買者代表在現(xiàn)場,甚至是在軟件安裝使用的現(xiàn)場。
這是軟件在投入使用之前的最后測試。 5 回歸測試 回歸測試是在軟件維護階段,對軟件進行修改之后進行的測試。
其目的是檢驗對軟件進行的修改是否正確。這里,修改的正確性有兩重含義:一是所作的修改達到了預定目的,如錯誤得到改正,能夠適應新的運行環(huán)境等等;二是不影響軟件的其他功能的正確性。
6 Alpha 測試:在系統(tǒng)開發(fā)接近完成時對應用系統(tǒng)的測試;測試后,仍然會有少量的設計變更。這種測試一般由最終用戶或其他人員員完成,不能由程序員或測試員完成。
7 Beta 測試:當開發(fā)和測試根本完成時所做的測試,而最終的錯誤和問題需要在最終發(fā)行前找到。這種測試一般由最終用戶或其他人員員完成,不能由程序員或測試員完成。
3、按測試方法劃分: 1 白盒測試 白盒測試也稱結構測試或邏輯驅動測試,是指基于一個應用代碼的內部邏輯知識,即基于覆蓋全部代碼、分支、路徑、條件的測試,它是知道產(chǎn)品內部工作過程,可通過測試來檢測產(chǎn)品內部動作是否按照規(guī)格說明書的規(guī)定正常進行,按照程序內部的結構測試程序,檢驗程序中的每條通路是否都有能按預定要求正確工作,而不顧它的功能,白盒測試的主要方法有邏輯驅動、基路測試等,主要用于軟件驗證?!鞍缀小狈ㄈ媪私獬绦騼炔窟壿嫿Y構、對所有邏輯路徑進行測試。
“白盒”法是窮舉路徑測試。在使用這一方案時,測試者必須檢查程序的內部結構,從檢查程序的邏輯著手,得出測試數(shù)據(jù)。
貫穿程序的獨立路徑數(shù)是天文數(shù)字。但即使每條路徑都測試了仍然可能有錯誤。
第一,窮舉路徑測試決不能查出程序違反了設計規(guī)范,即程序本身是個錯誤的程序。第二,窮舉路徑測試不可能查出程序中因遺漏路徑而出錯。
第三,窮舉路徑測試可能發(fā)現(xiàn)不了一些與數(shù)據(jù)相關的錯誤。 白盒測試可以借助一些工具來完成如Junit Framework,Jtest等。
2 黑盒測試 黑盒測試是指不基于內部設計和代碼的任何知識,而基于需求和功能性的測試,黑盒測試也稱功能測試或數(shù)據(jù)驅動測試,它是在已知產(chǎn)品所應具有的功能,通過測試來檢測每個功能是否都能正常使用,在測試時,把程序看作一個不能打開的黑盆子,在完全不考慮程序內部結構和內部特性的情況下,測試者在程序接口進行測試,它只檢查程序功能是否按照需求規(guī)格說明書的規(guī)定正常使用,程序是否能適當?shù)亟邮蛰斎霐?shù)鋸而產(chǎn)生正確的輸出信息,并且保持外部信息(如數(shù)據(jù)庫或文件)的完整性。黑盒測試方法主要有等價類劃分、邊值分析、因—果圖、錯誤推測等,主要用于軟件確認測試。
“黑盒”法著眼于程序外部結構、不考慮內部邏輯結構、針對軟件界面和軟件功能進行測試?!昂诤小狈ㄊ歉F舉輸入測試,只有把所有可能的輸入都作為測試情況使用,才能以這種方法查出程序中所有的錯誤。
實際上測試情況有無窮多個,人們不僅要測試所有。
1、從是否關心內部結構來看 (1)白盒測試:又稱為結構測試或邏輯驅動測試,是一種按照程序內部邏輯結構和編碼結構,設計測試數(shù)據(jù)并完成測試的一種測試方法。
(2)黑盒測試:又稱為數(shù)據(jù)驅動測試,把測試對象當做看不見的黑盒,在完全不考慮程序內部結構和處理過程的情況下,測試者僅依據(jù)程序功能的需求規(guī)范考慮,確定測試用例和推斷測試結果的正確性,它是站在使用軟件或程序的角度,從輸入數(shù)據(jù)與輸出數(shù)據(jù)的對應關系出發(fā)進行的測試。(3)灰盒測試:是一種綜合測試法,它將“黑盒”測試與“白盒”測試結合在一起,是基于程序運行時的外部表現(xiàn)又結合內部邏輯結構來設計用例,執(zhí)行程序并采集路徑執(zhí)行信息和外部用戶接口結果的測試技術。
2、從是否執(zhí)行代碼看 (1)靜態(tài)測試:指不運行被測程序本身,僅通過分析或檢查源程序的語法、結構、過程、接口等來檢查程序的正確性。(2)動態(tài)測試:是指通過運行被測程序,檢查運行結果與預期結果的差異,并分析運行效率、正確性和健壯性等性能指標。
3、從開發(fā)過程級別看 (1)單元測試:又稱模塊測試,是針對軟件設計的最小單位----程序模塊或功能模塊,進行正確性檢驗的測試工作。其目的在于檢驗程序各模塊是否存在各種差錯,是否能正確地實現(xiàn)了其功能,滿足其性能和接口要求。
(2)集成測試:又叫組裝測試或聯(lián)合,是單元測試的多級擴展,是在單元測試的基礎上進行的一種有序測試。旨在檢驗軟件單元之間的接口關系,以期望通過測試發(fā)現(xiàn)各軟件單元接口之間存在的問題,最終把經(jīng)過測試的單元組成符合設計要求的軟件。
(3)系統(tǒng)測試:是為判斷系統(tǒng)是否符合要求而對集成的軟、硬件系統(tǒng)進行的測試活動、它是將已經(jīng)集成好的軟件系統(tǒng),作為基于整個計算機系統(tǒng)的一個元素,與計算機硬件、外設、某些支持軟件、人員、數(shù)據(jù)等其他系統(tǒng)元素結合在一起,在實際運行環(huán)境下,對計算機系統(tǒng)進行一系列的組裝測試和確認測試。在系統(tǒng)測試中,對于具體的測試類型有:(1)功能測試:對軟件需求規(guī)格說明書中的功能需求逐項進行的測試,以驗證功能是否滿足要求。
(2)性能測試:對軟件需求規(guī)格說明書的功能需求逐項進行的測試,以驗證功能是否滿足要求。(3)接口測試:對軟件需求規(guī)格說明中的接口需求逐項進行的測試。
(4)人機交互界面測試:對所有人機交互界面提供的操作和顯示界面進行的測試,以檢驗是否滿足用戶的需求。(5)強度測試:強制軟件運行在異常乃至發(fā)生故障的情況下(設計的極限狀態(tài)到超出極限),驗證軟件可以運行到何種程序的測試。
(6)余量測試:對軟件是否達到規(guī)格說明中要求的余量的測試。(7)安全性測試:檢驗軟件中已存在的安全性、安全保密性措施是否有效的測試,(8)可靠性測試:在真實的或仿真的環(huán)境中,為做出軟件可靠性估計而對軟件進行的功能(其輸入覆蓋和環(huán)境覆蓋一般大于普通的功能測試) (9)恢復性測試:對有恢復或重置功能的軟件的每一類導致恢復或重置的情況,逐一進行的測試。
(10)邊界測試:對軟件處在邊界或端點情況下運行狀態(tài)的測試。(11)數(shù)據(jù)處理測試:對完成專門數(shù)據(jù)處理功能所進行的測試。
(12)安裝性測試:對安裝過程是否符合安裝規(guī)程的測試,以發(fā)現(xiàn)安裝過程中的錯誤。(13)容量測試:檢驗軟件的能力最高能達到什么程度的測試。
(14)互操作性測試:為驗證不同軟件之間的互操作能力而進行的測試。(15)敏感性測試:為發(fā)現(xiàn)在有效輸入類中可能引起某種不穩(wěn)定性或不正常處理的某些數(shù)據(jù)的組合而進行的測試。
(16)標準符合性測試:驗證軟件與相關國家標準或規(guī)范(如軍用標準、國家標準、行業(yè)標準及國際標準)一致性的測試。(17)兼容性測試:驗證軟件在規(guī)定條件下與若干個實體共同使用或實現(xiàn)數(shù)據(jù)格式轉換時能滿足有關要求能力的測試。
(18)中文本地化測試:驗證軟件在不降低原有能力的條件下,處理中文能力的測試。4、從執(zhí)行過程是否需要人工干預來看 (1)手工測試:就是測試人員按照事先為覆蓋被測軟件需求而編寫的測試用例,根據(jù)測試大綱中所描述的測試步驟和方法,手工地一個一個地輸 入執(zhí)行,包括與被測軟件進行交互(如輸入測試數(shù)據(jù)、記錄測試結果等),然后觀察測試結果,看被測程序是否存在問題,或在執(zhí)行過程中是否會有一場發(fā)生,屬于比較原始但是必須執(zhí)行的一個步驟。
(2)自動化測試:實際上是將大量的重復性的測試工作交給計算機去完成,通常是使用自動化測試工具來模擬手動測試步驟,執(zhí)行用某種程序設計語言編寫的過程(全自動測試就是指在自動測試過程中,不需要人工干預,由程序自動完成測試的全過程;半自動測試就是指在自動測試過程中,需要手動輸入測試用例或選擇測試路徑,再由自動測試程序按照人工指定的要求完成自動測試)5、從測試實施組織看 (1)開發(fā)測試:開發(fā)人員進行的測試 (2)用戶測試:用戶方進行的測試 (3)第三方測試:有別于開發(fā)人員或用戶進行的測試,由專業(yè)的第三方承擔的測試,目的是為了保證測試工作的客觀性6、從測試所處的環(huán)境看 (1)阿爾法測試:是由一個用戶在開發(fā)環(huán)境下進行的測試,也可以是公司內部的用戶在模擬實際操作環(huán)境下進行的測試 (2)。
聲明:本網(wǎng)站尊重并保護知識產(chǎn)權,根據(jù)《信息網(wǎng)絡傳播權保護條例》,如果我們轉載的作品侵犯了您的權利,請在一個月內通知我們,我們會及時刪除。
蜀ICP備2020033479號-4 Copyright ? 2016 學習鳥. 頁面生成時間:2.875秒