{{Header}}
{{Title|title=
{{project_name_short}} How to test an OS
}}
{{#seo:
|description=Testing OS installation and Post Installation
|image=
}}
{{intro|
Testing OS installation and Post Installation
}}
= Overview =
Testing the operating system after the first release cycle (for testers) is an important phase in development that every project producing complex software must go through. The testing phase contains a lot of steps that vary and depend on the project being tested.
= Testing the operating system before installation =
== Supported Installation Medium ==
For Whonix and Kicksecure, we have:
=== Libvirt ===
KVM: .libvirt image installation for KVM (GNU/Linux only; preferably tested on a Debian host and another common host used by users running the latest or near-latest KVM version, such as Arch, Fedora, or NixOS.. etc).
=== OVA ===
VirtualBox: .ova image installation for VirtualBox (priority for Windows users running the latest Windows version and the latest VirtualBox version; then GNU/Linux users running the latest VirtualBox version, e.g. from the VirtualBox repository on Debian or similar case).
=== Qubes ===
* Qubes: From Qubes repository for both KS and Whonix.
=== ISO ===
.iso installation should be tested on all supported hypervisors, as it can produce unexpected results e.g a completely black screen when booting the .iso for installation inside Qubes HVM due to a resolution issue [ [https://github.com/QubesOS/qubes-issues/issues/10424 10424] [https://github.com/QubesOS/qubes-issues/issues/10426 10426] ].
== Before and During Installation ==
* Download URLs are all functional with proper speed
* Validate checksum and signature verification (including the website instructions for verification).
* Follow the website instructions for the installation (if updated and available to the current version being tested) to check whether everything works the same or needs updating to report later.
* Booting time is normal.
* Legacy VS UEFI boot for the OS.
* Secure Boot and TPM (if supported/used).
=== For ISO specific ===
* No errors, failures, warnings, or unexpected behavior during ISO boot; if any occur, verify whether they are normal/expected.
* Boot into live mode.
** If live mode boots as expected, check:
*** Internet connectivity (Static/Manual and DHCP, Wire/Wireless).
*** Browser functionality.
*** OS can read external flash/hard drives.
*** Sound/audio, mic and camera are working.
*** Any other expected tools are installed and functional (text editor, office suite, etc).
* Boot into installation mode.
** If installation mode boots as expected, check:
*** Changing language (all expected options are displayed and functional).
*** Changing region/location (all expected options are displayed and functional).
*** Changing/adding keyboard layouts (all expected options are displayed and functional).
*** Changing number and date format (all expected options are displayed and functional).
*** Partitioning is functional (automatic/default and manual).
*** Encryption is functional (note: also installing without encryption).
*** Other options, if available, such as file system types e.g ext4, Btrfs..etc.
* Check that the installation process is smooth (expected time, errors..).
=== For hypervisor-specific images ===
* The default/expected settings for the virtual machine inside the hypervisor are correct after import.
= Post Installation =
* Encryption is functional (.iso specific).
* No errors, failures, warnings, or unexpected behavior during ISO boot; if any occur, verify whether they are normal/expected.
* Make sure to:
** Boot into every available boot menu option (live, user/admin, persistent, etc).
** Test any keys indicated for specific functionality (e.g GRUB options).
** Confirm all expected packages/apps are present and functional.
* The update and upgrade process works (with the expected repositories).
* No unusual messages are recorded in journalctl from boot time until the OS finishes loading.
* All project changes pushed to the OS are functional (e.g X app should not display Y message when opened).
* OS can read external flash/hard drives.
* Taking snapshots and rolling back to a previous one is functional (if supported).
* Check that the default open ports match the firewall rules and listening services.
* Sound/audio, mic and camera are working.
* Internet connectivity (Static/Manual and DHCP, Wire/Wireless).
=== For hypervisor specific ===
* Make sure to check (according to the wiki instructions):
** Shared folder is functional.
** GPU passthrough is functional.
= Footnotes =
{{Footer}}