Деградация современного ПО
В погоне за коммерческой выгодой современные отделы тестирования и обеспечения качества IT-компаний
стали забывать о реальном положении вещей в индустрии.
Жадность и желание получить максимальную прибыль за разработанный продукт стали максимальным приоритетом для владельцев, в ущерб качеству.
В данной статье я буду приводить примеры кейсов, на которые стоит обратить внимание при реализации жизненного цикла ПО с учетом QA.
Начнем с простейшего вопроса — это ресурсы.
Каждый человек в современном мире, живущий в мегаполисе, обладает такими девайсами как ПК/Ноутбук и мобильный телефон.
Как правило (чаще всего, нужное подчеркнуть) ПК/Ноут в большинстве случаев на OS Windows, а мобильный телефон — это смартфон на OS Android.
И вот здесь я сейчас буду конкретизировать совершенно стандартные жизненные ситуации при использовании программного обеспечения, которые позволят
читателям понять действительную деградацию современного обеспечения качества.
Телефон и его стоимость
Ни для кого не секрет, что мобас на андроиде в широких пределах стоит от 100 до ~бесконечной суммы в долларах.
Всё зависит от стоимости камеры + начинка по железу по оперативной памяти, CPU и размера жесткого диска для хранения фоток и видосов.
Большинство приложений для андроида пишутся на языках семейства Java — сама джава, kotlin ну и вот это вот всё.
А теперь я расскажу реальный пример из жизни.
Один раз несколько лет назад я разбил свой телефон на андроиде и решил купить новый.
Денег на новый тогда было достаточно мало, поэтому я купил новый за $150.
По хардвэйр компонентам — это 2 ядра по 1.2Hz на 4 потока, 3GB оперативки и 32 GB диск для фоток не с самой мегапиксленой камерой.
И всем наверняка знаком кейс — телефон начинает тормозить через полгода/год эксплуатации.
И все знают 2 способа решения этого вопроса — купить новый или гуглить.
Я выбрал второй — и моментально нашел, что есть такой пункт меню в настройках «Обслуживание устройства», в котором есть волшебная кнопка с очисткой памяти.
И вот на этом абзаце начинается самая интересная часть этой статьи, а именно деградация системы QA.
При нажатии на кнопку пункта меню я вижу, что у меня общее кол-во ОЗУ 3GB, зарезервировано 300MB, что-то на OS и предлагается закрыть фоновые приложения, чтобы очистить память.
И конечно я жму — и что получаю как неожидаемый результат — памяти стало меньше и мобас начинает сильнее глючить.
Повторяю процедуру — и вижу, что вычисленное значение свободной ОЗУ считается неправильно, неверное округление.
и вот тут я задумался.
Тезисы:
Разработчики на Java и этом семействе языков в компании Гугл совершенно не понимают про типы данных и их преобразования
Бизнесу совершенно неинтересны кейсы про «тормоза» на устройствах
QA совершенно забыли про негативные кейсы, тестируют только позитивные
В современном мире очень удобно стало скейлить сервисы на kubernetes, покупать новые девайсы вместо старых тормозных
и ссылаться на техническую сложность при разработке, писать многопоточку и абстрагироваться от хорошего кода с помощью SOLID, DRY итд.
А по факту даже в самых крупных и крутых IT-гигантах уровень разработки и тестирвания просто упал.
А теперь скрины — нет, это не с телефона, это просто косяки самого хабра
Мне за современное IT просто становится стыдно.