軟件測(cè)試的發(fā)展

迄今為止,軟件測(cè)試的發(fā)展一共經(jīng)歷了五個(gè)重要時(shí)期:

  • 1957****年之前-調(diào)試為主(Debugging Oriented)
  • 1957–1978****-證明為主(Demonstration Oriented)
  • 1979–1982****-破壞為主(Destruction Oriented)
  • 1983–1987****-評(píng)估為主(Evaluation Oriented)
  • 1988–****至今-預(yù)防為主(Prevention Oriented)

調(diào)試為主

20世紀(jì)50年代,計(jì)算機(jī)剛誕生不久,只有科學(xué)家級(jí)別的人才會(huì)去編程,需求和程序本身也遠(yuǎn)遠(yuǎn)沒有現(xiàn)在這么復(fù)雜多變,相當(dāng)于開發(fā)人員一人承擔(dān)需求分析,設(shè)計(jì),開發(fā),測(cè)試等所有工作,當(dāng)然也不會(huì)有人去區(qū)分調(diào)試和測(cè)試。然而嚴(yán)謹(jǐn)?shù)目茖W(xué)家們已經(jīng)在開始思考 “怎么知道程序滿足了需求?”這類問題了。

證明為主

1957年,Charles Baker在他的一本書中對(duì)調(diào)試和測(cè)試進(jìn)行了區(qū)分:

  • 調(diào)試(Debug):確保程序做了程序員想它做的事情
  • 測(cè)試(Testing):確保程序解決了它該解決的問題

這是軟件測(cè)試史上一個(gè)重要的里程碑,它標(biāo)志測(cè)試終于自立門戶師出有名了。 當(dāng)時(shí)計(jì)算機(jī)應(yīng)用的數(shù)量,成本和復(fù)雜性都大幅度提升,隨之而來的經(jīng)濟(jì)風(fēng)險(xiǎn)也大大增加,測(cè)試就顯得很有必要了,這個(gè)時(shí)期測(cè)試的主要目就是確認(rèn)軟件是滿足需求的,也就是我們常說的“做了該做的事情”。

破壞為主

1979年,《軟件測(cè)試的藝術(shù)》 (The Art of Software Testing)第一版問世,這本書是測(cè)試界的經(jīng)典之作。書中給出了軟件測(cè)試的經(jīng)典定義:

The process of executing a program with the intent of finding errors. 測(cè)試是為發(fā)現(xiàn)錯(cuò)誤而執(zhí)行程序的過程。

這個(gè)觀點(diǎn)較之前證明為主的思路,是一個(gè)很大的進(jìn)步。我們不僅要證明軟件做了該做的事情,也要保證它沒做不該做的事情,這會(huì)使測(cè)試更加全面,更容易發(fā)現(xiàn)問題。

評(píng)估為主

1983年,美國國家標(biāo)準(zhǔn)局(National Bureau of Standards)發(fā)布“Guideline for Lifecycle Validation, Verification and Testing of Computer Software”,也就是我們常說的VV&T。VV&T提出了測(cè)試界很有名的兩個(gè)名詞:驗(yàn)證(Verification)和確認(rèn)(Validation)

  • Verification: Are we building the product right?
  • Validation: Are we building the right product?

人們提出了在軟件生命周期中使用分析,評(píng)審,測(cè)試來評(píng)估產(chǎn)品的理論。軟件測(cè)試工程在這個(gè)時(shí)期得到了快速的發(fā)展:

  • 出現(xiàn)測(cè)試經(jīng)理(test manager),測(cè)試分析師(test analyst)等職稱
  • 開展正式的國際性測(cè)試會(huì)議和活動(dòng)
  • 發(fā)表大量測(cè)試刊物
  • 發(fā)布相關(guān)國際標(biāo)準(zhǔn) 以上種種都預(yù)示著:軟件測(cè)試正作為一門獨(dú)立的,專業(yè)的,具有影響力的工程學(xué)發(fā)展起來了。

預(yù)防為主

預(yù)防為主是當(dāng)下軟件測(cè)試的主流思想之一。STEP(Systematic Test and Evaluation Process)是最早的一個(gè)以預(yù)防為主的生命周期模型,STEP認(rèn)為測(cè)試與開發(fā)是并行的,整個(gè)測(cè)試的生命周期也是由計(jì)劃,分析,設(shè)計(jì),開發(fā),執(zhí)行和維護(hù)組成,也就是說,測(cè)試不是在編碼完成后才開始介入,而是貫穿于整個(gè)軟件生命周期。我們都知道,沒有100%完美的軟件,零缺陷是不可能的,所以我們要做的是:盡量早的介入,盡量早的發(fā)現(xiàn)這些明顯的或隱藏的bug,發(fā)現(xiàn)得越早,修復(fù)起來的成本越低,產(chǎn)生的風(fēng)險(xiǎn)也越小。

雖然每一個(gè)發(fā)展階段對(duì)軟件測(cè)試的認(rèn)識(shí)都有其局限性,但是前輩們一直在思考和總結(jié)前人的經(jīng)驗(yàn),創(chuàng)造性地提出新的理論和方向,這種精神非常值得尊敬和學(xué)習(xí)。所謂以銅為鏡,可正衣冠;以史為鏡,可明得失。知道了從哪里來,方能更好的明白該到哪里去。

2****,軟件測(cè)試國外現(xiàn)狀

軟件測(cè)試在軟件公司尤其是大型公司受重視。

軟件測(cè)試在很多高校和研究機(jī)構(gòu)作為一個(gè)單獨(dú)的學(xué)科去研究。

測(cè)試工具比較發(fā)達(dá),測(cè)試自動(dòng)化水平高。

3****,軟件測(cè)試國內(nèi)發(fā)展及現(xiàn)狀

1,國家、高校和公司越來越關(guān)注軟件測(cè)試?yán)碚摰难芯亢蜏y(cè)試人員的培養(yǎng)。很多學(xué)校的本科和??平虒W(xué)中嘗試性的開設(shè)軟件測(cè)試課程。

2010年12月16日,國內(nèi)知名測(cè)試專業(yè)網(wǎng)站51testing與鄭州輕工業(yè)學(xué)院軟件學(xué)院人才培養(yǎng)實(shí)訓(xùn)基地簽署協(xié)議,共同培養(yǎng)軟件測(cè)試人才;(http://www.51testing.com/html/00/n-210000.html

2、 目前,國內(nèi)多間高校已專設(shè)有本科段軟件測(cè)試方向的專業(yè),如廣州華軟軟件學(xué)院,電子科技大學(xué)成都學(xué)院,北京民族大學(xué)信息工程學(xué)院等學(xué)校;

3、 2011年11月12日~13日,由國家教育部軟件工程專業(yè)教學(xué)指導(dǎo)分委主辦的“2011年高等學(xué)校軟件測(cè)試課程教學(xué)論壇”,在上海同濟(jì)大學(xué)召開,無疑對(duì)國內(nèi)軟件測(cè)試人才的培養(yǎng),及測(cè)試領(lǐng)域的全面發(fā)展起到積極推動(dòng)的作用。這里要特別感謝軟件測(cè)試領(lǐng)域知名專家朱少民老師的分享,下面是來自興浪微博關(guān)于此事的截圖。

[[圖片上傳失敗...(image-821e5c-1530169661486)]](javascript:;)

現(xiàn)狀

一、是軟件測(cè)試的地位還不高,在很多公司還是一種可有可無的東西,大多只停留在軟件單元測(cè)試、集成測(cè)試和功能測(cè)試上。

二,是軟件測(cè)試標(biāo)準(zhǔn)化和規(guī)范化不夠。

三,是軟件測(cè)試從業(yè)人員的數(shù)量同實(shí)際需求有不小差距,國內(nèi)軟件企業(yè)中開發(fā)人員與測(cè)試人員數(shù)量一般為5:1,國外一般為 2:1或1:1,而最近有資料顯示微軟已把此比例調(diào)整為1:2。

四,是國內(nèi)缺乏完全商業(yè)化的操作機(jī)構(gòu),一般只是政府部門的下屬機(jī)構(gòu)在做一些產(chǎn)品的驗(yàn)收測(cè)試工作,實(shí)質(zhì)意義不大,軟件測(cè)試產(chǎn)業(yè)化還有待開發(fā)和深掘。

五,專業(yè)的測(cè)試機(jī)構(gòu)以及主做軟件測(cè)試業(yè)務(wù)的公司不斷壯大。

六,各種測(cè)試職業(yè)培訓(xùn)機(jī)構(gòu)涌現(xiàn),為軟件測(cè)試行業(yè)培養(yǎng)了大量的人才。比較權(quán)威的是51test培訓(xùn),51testing論壇是一個(gè)比較好的測(cè)試交流平臺(tái)。

七,TesterHome社區(qū)

中國移動(dòng)測(cè)試開發(fā)大會(huì)邀請(qǐng)國家機(jī)構(gòu),大學(xué)教授和BAT的總監(jiān)們來一起參與

4****,對(duì)測(cè)試工作的誤解

測(cè)試和調(diào)試工作類似

對(duì)軟件可以進(jìn)行窮舉測(cè)試

軟件有缺陷,是測(cè)試人員的失職

關(guān)注測(cè)試執(zhí)行而忽視測(cè)試用例設(shè)計(jì)

測(cè)試比編程容易得多。

測(cè)試是編碼之后進(jìn)行的工作,開發(fā)完了再做測(cè)試

測(cè)試自動(dòng)化是萬能的。

自動(dòng)化測(cè)試就是讓計(jì)算機(jī)代替人進(jìn)行測(cè)試。

軟件測(cè)試是一種破壞性的工作

測(cè)試的目的在于證明軟件的正確性

5****,測(cè)試的質(zhì)量管理

持續(xù)集成、持續(xù)交付、DevOps

質(zhì)量監(jiān)控

敏捷落地

過程改進(jìn)、質(zhì)量體系建設(shè)、團(tuán)隊(duì)管理

6****,測(cè)試的領(lǐng)域

互聯(lián)網(wǎng)測(cè)試:接口測(cè)試、白盒測(cè)試

移動(dòng)互聯(lián)網(wǎng)測(cè)試:通用app測(cè)試、小程序測(cè)試

物聯(lián)網(wǎng)(IOT):車聯(lián)網(wǎng)、智能家居、智能穿戴、機(jī)器人、機(jī)頂盒、工業(yè)app

互聯(lián)網(wǎng)金融測(cè)試

視頻與語音測(cè)試

游戲測(cè)試

新方向測(cè)試、大數(shù)據(jù)測(cè)試、人工智能(AI)、區(qū)塊鏈

7****,測(cè)試技術(shù)

自動(dòng)化測(cè)試:接口測(cè)試、UI自動(dòng)測(cè)試、自動(dòng)探索性測(cè)試

移動(dòng)端專題測(cè)試:性能測(cè)試、耗電量測(cè)試、弱網(wǎng)測(cè)試、卡頓測(cè)試、sdk測(cè)試

服務(wù)端測(cè)試:壓力測(cè)試、性能調(diào)優(yōu)

安全測(cè)試:應(yīng)用安全測(cè)試、服務(wù)端安全測(cè)試、物聯(lián)網(wǎng)安全

白盒測(cè)試:靜態(tài)分析、代碼審計(jì)、Android Hook技術(shù)、iOS Hook技術(shù)、字節(jié)碼插樁技術(shù)

質(zhì)量監(jiān)控與質(zhì)量數(shù)據(jù)分析

8,大數(shù)據(jù)測(cè)試策略

大數(shù)據(jù)應(yīng)用程序的測(cè)試更多的是去驗(yàn)證其數(shù)據(jù)處理而不是驗(yàn)證其單一的功能特色。

當(dāng)然在大數(shù)據(jù)測(cè)試時(shí),功能測(cè)試和性能測(cè)試是同樣很關(guān)鍵的。

對(duì)于大數(shù)據(jù)測(cè)試工程師而言,如何高效正確的驗(yàn)證經(jīng)過大數(shù)據(jù)工具/框架成功處理過的至少百萬兆字節(jié)的數(shù)據(jù)將會(huì)是一個(gè)巨大的挑戰(zhàn)。

因?yàn)榇髷?shù)據(jù)高效的處理測(cè)試速度,它要求測(cè)軟件工程師具備高水平的測(cè)試技術(shù)才能應(yīng)對(duì)大數(shù)據(jù)測(cè)試。

我們來看下大數(shù)據(jù)處理的三個(gè)特性:

· 大批量

· 實(shí)時(shí)性

· 可交互

另外,數(shù)據(jù)質(zhì)量也同樣是大數(shù)據(jù)測(cè)試的一個(gè)重要維度。

因此在進(jìn)行應(yīng)用程序測(cè)試之前,必須確保數(shù)據(jù)質(zhì)量,并且考慮把數(shù)據(jù)質(zhì)量作為數(shù)據(jù)庫測(cè)試的一部分。涉及數(shù)據(jù)的各種特性的檢驗(yàn),例如一致性、準(zhǔn)確性、重復(fù)性、連貫性、有效性及完整性等等。

大數(shù)據(jù)應(yīng)用測(cè)試步驟

下面我們一起看看大數(shù)據(jù)應(yīng)用的測(cè)試過程是怎么樣的。

[圖片上傳失敗...(image-606fbc-1530169661487)]

整體而言,大數(shù)據(jù)測(cè)試大體可以分為三大步驟:

· 步驟一,數(shù)據(jù)預(yù)處理驗(yàn)證 在進(jìn)行大數(shù)據(jù)測(cè)試時(shí),首先要預(yù)hadoop前驗(yàn)證數(shù)據(jù)的準(zhǔn)確性等等。

  1. 我們數(shù)據(jù)來源可能是關(guān)系數(shù)據(jù)庫、日志系統(tǒng)、社交網(wǎng)絡(luò)等等,所以我們應(yīng)該確保數(shù)據(jù)能正確的加載到系統(tǒng)中

  2. 我們要驗(yàn)證加載的數(shù)據(jù)和源數(shù)據(jù)是一致的

  3. 我們 要確保正確的提取和加載數(shù)據(jù)至hdfs中

· 步驟二,Map Reduce驗(yàn)證 在進(jìn)行大數(shù)據(jù)測(cè)試時(shí),第二個(gè)關(guān)鍵步驟是“Map Reduce”驗(yàn)證。在本階段,我們主要驗(yàn)證每一個(gè)處理節(jié)點(diǎn)的業(yè)務(wù)邏輯是否正確,并驗(yàn)證在多個(gè)運(yùn)行后,確保:

  1. Map Reduce過程工作正常

  2. 數(shù)據(jù)聚合、分離規(guī)則已經(jīng)實(shí)現(xiàn)

  3. 數(shù)據(jù)key-value關(guān)系已正確生成

  4. 驗(yàn)證經(jīng)過map reduce后數(shù)據(jù)的準(zhǔn)確性等特性

· 步驟三,結(jié)果驗(yàn)證 在本階段主要驗(yàn)證在經(jīng)過大數(shù)據(jù)工具/框架處理后,生成的最終數(shù)據(jù)的成果。

主要驗(yàn)證:

  1. 驗(yàn)證數(shù)據(jù)轉(zhuǎn)換規(guī)則是否正確應(yīng)用

  2. 驗(yàn)證數(shù)據(jù)的完整性和是否成功持久化到目標(biāo)系統(tǒng)

  3. 驗(yàn)證無數(shù)據(jù)損壞

架構(gòu)測(cè)試

Hadoop處理海量數(shù)據(jù)是非常的消耗資源的,良好的架構(gòu)是確保大數(shù)據(jù)項(xiàng)目成功的基礎(chǔ)。糟糕的涉及會(huì)導(dǎo)致性能急劇的下降,進(jìn)而使得系統(tǒng)無法滿足我們的需要,因此我們需要,或是說至少在Hadoop環(huán)境下進(jìn)行性能測(cè)試、故障恢復(fù)測(cè)試,以應(yīng)改進(jìn)效率和應(yīng)對(duì)可能的最糟糕的情況。

性能測(cè)試是一個(gè)復(fù)雜的工作,它貫穿整個(gè)測(cè)試周期,需要關(guān)注內(nèi)存、CPU、網(wǎng)絡(luò)等等指標(biāo)。

故障恢復(fù)測(cè)試則是驗(yàn)證數(shù)據(jù)處理過程中可能出現(xiàn)的故障,為做好意外的恢復(fù)做好相應(yīng)的應(yīng)對(duì)措施。

性能測(cè)試

大數(shù)據(jù)性能測(cè)試主要包含以下幾個(gè)部分:

· 數(shù)據(jù)提取、存儲(chǔ)效率

在本階段,我們主要驗(yàn)證大數(shù)據(jù)應(yīng)用從源數(shù)據(jù)中提取、加載數(shù)據(jù)的效率。

一是驗(yàn)證單位時(shí)間內(nèi)數(shù)據(jù)的提取、加 載效率。

二是驗(yàn)證數(shù)據(jù)持久化至mongodb等庫的效率等等

· 數(shù)據(jù)處理

在本階段,我們驗(yàn)證map reduce任務(wù)的執(zhí)行效率,重點(diǎn)關(guān)注的是數(shù)據(jù)處理的效率。當(dāng)然這個(gè)過程可能也會(huì)涉及到數(shù)據(jù)的持久化相關(guān)指標(biāo),例如存儲(chǔ)至HDFS讀寫效率等等,同樣也會(huì)涉及在內(nèi)存中處理效率,即我們的處理算法效率等等

· 子組件性能

大數(shù)據(jù)處理,一般都會(huì)需要綜合利用各種組件來輔助處理,所以我們也是需要關(guān)注這些輔助組件的性能

性能測(cè)試策略

大數(shù)據(jù)應(yīng)用性能測(cè)試涉及海量的結(jié)構(gòu)化和非結(jié)構(gòu)化的數(shù)據(jù),與我們平時(shí)所面對(duì)的業(yè)務(wù)系統(tǒng)有所不同,所以我們需要針對(duì)大數(shù)據(jù)應(yīng)用制定特定的測(cè)試策略,以應(yīng)對(duì)海量的數(shù)據(jù)。

[圖片上傳失敗...(image-fd8fb9-1530169661487)]

根據(jù)上圖性能測(cè)試執(zhí)行過程一般是這樣的:

  1. 在性能測(cè)試前需要先初始化大數(shù)據(jù)集群環(huán)境

  2. 梳理和設(shè)計(jì)大數(shù)據(jù)性能測(cè)試場(chǎng)景

  3. 準(zhǔn)備大數(shù)據(jù)性能測(cè)試腳本

  4. 執(zhí)行并分析測(cè)試結(jié)果(如果指標(biāo)異常,則調(diào)優(yōu)相應(yīng)的組件并重新測(cè)試)

  5. 優(yōu)化配置

性能測(cè)試基礎(chǔ)準(zhǔn)備

在大數(shù)據(jù)性能測(cè)試時(shí),需要準(zhǔn)備相關(guān)的基礎(chǔ)工作,如下:

· 數(shù)據(jù)準(zhǔn)備,我們需要在不同的節(jié)點(diǎn)準(zhǔn)備什么量級(jí)數(shù)據(jù)?

· 日志預(yù)估,在測(cè)試過程中,可能會(huì)生成多大的日志,日志的可能增量是什么樣的?

· 并發(fā),在測(cè)試時(shí),可能會(huì)有多少線程并發(fā)讀和寫?

· 超時(shí)設(shè)置,應(yīng)對(duì)設(shè)置怎樣的連接超時(shí)?查詢超時(shí)?寫超時(shí)等等?

· JVM參數(shù),如何設(shè)置最優(yōu)的jvm參數(shù),heap size、GC機(jī)制等等

· Map Reduce,我們應(yīng)該選擇什么樣的sort、merge等算法?

· 消息隊(duì)列,消息隊(duì)列長(zhǎng)度會(huì)怎么樣?等等

必備的測(cè)試環(huán)境

大數(shù)據(jù)測(cè)試不同于常規(guī)的應(yīng)用測(cè)試,你應(yīng)該具備以下一些基礎(chǔ)環(huán)境:

· 擁有足夠的存儲(chǔ)設(shè)備來存儲(chǔ)和處理大數(shù)據(jù)

· 擁有集群來做分布式節(jié)點(diǎn)和數(shù)據(jù)處理

· 至少擁有足夠的cpu、內(nèi)存來確保有高性能的處理基礎(chǔ)

大數(shù)據(jù)測(cè)試的挑戰(zhàn)

對(duì)于從事大數(shù)據(jù)測(cè)試的軟件測(cè)試工程師而言,與傳統(tǒng)的測(cè)試工作相對(duì)比,我們可能面臨的以下幾個(gè)可能的挑戰(zhàn):

· 自動(dòng)化 自動(dòng)化測(cè)試是從事大數(shù)據(jù)測(cè)試必備的技術(shù),但自動(dòng)化測(cè)試工具可能并不具備處理測(cè)試過程所引發(fā)的異常的能力,意味著現(xiàn)有工具可能并不適用,編程能力將是更好的一種技能。

· 虛擬化 當(dāng)前業(yè)內(nèi)大規(guī)模使用虛擬化技術(shù),但虛擬機(jī)的延遲有可能造成大數(shù)據(jù)實(shí)時(shí)測(cè)試處理的異常。

對(duì)大數(shù)據(jù)而言,管理影像信息也將是一個(gè)巨大的問題。

· 海量數(shù)據(jù)集

  1. 需要驗(yàn)證的數(shù)據(jù)量巨大,而且需要更快的處理速度

  2. 需要有效的自動(dòng)化測(cè)試手段

  3. 需要盡可能的跨平臺(tái)

大數(shù)據(jù)性能測(cè)試的挑戰(zhàn)

對(duì)于從是大數(shù)據(jù)性能測(cè)試,與傳統(tǒng)性能測(cè)試相比較,我們要面臨是樣的挑戰(zhàn)呢,可能有以下幾個(gè)方面:

· 技術(shù)的多樣化,復(fù)雜化,面對(duì)不同的大數(shù)據(jù)解決方案,我們可能需要掌握不同的技術(shù)和定制不同的測(cè)試解決方案

· 無通用的工具,目前業(yè)界暫無通用的標(biāo)準(zhǔn)的大數(shù)據(jù)性能測(cè)試工具,這意味著我們需要根據(jù)大數(shù)據(jù)應(yīng)用解決方案技術(shù),要自行開發(fā)或整合多種相關(guān)工具才可能解決問題

· 測(cè)試環(huán)境復(fù)雜化,因?yàn)楹A康臄?shù)據(jù),我們所需要測(cè)試環(huán)境亦會(huì)更加復(fù)雜,所消耗的基礎(chǔ)成本會(huì)更高

· 監(jiān)控解決方案,目前有的監(jiān)控解決方案有限,但通過整合不同的監(jiān)控工具,大致可能擁有一套相對(duì)可行的監(jiān)控解決方案

· 診斷方案,由于大數(shù)據(jù)應(yīng)用所涉及的技術(shù)、環(huán)境復(fù)雜性,對(duì)于問題的診斷調(diào)優(yōu),我們需要根據(jù)實(shí)際情況來進(jìn)行開發(fā)定制

從上面幾個(gè)方面來看,從事大數(shù)據(jù)性能測(cè)試所要面臨的問題是相對(duì)復(fù)雜的,尤其對(duì)當(dāng)下國內(nèi)的測(cè)試工程師而言,要走的路還很長(zhǎng),很艱難。

小結(jié)

· 隨著大數(shù)據(jù)工程和數(shù)據(jù)分析逐步的進(jìn)入新的階段,大數(shù)據(jù)測(cè)試將成為必然,也必定成為未來的一個(gè)熱門的職業(yè)方向

· 大數(shù)據(jù)處理必須是批量的,實(shí)時(shí)的、可交互的

· 大數(shù)據(jù)應(yīng)用測(cè)試的三大階段:

  1. 數(shù)據(jù)驗(yàn)證

  2. Map Reduce 驗(yàn)證

  3. 數(shù)據(jù)處理結(jié)果驗(yàn)證

· 架構(gòu)測(cè)試也是非常重要的一個(gè)測(cè)試類型,糟糕的架構(gòu)可能直接導(dǎo)致您的大數(shù)據(jù)項(xiàng)目的失敗

· 性能測(cè)試三大節(jié)點(diǎn):

  1. 數(shù)據(jù)提取、存儲(chǔ)效率

  2. 數(shù)據(jù)處理效率

  3. 子組件工作效率

· 大數(shù)據(jù)測(cè)試不同于傳統(tǒng)的測(cè)試,不僅僅是類型、策略的不同,工具等具體技術(shù)都會(huì)有區(qū)別

· 大數(shù)據(jù)因其復(fù)雜性,其測(cè)試所面臨的挑戰(zhàn)也會(huì)不同于傳統(tǒng)的測(cè)試

· 大數(shù)據(jù)性能測(cè)試將會(huì)是軟件測(cè)試工程師進(jìn)一步艱難攻克的目標(biāo)之一

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容