Testing Method | Low Risk | Medium Risk | High Risk | Critical Risk |
---|---|---|---|---|
Unit Testing | MUST | MUST | MUST | MUST |
Service Testing | MUST | MUST | MUST | MUST |
Integration Testing | SHOULD | MUST | MUST | MUST |
Regression Testing – Critical Journeys | NOT REQUIRED | SHOULD | MUST | MUST |
Regression Testing – Non-Critical Journeys | NOT REQUIRED | NOT REQUIRED | SHOULD | MUST |
Exploratory Testing | NOT REQUIRED | NOT REQUIRED | NOT REQUIRED | SHOULD |
Risk Level | Description | Examples |
---|---|---|
Low Risk | No functional impact or trivial behavior changes | Logging/config updates, copy/text updates, internal admin UI, non-user-facing metrics, toggle default values |
Medium Risk | Localized functionality with low business impact; safe rollback | Add optional form field, pagination improvement, sorting/filtering logic, minor backend endpoint, refactoring with no logic change |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/** | |
* splitCommuneName splits commune name from its full name with type. | |
* | |
* Examples: | |
* - "Xã Chương Dương" => "Chương Dương" | |
* - "Phường Ba Đình" => "Ba Đình" | |
* - "Đặc khu Vân Đồn" => "Vân Đồn" | |
*/ | |
function splitCommuneName(communeFullName) { | |
if (communeFullName.startsWith('Xã')) { |