QA Script
Manually QA TowerOS
TowerOS-ThinClient Installation
Feature | Action | Result |
---|---|---|
Disk is fully encrypted. | Restart without the USB key containing the boot partition. |
Doesn't Boot. |
Restart with the USB key containing the boot partition. |
Boots to Welcome Message. | |
The welcome message is displayed. | Check the message above the login prompt. | A message should indicate the location of the documentation. |
Default user is created. | Enter the chosen username and password. | You should log in. |
Keyboard is configured. | Type some characters. | Check is OK. |
Time Zone is configured. | [thinclient]$ date |
The date with the correct time zone. |
Shell prompt is customized. | Check the shell prompt format. | [<username>@thinclient <current folder>]$ |
The swap partition must be 8Gb, the home partition must occupy 20% of the rest, and the root partition the remaining space. |
[thinclient]$ lsblk |
|
supercronic service must be started. |
[thinclient]$ sudo rc-service supercronic status |
* status: started |
Default user is sudoer without password. | [thinclient]$ sudo su |
Root session without a password being requested. |
The documentation must be present in the ~/docs folder. | [thinclient]$ ls ~/docs |
List of documents. |
Documentation can be consulted with bat . |
[thinclient]$ bat ~/docs/usage.md |
Markdown viewer. |
Tower CLI man page is installed. | [thinclient]$ man tower |
Tower CLI manual. |
eth0 must be configured with IP 192.168.2.100 . |
[thinclient]$ ip ad |
|
eth1 must be configured with IP 192.168.3.100 . |
[thinclient]$ ip ad |
|
eth0 MAC must be persistent. |
[thinclient]$ ip ad , reboot then [thinclient]$ ip ad . |
The value of link/ether for eth0 should not change after a reboot. |
iptables service must be started. |
[thinclient]$ sudo rc-service iptables status |
* status: iptables |
Firewal must be correctly configured. | [thinclient]$ sudo iptables -L -v |
See configuration. |
Wifi must be soft blocked. | [thinclient]$ rfkill list wifi |
Soft blocked: yes |
Bluetooth must be soft blocked. | [thinclient]$ rfkill list bluetooth |
Soft blocked: yes |
labwc starts automatically after login if the option was chosen during installation. |
Boot. | labwc must start after login. |
labwc should properly start manually with startw alias. |
[thinclient]$ startw |
labwc must start. |
labwc auto start should be configurable. |
Edit the STARTW_ON_LOGIN value in ~/.local/tower/osconfig to "true" and reboot. |
labwc should start after login. |
labwc auto start should be configurable. |
Edit the STARTW_ON_LOGIN value in ~/.local/tower/osconfig to "false" and reboot. |
labwc should not start after login. |
The wallpaper should be correctyly displayed | Check the wallpaper. | Tower's logo. |
The sfwbar menu bar should appear correctly. |
[thinclient]$ dbus-launch labwc |
Menu bar must be present on the bottom. |
Wallpaper should be configurable. | Edit the WALLPAPER_IMAGE value in ~/.local/tower/osconfig and restart labwc . |
Wallpaper must change. |
When labwc is open, the screen locker should activate correctly after 5 minutes of inactivity. |
Stay inactive 5mn. | Black screen with password prompt. |
In the terminal, the screen locker should activate correctly after 5 minutes of inactivity. | Exit labwc and stay inactive 5mn. |
Black screen with password prompt. |
Screen locker timeout should be configurable. | Edit the LOCK_SCREEN_AFTER value in ~/.local/tower/osconfig and make the two previous tests. |
Black screen with password prompt. |
The latest version of tower cli must be installed. |
[thinclient]$ tower version |
Installed version. |
Tower CLI autocompletion should work correctly. | [thinclient]$ tower p then [tab] |
[thinclient]$ tower provision |
Laptop should suspend on lid close | Close and re-open the lid | The laptop should be suspended and physlock activated on resume. |
Power-off button should work. | Press the power-off button. | TowerOS should shutdown. |
Sound must work. | [thinclient]$ paplay /var/towercomputers/sample.flac |
You must hear something. |
Volume keys must work. | [thinclient]$ paplay /var/towercomputers/sample.flac then press volume keys. |
Volume must change. |
Brightness keys must work in labwc . |
[thinclient]$ startw then press brightness keys. |
Screen brightness must change. |
Hosts provisioning
Feature | Action | Result |
---|---|---|
router provisioning. |
[thinclient]$ tower provision router –wlan-ssid <ssid> –wlan-password <password> |
router is correctly provisioned |
Online host provisioning. | [thinclient]$ tower provision web --online |
web is correctly provisioned |
Offline host provisioning. | [thinclient]$ tower provision office --offline |
office is correctly provisioned |
Disk is fully encrypted. | Restart hosts without the USB key containing the boot partition. |
Doesn't Boot. |
Restart with the USB key containing the boot partition. |
Boots correctly. | |
All hosts must be up |
[thinclient]$ tower status |
Should display all hosts with status up . |
SSH must be configured | [thinclient]$ ssh <host> |
Open a SSH session without requesting password |
Host keyboard is configured. | Plug a keyboard and a screen into the host and type some characters. | Check is OK. |
Default user is created. | [thinclient]$ ssh <host> 'echo $USER' |
Shows the same default user as the thinclient. |
Time Zone is configured. | [thinclient]$ ssh <host> date |
The date with the same time zone as the thinclient. |
Online hosts must be connected. | [thinclient]$ ssh web ping www.google.com |
Ping result. |
Offline hosts must not be connected. | [thinclient]$ ssh office ping www.google.com |
ping: bad address 'www.google.com' |
iptables service must be started. |
[thinclient]$ ssh <host> 'sudo rc-service iptables status' |
* status: iptables |
Firewal must be correctly configured. | [thinclient]$ ssh <host> 'sudo iptables -L -v' |
See configuration. |
eth0 must be configured on the network 192.168.2.0/24 for online hosts |
[thinclient]$ ssh web ip ad |
|
eth0 must be configured on the network 192.168.3.0/24 for offline hosts |
[thinclient]$ ssh office ip ad |
[thinclient]$ ssh web ip ad |
On the router the MAC of wlan0 must be different at each startup. |
[thinclient]$ ssh router ip ad , reboot the router , then [thinclient]$ ssh router ip ad . |
The value of link/ether for wlan0 should change after each reboot. |
The home partition must occupy 20% and the root partition the remaining space. |
[thinclient]$ ssh <host> lsblk |
|
Shell prompt is customized. | [thinclient]$ ssh <host> |
[<username>@<host> <current folder>]$ |
Each host has a different shell color. | [thinclient]$ ssh <host> on all hosts. |
The prompt colors are different. |
Wifi must be soft blocked on all hosts except the router . |
[thinclient]$ ssh <host> rfkill list wifi |
Soft blocked: yes |
Wifi must not be soft blocked on the router . |
[thinclient]$ ssh router rfkill list wifi |
Soft blocked: no |
Bluetooth must be soft blocked on all hosts. | [thinclient]$ ssh <host> rfkill list bluetooth |
Soft blocked: yes |
Default user is sudoer without password. | [thinclient]$ ssh <host> sudo su |
Root session without a password being requested. |
Tower widget must be correctly started. | Check the presence of the widget in the taskbar. | |
Clicking on the name of a host in the taskbar displays the host information. | Click on the name of one of the hosts | |
Tower widget should display down hosts in red. | Turn off one of the hosts and check the taskbar. | |
Offline host time should be synchronized with router time. |
[thinclient]$ ssh router date && ssh office date |
The same date and time. |
Execution and installation of applications
Once the router
is installed:
Feature | Action | Result |
---|---|---|
APK packages can be installed on the thin client | [thinclient]$ tower install thinclient fortune [thinclient]$ fortune |
Random message. |
APK packages can be installed on online host | [thinclient]$ tower install web fortune [thinclient]$ fortune |
Random message. |
APK packages can be installed on offline host | [thinclient]$ tower install office fortune [thinclient]$ fortune |
Random message. |
Once installed, graphical applications should appear in the sfwbar menu with icons. |
[thinclient]$ tower install office galculator then check the taskbar menu. |
|
In the taskbar menu each host is differentiated by a colored circle. | check the taskbar menu. | |
Host shell prompt color matches with the menu. | [thinclient]$ ssh <host> |
Prompt color should be the same as the circle in the menu. |
SSH welcome message is disabled. | [thinclient]$ ssh <host> |
No message before the prompt. |
Graphical applications can be launched via the sfwbar menu. |
Click on the desired application. | Application should be launched. |
Graphical applications can be launched via the terminal. | [thinclient]$ tower <host> run <application> |
Application should be launched. |
Graphical applications can be resized. | [thinclient]$ tower <host> run <application> and resize the window. |
Application on the host should be resized. |
Copy/past is possible between two hosts. | Open two graphicals application on two different host and try a copy/past. | Past must work. |
Copy/past is possible from thinclient to host. | Open two graphicals application on the host and the thinclient and try a copy/past. | Past must work. |
Copy/past is possible from host to thinclient. | Open two graphicals application on the host and the thinclient and try a copy/past. | Past must work. |
Online applications must work correctly on online hosts. | [thinclient]$ tower web install midori [thinclient]$ tower web run midori |
You can browse the web. |
tor proxy is enabled for online host. |
[thinclient]$ ssh web curl --socks5 192.168.2.1:9050 https://check.torproject.org/api/ip |
{"IsTor":true,"IP":"109.70.100.71"} |
The time on online hosts must be correct. | [thinclient]$ ssh web date |
The correct date and time. |
Sound must work in browser. | [thinclient]$ tower install web firefox then [thinclient]$ tower run web firefox . Browse to soundclound and play a sound. |
You must hear the song. |
Window header bar must be colored. | [thinclient]$ tower <host> run <application> |
Window header bar color must match with the host color. |
Window header bar must be uncolored when using the flag --uncolored . |
[thinclient]$ tower <host> run <application> --uncolored |
Window header bar color must be uncolored. |
TowerOS-ThinClient Upgrade
In addition to all the points listed for installing TowerOS-ThinClient:
Feature | Action | Result |
---|---|---|
the new version of tower cli must be installed. |
[thinclient]$ tower version |
The new version. |
All previously installed hosts must be accessible. | [thinclient]$ tower status |
List of previously installed hosts. |
The sfwbar menu must display all applications previously installed on the hosts. |
Check the taskbar menu. | Previously installed applications must be here. |
The sfwbar widget indicating the host status must include all the hosts. |
Check the taskbar. | |
The contents of the home partition must be completely preserved. | [thinclient]$ ls ~/ |
The same content as before the upgrade. |
Host Upgrade
In addition to all the points listed for Hosts provisioning:
Feature | Action | Result |
---|---|---|
The new version of TowerOS-Host must be installed. | [thinclient]$ tower status <host> |
The new version. |
All applications installed with tower install must be reinstalled. |
Check the taskbar menu. | Previously installed applications must be here. |
The contents of the home partition must be completely preserved. | [thinclient]$ ssh <host> ls ~/ |
The same content as before the upgrade. |