<cite id="ffb66"></cite><cite id="ffb66"><track id="ffb66"></track></cite>
      <legend id="ffb66"><li id="ffb66"></li></legend>
      色婷婷久,激情色播,久久久无码专区,亚洲中文字幕av,国产成人A片,av无码免费,精品久久国产,99视频精品3
      網易首頁 > 網易號 > 正文 申請入駐

      我用AI開發數據庫,沒想到被狠狠地教育了......

      0
      分享至

      我在之前的文章中介紹過SQLite,這是個嵌入式數據庫,也是世界上最流行的數據庫。


      (詳情參見這篇文章:)

      有一天我突發奇想:既然是嵌入式數據庫,那應該不復雜,能不能用AI寫一個?

      說干就干,我把SQLite的架構文檔發給了AI,讓它根據現有架構來實現。

      你別說,AI實現得相當不錯,把Tokenizer,Parser,Code Generator,Bytecode Engine這些核心的概念都考慮到了,代碼寫得也不錯,著實是讓我吃驚。


      但是,當我看到SQLite的測試的時候,我就知道,現在的AI,想寫出SQLite級別的代碼,恐怕是做夢。

      因為SQLite簡直不是一個軟件,而是個怪物

      截至 3.42.0 版本(2023-05-16),SQLite 庫本身大約包含15.58萬行C代碼。

      而測試代碼和測試腳本腳本加起來一共有9205萬行,是核心代碼的 590 倍!

      不是5倍,50倍,而是590倍

      測試的目標不但要覆蓋“功能”,還要覆蓋分支,覆蓋異常,覆蓋現實世界的災難。

      SQLite設立了4套“互不信任”的測試體系,避免同一思路的盲區。

      0 1

      “保命”測試

      首先,它用TCL寫了一套“日常保命測試”,測試腳本有1390個文件,一共23.2M,包含了51,445 個不同的測試用例,參數化執行,會跑出數百萬測試。

      開發者日常主要依賴一個非常快的、幾分鐘就能跑完的子集,用于每次提交前自己檢查。

      0 2

      “徹底”測試

      SQLite有一套私有的C語言測試系統(名稱為TH3),為 SQLite 核心庫提供 100% 分支覆蓋率。

      這個數字是非常恐怖的,大家都知道覆蓋所有分支很麻煩,例如這行代碼:

      }

      想要達到100%分支覆蓋,至少需要3個測試用例:

      (1) a<=b

      (2) a>b 且 c==25

      (3) a>b 且 c!=25

      除了分支覆蓋,SQLite還是是實現了100% MC/DC 覆蓋率。

      MC/DC(Modified Condition/Decision Coverage)是航空、核工業級別的測試標準。也就是說SQLite 把一個嵌入式數據庫,按飛控軟件的標準來測。

      TH3有個非常重要的特點,就是不靠“后門”,只是用SQLite公開的API接口,完全模擬用戶的行為。

      TH3 包含大約 76.9MB、100萬行C 代碼,實現了 50,362 個不同測試用例。

      在發布之前的一個長時間壓力測試中,會執行2.485億次測試。

      0 3

      對標測試

      這是一個裁判性測試,它將大量 SQL 語句同時運行在 SQLite 和其他4個數據庫引擎(PostgreSQL、MySQL、SQL Server、Oracle 10g )上,并比較結果是否一致。


      換句話說,SQLite 不只要自洽,還要和“行業共識”對齊。

      這個測試共運行 720 萬條查詢,測試數據總量 1.12GB。

      0 4

      模糊測試

      模糊測試通過向SQLite提供無效、意外或者隨機數據來測試它的健壯性。

      例如這樣的SQL語言:

        CAST('999999999999999999999999' AS INTEGER) < 0;

      它完全符合SQL語法,但是幾乎不可能是人寫的,因為它精準命中了“超大內存申請”,“整數溢出”,“負索引”等極端情況。

      更殘酷的是,模糊測試還會破壞數據庫文件(.db),對它做隨機位翻轉、截斷、重復、拼接。

      例如,這是原始的數據文件(簡化):

      [Header][Page1][Page2][Page3]

      模糊測試工具把它改成:

      [Header][Page1][Page1][亂碼][Page3][Page3]

      然后嘗試去打開它:

      sqlite3_open("mutated.db", &db);

      SQLite要做到不崩潰,不越界,不死循環,要么報錯,要么優雅失敗。

      最后,模糊測試還會開關所有的宏定義,對不同的編譯器設置不同的編譯優化級別,讓同一條SQL在不同的情況下瘋狂運行,瘋狂地鞭打SQLite,折磨SQLite,直到它漏出所有的破綻。

      由于SQLite在嵌入式領域非常流行,手機、路由器、車載、工業設備等在大量使用它,所以它特別注重對異常情況的處理。

      內存不足測試

      在服務器和工作站上,內存分配malloc()幾乎不會失敗,在嵌入式設備上,OOM就太常見了,SQLite必須得能優雅的處理OOM錯誤。

      SQLite的測試框架(自己寫的)可以插入自定義的可控的malloc函數,設置成在調用一定次數后內存分配失敗,這樣就可以在循環中執行SQLite操作,確保能處理OOM錯誤。

      I/O錯誤測試

      磁盤空間不足、磁盤硬件故障、網絡中斷、SQL操作過程中發生的系統配置或權限更改,或其他硬件或操作系統故障......無論原因如何,SQLite 必須能夠正確響應這些錯誤。

      測試的方法和OOM測試類似,都是模擬I/O錯誤,然后檢查SQLite能否正確響應

      崩潰測試

      應用系統崩潰,操作系統崩潰,數據庫更新過程中斷電,SQLite都不能發生故障。

      這也是SQLite“原子提交”能被信任的原因。

      復合失效測試

      先發生I/O錯誤,然后出現OOM,再搞一個崩潰..... 保證程序還能正常運行。

      SQLite的這些測試,它的數量、完善程度和復雜程度,看起來真是讓人脊背發涼。

      這得付出多年的努力,經歷多少事故才能寫出來啊!

      被這樣測試保護的軟件,代碼質量可以說是固若金湯了。

      AI能寫出這樣高質量的SQLite嗎?

      寫個玩具版是可以的,但是想要復刻是萬萬不行的。

      SQLite這種“高質量”不是體現在代碼本身,而是體現在幾十年積累的測試體系、失敗經驗和工程紀律上。

      AI 可以幫助我們寫實現、補測試、找 bug,但無法憑空生成那些來自真實事故、長期演化出來的異常場景和驗證策略。

      換句話說,AI 能參與寫 SQLite,但還不能“獨立孕育”一個 SQLite。

      SQLite只是一個嵌入式數據庫,就已經恐怖如斯了,那些更加復雜的數據庫會怎么樣呢?

      歡迎了解詳情的朋友在評論區留言!

      特別聲明:以上內容(如有圖片或視頻亦包括在內)為自媒體平臺“網易號”用戶上傳并發布,本平臺僅提供信息存儲服務。

      Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

      相關推薦
      熱點推薦
      1.9秒一單狂破世界紀錄!安徽小縣城憑三樣小吃,火遍整個長三角

      1.9秒一單狂破世界紀錄!安徽小縣城憑三樣小吃,火遍整個長三角

      青眼財經
      2026-04-25 23:05:36
      別人對你說“咱倆加個微信”,千萬別說 “您掃我還是我掃您?” 高情商的人這樣做

      別人對你說“咱倆加個微信”,千萬別說 “您掃我還是我掃您?” 高情商的人這樣做

      德魯克博雅管理
      2026-04-23 17:02:27
      宇航員登月回歸后精神失常,死前坦言:人類不應踏足遠方

      宇航員登月回歸后精神失常,死前坦言:人類不應踏足遠方

      清茶淺談
      2024-12-20 22:30:46
      事態升級,中方軍艦越聚越多,四川艦和遼寧艦匯合,菲日休想鬧事

      事態升級,中方軍艦越聚越多,四川艦和遼寧艦匯合,菲日休想鬧事

      甜到你心坎
      2026-04-25 09:50:11
      外貿玩具工廠突發通知:即日起停業破產,上千人飯碗被砸!

      外貿玩具工廠突發通知:即日起停業破產,上千人飯碗被砸!

      燈錦年
      2026-04-26 14:03:21
      鄭州一村吃席只有3個菜!煙酒不超40,每桌140,網友:請全國推廣

      鄭州一村吃席只有3個菜!煙酒不超40,每桌140,網友:請全國推廣

      小秋情感說
      2026-04-26 09:35:44
      葛斯齊再爆猛料,大S身后事細節太出人意料

      葛斯齊再爆猛料,大S身后事細節太出人意料

      小椰的奶奶
      2026-04-26 20:42:18
      港媒:中國正從伊朗的廢墟中汲取關于“持久戰”的冷酷經驗

      港媒:中國正從伊朗的廢墟中汲取關于“持久戰”的冷酷經驗

      矚望云霄
      2026-04-24 23:33:38
      4月28日正式開播!中央八套黃金檔好劇來襲!全員演技在線

      4月28日正式開播!中央八套黃金檔好劇來襲!全員演技在線

      琴琴有氧運動
      2026-04-26 14:30:35
      上港隊長王燊超:娶了申花球迷,37歲仍征戰中超,恩師盼他回崇明

      上港隊長王燊超:娶了申花球迷,37歲仍征戰中超,恩師盼他回崇明

      林子說事
      2026-04-26 08:49:40
      王近山不經請示干掉日本戰地觀戰團,毛主席:早就聽說有個王瘋子

      王近山不經請示干掉日本戰地觀戰團,毛主席:早就聽說有個王瘋子

      鶴羽說個事
      2026-04-20 22:56:36
      300965,重大資產重組!明天停牌!

      300965,重大資產重組!明天停牌!

      證券時報e公司
      2026-04-26 17:29:23
      商務部新聞發言人就美眾議院外交事務委員會通過MATCH等法案答記者問

      商務部新聞發言人就美眾議院外交事務委員會通過MATCH等法案答記者問

      新京報
      2026-04-25 10:28:06
      25-26賽季CBA常規賽最佳陣容出爐

      25-26賽季CBA常規賽最佳陣容出爐

      刺猬籃球
      2026-04-26 18:42:26
      首個石油儲備完全枯竭國家出現,比菲律賓慘,還有三個國家很危險

      首個石油儲備完全枯竭國家出現,比菲律賓慘,還有三個國家很危險

      混沌錄
      2026-04-24 21:02:11
      恭喜穆里尼奧!有望空降皇馬!權威記者力挺,姆巴佩危險了

      恭喜穆里尼奧!有望空降皇馬!權威記者力挺,姆巴佩危險了

      阿泰希特
      2026-04-26 15:45:41
      西媒:西班牙首相稱“不擔心”被逐出北約

      西媒:西班牙首相稱“不擔心”被逐出北約

      參考消息
      2026-04-25 21:19:06
      白宮記協晚宴安全事件細節披露

      白宮記協晚宴安全事件細節披露

      界面新聞
      2026-04-26 10:11:44
      俄方說破天都沒用,中方就認一個理,中俄天然氣走俄羅斯國內價

      俄方說破天都沒用,中方就認一個理,中俄天然氣走俄羅斯國內價

      聊歷史的阿稼
      2026-04-26 10:25:44
      22歲國乒勁敵做出大膽預判!世乒賽奪冠勝算大漲,王皓真得拼一把

      22歲國乒勁敵做出大膽預判!世乒賽奪冠勝算大漲,王皓真得拼一把

      體話我說
      2026-04-26 13:48:21
      2026-04-26 21:47:00
      碼農翻身 incentive-icons
      碼農翻身
      有趣且硬核的技術文章
      257文章數 650關注度
      往期回顧 全部

      科技要聞

      漲價浪潮下,DeepSeek推動AI“價格戰”

      頭條要聞

      特朗普內閣又一女部長落馬:強迫男下屬為其提供性服務

      頭條要聞

      特朗普內閣又一女部長落馬:強迫男下屬為其提供性服務

      體育要聞

      森林狼3比1掘金:逆境中殺出了多孫穆?!

      娛樂要聞

      僅次《指環王》的美劇,有第二季

      財經要聞

      事關新就業群體,中辦、國辦發文

      汽車要聞

      預售19.38萬元起 哈弗猛龍PLUS七座版亮相

      態度原創

      本地
      親子
      數碼
      公開課
      軍事航空

      本地新聞

      云游中國|逛世界風箏都 留學生探秘中國傳統文化

      親子要聞

      今天我們來吃整蠱海盜桶糖果食玩

      數碼要聞

      MOREFINE上架G2外置顯卡,內置RTX 5060 Ti

      公開課

      李玫瑾:為什么性格比能力更重要?

      軍事要聞

      伊朗總統:不會在壓力、威脅下進行談判

      無障礙瀏覽 進入關懷版 主站蜘蛛池模板: 久久精品成人无码观看免费| 97无码国产精品久久久日本| jk白丝喷浆| 欧美日韩国产码高清| 亚洲精品免费视频| 九一色色里| 久久国产AV| 高h小月被几个老头调教| 成人视频在线观看18| 色婷婷欧美在线播放内射| 好紧好湿太硬了我太爽了视频| 1024免费视频| 中文精品字幕人妻熟女| 大香蕉一区| 国内偷拍精品人妻| AV无码不卡一区二区三区| 欧美区国产区| 午夜dj高清免费观看视频| 欲色天天网综合久久| 亚洲国产精品久久久久婷婷老年 | 丝袜美女国产精品一区二区| 亚洲三区在线观看无套内射| 色婷婷色| 人妻色综合网站| 東北老熟女黃色A片| 亚洲日韩成人无码| 日本久久香蕉一本一道| 日韩色图区| 亚洲a人片在线观看网址| 中文字幕无码久久精品| 97超碰人人| 漂亮的人妻少妇| 精品无码专区毛片| 连南| 无码一区二区三区免费| 3P性视频| 九九国产在线| 夜夜cao| 伊人www| 口爆少妇| 一色桃子中出欲求不满人妻|