Інструменти необхідні для тестування Linux p>
Максим Уваров p>
Введення p>
Дана
стаття являє собою набір тих утиліт, з якими доводиться
стикатися QA інженеру при тестуванні linux/unix подібних ТАРГЕТ. Тут
описані лише деякі, основні інструменти, з якими Вам напевно доведеться
працювати. Ця стаття буде корисна тим людям, які тільки збираються
тестувати пристрої з Лінукса і мало знайомі з тими програмами, які їм
має використовувати. Стаття складається в основному з назви програми та
короткого опису, опису того, яким чином можна її використовувати для
тестування. Хотілося б сподівається, що вона стане початком wiki сторінки з
приблизно такою ж назвою. p>
В
даній статті мені хотілося б розповісти про інструментах для тестування
програм на базі linux. Але більшість цих рішень буде застосовне до
більшості unix-based систем. Склалося так, що більшість додатків - це
консольні програми, які легко автоматизувати. p>
В
Лінуксі всі програми можна розділити на наступні групи: p>
a) ядро (kernel) p>
Сюди
відноситься саме ядро, модулі ядра, і userspace level управління ядром (мається
через/proc та/sys інтерфейси). Оскільки саме ядро написано на С і ASM, то для
тестування вам в основному доведеться використовувати саме С. Звичайно це
невеликі тестові модулі ядра, що перевіряють будь-які функції, або модуль з
різними параметрами + скрипт. Як показує практика краще використовувати не один
модуль перевіряючий відразу всю фічу, а багато модулів перевіряючих кожну функцію
окремо. Варто також не забувати перевіряти всі можливі коди повернення
функцій. p>
б) для користувача програми (userspace level) p>
Будь-які
програми що працюють на операційній системі. Тут все не однозначно, все
залежить від програми. Природно якщо програма написана наприклад на Java, то
вам знадобиться сама Java, хоча б для того, щоб переконається, що програма
взагалі збирається. p>
в) ядро + призначені для користувача програми p>
Швидше
всього з цим видом додатків Вам доведеться зіткнуться найбільше. Дана
схема містить у собі ядерний драйвер, що забезпечує низькорівневий зв'язок з
будь-яким пристроєм і призначену для користувача програму. p>
Інструменти p>
Linux
дуже зручний для програмування та тестування. Практично всі потрібні
інструменти присутні в будь-якому діструбутіве або їх можна беспріпятственно
завантажити, так як вони розповсюджуються під вільною ліцензією. Спробуємо
описати всі необхідні інструменти: p>
- GCC - Gnu C compiler p>
Основний
C, компілятор C + + linux. Якщо вам треба протестувати сам компілятор, то на
сайті gcc є тести (входять в исходники gcc3.0 наприклад). Компіляція з
опцією-g дозволить зробити налагодження за допомогою gdb. p>
- bash p>
Оболонка
bash теж є в кожному дистрибутиві. Дуже зручна для написання скриптів. P>
- expect p>
Теж
є практично в кожному дистрибутиві, використовується для автоматизації
якого-небудь процесу. Простий, але не дуже зручний синтаксис TCL. p>
- expect-perl і expect-python (pyexpect) p>
Бібліотеки
expect для скриптових мов perl і python. p>
-gdb-Gnu Debuger p>
Стандартний
C/C + + відладчик. Має дуже багато можливостей, якщо ви їм не разу не
користувалися, то раджу з ним ознайомиться. Використовуйте kgdb для ядра. P>
-ltt - Linux Trace Toolkit p>
Якщо
ваше ядро підтримує LTT, то ви можете переглянути активні
процеси/системні виклики в даний процес часу. p>
-import і gimp p>
Утиліта
import з imagemagic і програма gipm можуть використовуватися для зняття
скріншотів при тестуванні графічних додатків. p>
-minicom p>
Термнімальная
програма для ручного тестування. Якщо потрібно автоматизувати роботу з
консоллю, то краще використовувати expect (або в зв'язці з "cat" і
"echo", або просто відкрити/dev/ttySx як файл; іноді другий випадок
не підходить). p>
-ltp - Linux Test
Suite Page [ltp.sf.net] p>
Дуже
гарна колекція тестів. Включає в себе тести файлових систем, системних
дзвінків і багато іншого. p>
-netperf p>
Утиліта
що дозволяє перевірити продуктивність мережі. p>
-ircp, irdump, openobex p>
Уліліти
для перевірки інфрачервоних порту. p>
-telnet, ssh p>
Віддалений
shell. Якщо потрібно часто вводити одні й ті ж команди, можна
скористатись expect. Є в будь-якому дистрибутиві. P>
Список літератури h2>
Для
підготовки даної роботи були використані матеріали з сайту http://software-testing.ru/
p>