Release Name: Inji 0.9.1 (Patch)
Upgrade From: Inji 0.9.0 (Beta)
Support: Developer Release
Release Date: 25th July, 2023
The 0.9.1 version of Inji Wallet is the first patch release on top of Inji 0.9.0. This release has bug fixes for features like Downloading and sharing the VC, Wallet binding, face authentication on resident’s phone, etc.
Below is a summary of some of the important bug fixes made in this version.
Added capabilitities to transfer the VC to more number of devices with an increase in device compatibility.
Introduction of error codes in case the transfer of VC fails.
Based on the android devices, Inji Wallet now asks for only the required Bluetooth permissions.
Migrated to MMKV storage from Async storage. With this, the devices can now store more number of VCs.
Renew auth token after expiry in Mimoto.
Added support for Filipino language (Philippines language).
Added support for languages whose semantics are Right-to-Left.
Added feature to restrict the downloading of ID card when the download of the card via UIN is blocked.
Updated VC thumbprints when the same VC is downloaded multiple times on the same device and is activated.
The 0.9.1 version of Inji Wallet mainly focuses on bug fixes along with some internal improvements like:
Ability to build on Windows
Abilty to build and push iOS builds to TestFlight without any human intervention
The older version of Inji Wallet app (0.9.0) will not be compatible with the newer version of Inji, due to the following reasons:
The storage has been changed from Async Storage to mmkv storage, which are two different storage mechanisms.
The VC sharing might break as Tuvali has updated the type of data shared across devices, hence it can cause array index out of bounds exception.
Bug fix: All the binded VCs will be shown and every binded VC can be used for online login irrespective of the timeframe of binding. #INJI-80
Bug fix: Tuvali now has the capability to specify an error code to let Inji know where the error has occurred during VC sharing instead of displaying the default error message. #INJI-71
Bug fix: In iOS, when the user tries to go back from the OTP screen while generating VID from AID, Inji was crashing. As a fix, it was made sure that the models (overlays) are not overlapping. #INJI-46
Bug fix: Inji now has the capability to render the resident's demographic information in the language chosen by the Residents. #INJI-44
Bug fix: Inji now has the capability to identify when the App is low on storage and notify the same to the Residents. #INJI-42
Bug fix: During wallet binding when the auth token is expired, the first call made for wallet binding will be used for refreshing the auth token, which then makes the current call to fail and subsequent calls to succeed. As a fix, the wallet binding call will refresh the token and complete the binding process. #INJI-41
Bug fix: Inji Wallet had a restriction to the overall storage size, in that, we were not able to download more than 29 VCs. As a fix, we migrated from Async storage to MMKV which does not have any upper limit on the storage size. #INJI-38
Bug fix: In the Home Screen, the tab indicators were not properly working in RTL. After the fix, RTL is being rendered properly. #INJI-36
Bug fix: The VCs that are added were getting stored in the app memory rather than user data. As a fix, MMKV storage was introduced (as opposed to async storage) to solve this by moving the VC data to user data instead of App memory. #INJI-35
Bug fix: A few texts were not being rendered in Arabic. The Arabic translations were added to make sure when the resident has chosen Arabic language, all the data is being rendered in Arabic. #INJI-34
Bug fix: The error popup shown during the BLE transfer is updated, the popup will now contain few error codes which depicts different stages where the failure has happened in the BLE layer. #INJI-28
Bug fix: There was a delay in reading and writing the VC from the device, so the storage mechanism has been changed from Async Storage to MMKV Storage, which ensures faster reading and writing. #INJI-7
Bug fix: Few devices failed to establish the connection while sharing of VCs were initiated (Vivo Y73 & Redmi K20 Pro). To resolve this, setting preferred PHY was removed and missing BLE permissions for Android 12 and above were added. #INJI-39
Bug fix: The VC transfers from iOS device always failed when Android 13 was the Verifier. As a fix, Bluetooth negotiation was updated to support Google Pixel (Android 13). #INJI-68
To know more about Inji Wallet, watch the video!
The scope of testing is to verify fitment to the specification from the perspective of:
Functionality
Deployability
Configurability
Customizability
Verification is performed not only from the end user perspective but also from the System Integrator (SI) point of view. Hence, the configurability and extensibility of the software is also assessed. This ensures readiness of software for use in multiple countries. Since MOSIP is an “API First” product platform, verification scope required comprehensive automation testing for all the MOSIP APIs. An automation Test Rig is created for the same.
In this release, the testing scope has been focused around the hotfixes for Inji Wallet along with the addition of the below new features:
Moving away from Google Nearby API definitions
Optimization of Save VC flow
Persona based approach has been adopted to perform the IV&V(Independent Verification and Validation) by simulating the test scenarios that resemble a real-time implementation.
A Persona is a fictional character/ user profile created to represent a user type that might use a product/ or a service in a similar way. Persona based testing is a software testing technique that puts software testers in the customer's shoes, assesses their needs from the software and thereby determines use cases/scenarios that the customers will execute. The persona needs may be addressed through any of the following.
Functionality
Deployability
Configurability
Customizability
The verification methods may differ based on how the need was addressed.
For regression check, “MOSIP Test Rig”- an automation testing suite - which is indigenously designed and developed for supporting persona based testing. MOSIP Test Rig covers the end to end test execution and reporting. The end to end functional test scenarios are written starting from pre-registration, to creation of packet in registration center, processing the packet through the registration processor, generating UIN and authenticating identity using IDA through various permutation and combinations of cases being covered. MOSIP Test Rig will be an open source artifact which can also be enhanced and used by countries to validate the SI deliveries before going live. Persona classes include both negative and positive personas. Negative persona classes include users like Bribed Registration Office, Malicious Insider etc. The needs of positive persona classes must be met, whereas the needs of negative persona classes must be effectively restricted by the software.
Verification is performed on various configurations as mentioned below:
Default configuration (with 6 languages)
Below are the test metrics by performing functional testing using mockMDS and mockABIS. The process followed was black box testing which based its test cases on the specifications of the software component under test. Functional test was performed in combination of individual module testing as well as integration testing. Test data were prepared in line with the user stories. Expected results were monitored by examining the user interface. The coverage includes GUI testing, System testing, End-To-End flows across multiple languages and configurations. The testing cycle included simulation of multiple identity schema and respective UI schema configurations.
Test Rate: 95% with Pass Rate : 89%
Here is the detailed breakdown of metrics for each module:
Total Test cases: 206
Passed: 185
Failed: 17
Skipped: 4
Total Test cases: 190
Passed: 152
Failed: 23
Skipped: 15
Below section provides details on API test metrics by executing MOSIP functional automation Framework. All external API test executions were performed at module level isolation. Each end point is tested with the test data and expectations of each test data are mapped to assert the test case.
Test Rate: 100% with Pass Rate : 96%
Below are the test metrics by performing VC Sharing functionality on various device combinations:
Test Rate: 100% with Pass Rate : 100%
Below are the detailed test metrics by performing manual/ automation testing. The project metrics are derived from Defect density, Test coverage, Test execution coverage, test tracking and efficiency.
The various metrics that assist in test tracking and efficiency are as follows:
● Passed Test Cases Coverage: It measures the percentage of passed test cases. (Number of passed tests / Total number of tests executed) x 100
● Failed Test Case Coverage: It measures the percentage of all the failed test cases. (Number of failed tests / Total number of test cases executed) x 100
Link for the detailed test report.
Total
Passed
Failed
Skipped
396
337
40
19
Total
Passed
Failed
Skipped
154
149
5
0
Total
Passed
Failed
Skipped
192
192
0
0