Nalutas: pagsubok ng istraktura ng kontrol

Ang pagsusuri sa istruktura ng kontrol ay isang mahalagang aspeto na kasangkot sa pagbuo ng software at programming, lalo na kapag nagtatrabaho sa isang malakas na superset ng Javascript, tulad ng TypeScript na wika. Ang mga istruktura ng kontrol ay maaaring ikategorya nang malawak sa pagkakasunud-sunod, pagpili at pag-ulit, bawat isa ay may iba't ibang epekto sa daloy ng programa at dahil dito ay nagdadala ng malaking implikasyon para sa pagkilala sa bug o error.

Ang mga istruktura ng kontrol ay gumagabay sa pagkakasunud-sunod ng pagpapatupad ng code ng programa. Ang kahirapan ay nakasalalay sa pagiging kumplikado ng mga istrukturang ito dahil ang isang error sa mga istruktura ng kontrol ay maaaring magresulta sa malubhang mga anomalya ng programa.

Sa TypeScript, ang pagtuklas ng error sa mga istruktura ng kontrol ay nangangailangan ng pamamaraang pagsubok. Naisasagawa ito ng set based na pagsubok, pagsubok sa sangay at pagsubok ng kondisyon.

Itakda Batay Pagsubok

Tinukoy bilang ang proseso kung saan ang mga kaso ng pagsubok ay hinango mula sa output domain ng programa, ang set based na pagsubok ay isang mahalagang bahagi ng TypeScript programming.

function setBasedTesting(value: number): number {
let resultValue: number;

if (value > 10) {
resultValue = value * 10;
} else {
resultValue = value * -1;
}
return resultValue;
}

Sa simpleng halimbawang ito, tinutukoy namin ang isang function na tumatanggap ng isang numero bilang isang argumento, pagkatapos, batay sa halaga ng numerong ito, ang kundisyon ay isinasagawa alinman sa isang paraan o iba pa. Ang mga pagsusulit ay kailangang isulat upang masakop ang parehong mga posibilidad (ang bilang ay higit sa 10 at ang bilang ay mas mababa sa o katumbas ng 10).

Pagsubok ng Sangay

Sa TypeScript, ginagamit ang pagsubok sa sangay upang subukan ang bawat sangay ng mga istruktura ng kontrol tulad ng mga loop o conditional na pahayag.

function branchTesting(array: number[]): number[] {
let resultArray = [];

for (let i = 0; i < array.length; i++) {
if (array&#91;i&#93; >= 0) {
resultArray.push(array[i] * 2);
} else {
resultArray.push(array[i]);
}
}
return resultArray;
}

Ang function na ito ay dadaan sa bawat elemento sa array, at batay sa kung ang elemento ay positibo o hindi, isasagawa nito ang iba't ibang sangay. Saklaw ng masusing pagsusuri ang mga hanay ng data ng pagsubok kung saan mayroong parehong positibo at negatibong elemento sa array, kabilang ang isang edge-case ng isang walang laman na array.

Pagsubok sa Kondisyon

Ang pagsusuri sa kundisyon ay isinasagawa upang subukan ang mga sangay na kinokontrol ng kundisyon. Ang mga pagsubok ay dapat na idinisenyo sa paraang sa maraming sangay na kinokontrol ng kundisyon, ang bawat kundisyon ay nagsasagawa ng parehong totoo at maling mga kaso. Ang equivalence class partitioning at boundary value analysis ay maaaring makatulong sa paglikha ng mga epektibong test case.

function conditionTesting(value: number, flag: boolean): number {
let result: number;

if (flag) {
result = value * 2;
} else if (!flag && value > 10) {
result = value * 3;
} else {
result = value;
}
return result;
}

Sa kasong ito, mayroong maraming kundisyon na kumokontrol sa mga sanga - ang katotohanan ng bandila at ang numerical na halaga. Ang tamang pagsubok ay mangangailangan ng mga taga-disenyo na subukan ang bawat kundisyon nang paisa-isa at pinakamainam ang lahat ng kumbinasyon ng mga kundisyon.

Ang pag-unawa at pagpapatupad ng mga kasanayan sa pagsubok ng istruktura ng kontrol sa Typescript ay maaaring makabuluhang mapabuti ang katumpakan at pagiging maaasahan ng codebase, at sa gayon ay mapahusay ang pangkalahatang kalidad ng software.

Kaugnay na mga post:

Mag-iwan ng komento