UProLa

Неокріпші думки

Тестування ПО

leave a comment »

Час від часу я слідкую за проектом Kona, відкритою реалізацією мови програмування K. Оскільки проект опенсурсний, в ньому присутні помилки. Найсерйозніші з них призводять до звертання у невиділену область оперативної пам’яті і вбивають програму з написом “Segmentation fault”.

Мова К має складний алфавіт, і дуже компактна, тому тестувати всі режими роботи на наявність помилок, м’яко кажучи, напряжно. Як автор вирішує таку проблему?

Досить елементарно. Він генерує рандомні програми (на К) і проганяє через інтерпретатор. Зробити помилку в синтаксисі досить складно, оскільки майже всі оператори і функції односимвольні. Помилки в семантиці відловить інтепретатор. А ось помилки в коді вилізуть через Segmentation fault! Тобто, не написання тестів, а прогонка через рандомні програми дозволяє протестувати даний софт на пригодність!

Приведу список програм, для яких виявлено некоректну роботу менеджера пам’яті (одна програма на рядок):

9-2-0n-5-5<,&,0I
<5:858\::6:!!
0I@-0i-0i`%0I#7-2
6+`0n-0N?<-3,-4
0-8^-4&1/::=-
;-0i#=-;`/::-8
8-35-0I-0I-0N#0n1-3
?%-5$-3'::-6>
0n9#-0n'::&;,<
^_%/:5?=<-0I4
<~6-2*-4?-0N?-0
-0N5/::913<-0N-1
=;3':&+0I4,4
=[>=]-3:@-2-1
-0|9'::-1>-0!-5
-0*!-2-5/::-4><
-5?-8\::?3-9/:,
.`_9;#\:\:?8
.:|`"3-7-32"
-2/::-6;73--5-5
`,>449/::19
-75-3`_,03%-7
1::1

Більше жодна мова (окрім APL і J, звісно) не дозволить тестувати транслятор або інтерпретатор подібним способом без додаткової мороки, адже синтаксичні і семантичні помилки будуть траплятись НАБАГАТО частіше, ніж інші. Я вважаю це WIN.

Written by danbst

Червень 23, 2011 at 19:27

Оприлюднено в Програмування

Залишити відповідь

Заповніть поля нижче або авторизуйтесь клікнувши по іконці

Лого WordPress.com

Ви коментуєте, використовуючи свій обліковий запис WordPress.com. Log Out / Змінити )

Twitter picture

Ви коментуєте, використовуючи свій обліковий запис Twitter. Log Out / Змінити )

Facebook photo

Ви коментуєте, використовуючи свій обліковий запис Facebook. Log Out / Змінити )

Google+ photo

Ви коментуєте, використовуючи свій обліковий запис Google+. Log Out / Змінити )

З’єднання з %s

%d блогерам подобається це: