My app passed 1,100 tests. Six minutes on a real phone found five bugs.
I'm building a budgeting app called Budget Lover. It is a personal project, written in Flutter with Firebase behind it, and it tries to answer one question: how much can I spend today? At its heart is a single "Safe to Spend" number, worked out from the balance, the bills that are coming and the person's typical spending. It speaks 15 languages, and it isn't released yet: so far it lives on an…
This reporter built a budgeting app called Budget Lover. The app is written in Flutter and uses Firebase. It calculates a single "Safe to Spend" number based on the user's balance, upcoming bills, and typical spending habits. The app supports 15 languages but had not been released yet. To test the app, the reporter installed it on a real phone and ran it in Greek, taking screenshots and recording the screen for six minutes.
During this testing, five bugs were discovered despite the app's suite of more than 1,100 automated tests passing earlier that day.
The first bug was a caption that overflowed in Greek due to a wide last word, but the app displayed the ellipsis correctly. However, a new test was added to ensure this issue didn't reoccur. The second bug involved English text appearing in a Greek screen because of a condition that the testing script couldn't account for. Two defences were added to address this problem.
The third bug was a dialog that only appeared on Sundays and had a title that didn't fit within the dialog in Greek. A layout test was added to check for overflow issues in every language. The fourth bug was a reloading screen issue caused by a soft cross-fade animation between app screens. A test was added to verify the loading screen never appeared and the text stayed visible.
The final bug was a Google sign-in issue that only occurred in the release build, resulting from a string resource shrinker removing unused strings. The app now explicitly passes the login ID to Firebase, and a test was added to check the ID against the Firebase configuration.
Written by urgent.news from Dev.to's reporting — not their text. Machine-written — may contain errors; check the original before relying on it.