#devchallenge
⭐️ Завдання №2 - нефункціональне тестування
За легендою учасники отримують для тестування CLI застосунок для шифрування тексту шифром Цезаря. Документація до нього втрачена, але вважається, що функціонує він більш-менш правильно, а от як він працює - викликає питання, тож є потреба провести нефункціональне тестування застосунку і надати список багів з вказанням нефункціональної категорії якості.
Я вже кілька років хотів реалізувати щось подібне, бо чергове тестування web-застосунків набридло і не викликає відчуття challenge’у, незвичного досвіду, за яким всі і приходять.
Проблеми почались з розповсюдження застосунку. Я написав його на Python і за допомогою PyInstaller зкомпілював в виконавчий файл, який можна запустити де завгодно. Але поточна ситуація на ринку ОС і заліза викликає в мене занепокоєння. Разом з колегами, ми зробили білди для:
🟢Windows x64
🟢Linux x64 Ubuntu
🟢Linux x64 OpenSuse
🟢Mac OS x64
🟢Mac OS arm
Я радію, що в учасників не було Windows та Linux на arm, бо не уявляю, де б я це збирав 😅
І більшість учасників, хоч і не з першої спроби - але запустили застосунок і протестили!
✅ Expected results
🟠Performance: програма працює тим повільніше, чи більше символів вводиш для шифрування. Я використав квадратичну прогресію для наглядного ефекту
🟠Performance: програма на старті “з’їдає” 1 Гб RAM. Я хотів, щоб хоч хтось глянув у монітор ресурсів
🟠Compatibility: програма каже, що несумісна з вашою версією ОС. Я це захардкодив, але з точки зору black box тестування я б про це повідомив
🟠Usability: Я використав найдивніші консольні аргументи, які тільки зміг придумати. Типові ключі: -h - для допомоги, -f для файлу. Я використав випадковим чином взяті букви, деякі капсом, щоб було не зручно
🟠Maintainability: програма створює конфіг, який нічого не робить. Наповнив рандомними значеннями, які ні на що не впливають
🟠Reliability: а ні, впливають. В конфізі є лічильник версій, які збільшуються при кожному використанні програми. Як тільки він доходить до 7, програма ламається і каже почистити конфіг
🟠Usability: вже писав вище, що програма пише про версію ОС, але я це пишу стильно: You ÕS veršioÑ Ïs depræ¢åted. Pleasê update y¤ur 0S to the ¬§µðÂЇØçÞ vè®S1Öñ
🟠Usability: коли програма шифрує, вона виводить купу інформації на екран, яка робить користування менш зручним. Баг - відсутність акуратності і єдиного стилю в інтерфейсі
🟣О, а ще я додав дідівський мем - rickroll. Якщо попросити програму зробити rroll, вона за 5 секунд видасть посилання на відео. І це не баг, це фіча. За цей звіт ми віднімали бали
⚠️ Actual results
🟠Мало багів! Я перелічив 9, всього їх заклав ~14, але в звітах читав в середньому лише 5
🟠Багато багів не містили конкретних прикладів. Народ, якщо ви вводите команду caesar.exe --file
, і у вас помилка - напишіть цю команду для копіпасти, а не описуйте словами, що ви там вводили
🟠Також я бачив багато описів багів без конкретних цифр: “програма працює повільно” - дуже поганий опис. “Програма споживає пам’ять” - мені приємно, що хоч хтось подивився, але всі програми її споживають, тут замало конкретики
🟠Лише кілька людей написали, що конфіг зайвий
🟠Багато хто писав функціональні баги, що було не правильно, функціональні вимоги невідомі, і те, що в моїй програмі після букв йдуть цифри, а потім спецсимволи - так і задумано. Час витрачено даремно
🟠Мій топ діамантів з баг репортів:
➡️Non-functional quality characteristic: Functionality
➡️Displayed description in another alphabet language (це про символи в версії ОС)
💡 Загальне враження - Я люблю теорію тестування, а саме стандарт якості ПЗ, і постійно до неї звертаюсь при дослідницькому тестуванні. Я очікував побачити більшу винахідливість в тестуванні застосунку локально, але в тих роботах, що я перевіряв, не було навіть жодної спроби декомпіляції, щоб написати мені за поганий код та купу sleep’ів 🥲