Testing
Interested in testing BleachBit to ensure high-quality releases? Follow this guide.
Skills
People with various levels of technical knowledge can help test BleachBit. Though not necessary, it helpful to know any of these skills: command line use, examining user profile directories, XML, and Python.
Coverage
Ideally all volunteer testers would always tests all parts of BleachBit on all platforms. Complete test coverage is unrealistic, so test at your own pace. Focus on testing the items noted for the latest beta, and then test as many items as possible on this page. If you don’t test everything, focus on different tests rather than repeating tests you already completed.
Testing environment
Ideally you would be testing the latest, bleeding-edge code from Git. Otherwise, test the latest beta or latest stable release.
Testing is needed on all supported platforms with latest versions of applications. In some cases it helps to test old versions of software (such as Google Chrome), so start with FileHippo and the Browser Archive.
Test with popular antivirus/security software such as Norton, AVG, McAfee, Avast, and Bit Defender. (Sometimes antivirus software has false positives which cause errors in BleachBit.)
To avoid potentially damaging your system and to test additional platforms, consider testing in a virtual machine such as VirtualBox, but to maintain the authenticity of the test, you may want to copy your user profile (all the settings for all your software) from your real machine to the test machine. Also, use VirtualBox’s snapshot feature to quickly roll back changes (to basically undelete any changes BleachBit made).
Installation
For Microsoft Windows:
- If a previous installation is in place, the new installation will guide you through uninstalling it before you can install the new version.
- Uninstalling will remove any shortcuts created by the installer in the start menu, desktop, quick launch menu, and startup folder.
Startup
These are some parts to test related to application startup.
Microsoft Windows
- Starting BleachBit will immediately show the UAC prompt. Whether you accept or decline the UAC, BleachBit will start (with or without administrator privileges). When BleachBit starts, click Help - About - System Information and verify
IsUserAnAdmin
is False or True (depending whether you accepted or denied the UAC) . - Right click on the BleachBit shortcut and left click ‘Run as Administrator.’ When BleachBit starts, click Help - About - System Information and verify IsUserAnAdmin is True.
Linux
- Start BleachBit with all these combinations: as a normal user, as root (logged in as root), with sudo, with gksu, with consolehelper, with the command line, and with the applications menu (GUI).
- If running BleachBit with sudo, any new files and directories created in
~/.config/bleachbit
should be owned by the non-root user. To test this, rename or delete the configuration and run under sudo.
Localization
BleachBit is translated to many languages. Testing should include:
- When starting, BleachBit automatically recognizes the preferred language set in the operating system. In Linux, this is set by the
LANG
environment variable. In Windows,open the Control Panel, click on Regionalization, choose your language under Standards and Formats. - Spelling and grammar are correct.
- Phrases are translated in the correct context. For example, the single English word ‘Delete’ can be translated various ways to Italian depending whether it is in the menu or the BleachBit log, and it is not correct to use the same translation for both.
- The translation is accurate: the meaning of words and phrases are the same as in English.
- Words are used consistently. For example, in English the terms directory and folder mean the same thing.
- Appearance is normal. For example, BleachBit 0.7.1 added line wrapping to the preferences dialog, so it wouldn’t stretch too wide in some non-English languages.
- In Linux, test an invalid local like this:
LANG=notreal bleachbit
- In Linux, test non-Unicode local like this:
LANG=en_US bleachbit
You may changeen_US
but do not add UTF-8 to the end. BleachBit 0.7.1 fixed a bug when the display was not Unicode and a filename had invalid encoding.
Preferences
Linux
The first time BleachBit is run, it should automatically select your language and English. Check in Preferences - Languages. To simulate running BleachBit for the first time, delete or rename ~/.config/bleachbit.
Delete
Clicking the delete button on the toolbar should always show a confirmation, and the default button on the confirmation dialog should be cancel.
General testing guidelines
After cleaning an application, run the application to make sure:
- It still works correctly. For example, in BleachBit 0.6.0, cleaning Places in Firefox would cause Firefox not to save bookmarks.
- No unannounced changes were made.
- All the requested changes were made. For example, BleachBit 0.7.1 did not delete stored passwords for Firefox 3. See CleanerML documentation for advanced instructions on finding more files to clean.
Google Chrome
Always test Google Chrome because it is one of the most-used cleaners.
Special cleaners
Special cleaners perform operations more advanced than simply deleting files. These cleaners include:
- Wipe free disk space
- Wipe memory and swap (Linux)
- Clear URL history in Firefox
- Clear OpenOffice.org history
- Delete broken .desktop files
- APT
- Yum
- Clipboard
- Vacuuming Firefox, Liferea, Yum
- Empty Windows recycle bin
Mark for deletion
On Windows, it’s often necessary to mark a file for deletion because it is locked by a running process. Test this by cleaning the system temporary files and Internet Explorer.
Abort
During a long preview or a delete operation (such as localizations or free disk space), close the application window (the X in the corner). Then, verify the BleachBit process closes quickly (maximum of 5 seconds) using a tool such as top or Windows Task Manager.
Unit tests
If you are comfortable using the command line and are prepared to run BleachBit from source code, run the unit tests with this command:
python3 tests/TestAll.py
To run a special test case (such as General):
python3 -m unittest tests.TestGeneral
To run a specific test:
python3 -m unittest tests.TestGeneral.GeneralTestCase.test_boolstr_to_bool
Normally the unit tests skip over any permanent changes to your system, but if you want to enable destructive tests (which make changes without any confirmation!) set the environment variable DESTRUCTIVE_TEST=T
. Use with caution! Normally you would only enable destructive tests on a test machine such as a virtual machine. On Linux enable destructive tests like this:
export DESTRUCTIVE_TESTS=T
On Windows enable destructive tests with:
set DESTRUCTIVE_TESTS=T
To avoid changing your normal bleachbit.ini
configuration file, set the environment variable BLEACHBIT_TEST_OPTIONS_DIR
to an alternate directory. When the tests are called from TestAll.py
, the environment variable is automatically set to a temporary directory.
Release notes
Release notes of beta versions contain instructions for testers on what to do and the expected results.
Release notes of stable versions list bugs that were fixed, and you can test whether they were thoroughly fixed and that there were no regressions. On recent releases, you will find links to lists of closed issues on GitHub where you can find more technical information.
Questions?
If you need help testing, ask a question.
Filing new bugs
When you found a bug, report it to the bug tracker. Follow the guidelines for filing good bug reports.