Testeninska teorija programiranja je povezana s kompleksnostjo različnih programskih struktur. Tako kot so testenine različnih velikosti in oblik, enako velja za programsko kodo. Pri teoriji testenin se določena vrsta testenin uporablja kot barvita ilustracija za prepoznavanje nekaterih vidikov, povezanih z določenim naborom programskih protokolov.
Odličen primer teorije programiranja testenin je koda špagetov. Kuhani špageti se pogosto postrežejo kot skupek pramenov, ki se križajo in prepletajo drug z drugim. Praktično je nemogoče izvleči en pramen špagetov, ne da bi povzročili določeno stopnjo motenj drugim pramenom.
S to vrsto teorije testenin se razume, da je programski napor nekoliko naključen in kaotičen. V programski kodi je malo ali nič prave strukture. Končni rezultat je, da poskus spreminjanja kode, povezane z enim delom zaporedja, pogosto povzroči nepričakovane težave z drugim delom kode. Posledično je kodo špagetov izjemno težko razumeti v smislu logičnega napredovanja in enako težko spremeniti, ne da bi ustvarili nove težave.
Nasprotno pa se teorija programiranja testenin lahko nanaša tudi na programiranje, ki je zelo strukturirano. En primer te vrste teorije je znan kot koda lazanje. Lazanje je večplastna jed za testenine, pri kateri so sestavine namerno in dosledno nameščene med plasti rezancev za lazanje. Končni rezultat so testenine, ki so po vsej enotne in se zlahka razgradijo na prepoznavne sestavine.
Ko teorija testenin ali programiranje uporablja izraz koda lazanje za sklicevanje na programsko prizadevanje, poudarja logiko in red, ki se zdi, da urejata celotno strukturo vključene kode. Možno je spremeniti dele kode, ne da bi ustvarili nepričakovano reakcijo nekje kasneje v obdelavi kode. Logično napredovanje in zaporedje sta značilnost kode za lazanje, zaradi česar je nasprotje bolj kaotične kode za špagete.
Koncept teorije programiranja testenin se običajno pripisuje Raymondu Rubeyu. V pismu, ki ga je leta 1992 napisal trgovinski reviji, je Rubey uporabil terminologijo, povezano z ravioli in špageti, za sklicevanje na strategije in situacije programiranja. Splošna ideja o testeninski teoriji programiranja se je prijela in kmalu so številni programerji, ki uporabljajo različne vrste testenin, začeli označevati različne metode programiranja. V nekaterih primerih je izbira imen testenin kazala na koristne lastnosti danega pristopa programske kode, medtem ko so se drugi nanašali na metode programiranja, ki so veljale za manj učinkovite in strukturirane.