Varnost tipov je del računalniškega programiranja, ki pomaga preprečiti ustvarjanje hroščev, ki se pojavijo, ko se program zažene. Če je varnost tipa ohlapna, obstaja velika verjetnost, da bo prišlo do napak, ki lahko povzročijo različne napake. Najpogostejši način za zagotovitev, da do teh napak ne pride, je uporaba močnega kodiranja. Čeprav imajo številni programski jeziki samo po sebi funkcije, ki zagotavljajo zvestobo programiranja in preprečujejo napake, lahko slabo kodiranje te funkcije postane nemočne. Programski jezik lahko preveri te napake na dva načina – statični ali dinamični – in oba sta lahko učinkovita.
Napake so pogoste v programih in kodiranju, pri varnosti tipov pa se napaka pojavlja predvsem zaradi različnih tipov podatkov, ki niso ustrezno urejeni. Napake, ki se lahko pojavijo, segajo od nominalnih do resnih, vendar je večina ponavadi resnih. To lahko izklopi program ali pa lahko slabo kodiranje povzroči hujše težave, zaradi katerih je kodiranje neuporabno in razdrobljeno.
Obstaja veliko načinov za zagotovitev varnosti tipov, vendar je eden od lažjih in pogostejših načinov uporaba močnega kodiranja tipa. Za razliko od mehkejših metod kodiranja, ki lahko programskemu jeziku omogočijo, da nepravilno definira nerodno kodiranje, je močno kodiranje zelo neposredno. Močno kodiranje uporablja tudi pravila in predpise, da zagotovi, da kodiranje ni nepravilno definirano in da je malo napak.
Kršitev varnosti tipa lahko povzroči velike težave, zato so številni programski jeziki sprejeli funkcije za preizkušanje in odpravo teh težav – ali opozarjanje programerjev na te težave. Preden programiranje nadaljuje z izvajanjem, bo jezik preveril pogoste napake in običajno prekinil zagon izvajalnega okolja, če bodo zaznane napake. Hkrati so te funkcije lahko neuporabne, če programer ustvari zelo slabo kodiranje. Jezik ne bo mogel prepoznati običajnih znakov varnosti tipov, zato se bo program zagnal, čeprav pride do napake.
Obstajata dve metodi za odkrivanje morebitnih varnostnih težav pri tipih, ki se uporabljajo samo za programske jezike, ki samodejno preverjajo napake. Statične metode preprosto iščejo pogoste znake težave, ko se program nadaljuje med izvajanjem. Druga metoda, dinamična, temeljito preveri kodo in išče vlogo vsakega kodirnega elementa v programu za delce. Nato išče po celotnem programu, da ugotovi, ali obstaja posebna izjema za kodiranje, ki bi lahko bila napaka, nato pa jo prepusti ali ustavi zagon programa.