One of the key requirements for nuclear materials accounting system is the ability to periodically update the system in order to reflect the changes in organizational processes, national and international regulations. At the same time, the update process must not bring considerable risks of system downtime.
Given the above, we needed a tool for automated diagnostics of the major system functions to guarantee the instrument reliability after installation, updates or during regular inspections.
A significant aspect of working with nuclear materials is the importance of ensuring the security and confidentiality of restricted information, therefore, system setup for various processes/facilities and testing the system’s performance should be carried out without access by non-accredited persons to secure data. Our specialists proposed the following scheme of the testing process for the personnel of the nuclear power plant:

1. Copying the system from the main station to the backup machine.
2. Installation of the updated version of the system and packages of libraries/tools for automated testing on the backup machine.
3. The testing process is performed.
4. If the test result is positive, an updated system is installed on the main station.
5. If the test result is negative, a problem area is identified based on the reports. Reports do not contain restricted data and can be sent to developers.
6. Bugs are fixed and the testing process is repeated until a positive result is obtained.
We have developed a set of automated tests aimed at checking the functionality of all subsystems. The suite of tests includes functional testing of program modules and user interface testing.
The following tools are used to perform tests, log results and generate reports: Selenide, Maven, TestNG.
The implemented diagnostics system provides the ability to test the reliability of the nuclear material accounting and control system in accordance with the strict safety requirements. In the process of automated diagnostics, more than 350 tests are performed within 3–4 hours; the information obtained during testing allows detecting and resolving the identified problems on the developer’s side without unauthorized access to the restricted customer’s database.