áááááá¯ááºáž -
á¡ááŒá±á¡áá±áá áºáá¯ááᯠá áááºáá°ážááŒáá·áºáá«á áá¯ááºáá±á¬ááºáá»ááºá¡áá áºáá»á¬áž áá±á¬áºáá¯ááºááẠáááºáá¯ááºáá±á¬ááºáááá·áºáá¬áááºááŸáá·áº áááºááá¯ááºáá±ááááºá áááºážá¡áááºá áááºážá¡ááœá±á·á¡ááŒá¯á¶ááœá±ááŸááááºá áááºážááŸá¬ ááá¯ááºáá»áá·áºááá¬ážáá¬áááºáááŸááá°ážááá¯á· áá°áááẠáááºážáá¬áá¯ááºááá²á
áá»á¬ážáá±á¬á¡á¬ážááŒáá·áºá ááá¯ážáááºááŸá¯á¡á¬ážáá¯á¶ážááᯠáá±á·áá»á±á¬ááºááŒá®áž á¡áá¬á¡á¬ážáá¯á¶ážá ááŒááºá
áááºá áááºáá°áá០á¡ááŒá¬ážáá°áá²á·áá¯ááºááᯠáá°ážááœááá¬ááᯠáááŒáá¯ááºááŒáááᯠááá·áºááŸá¬ á¡áá»áááºááŸááááºááá¯ááẠáá¬ááŒá±á¬áá·áº ááá·áºááá¯ááºááá¯ááºá
áá
áºááᯠá
áááºááááºáá®ážáá¬áá²á á€áááºááŸá¬ áá¯á¶ááŸááºáá»ááºážáááºáááºážááŒá
áºááŒá®áž áá»á¬ážá
áœá¬áá±á¬á¡áá»ááºááŸá¬ ááŸááºáááºáá«áááºá áá«áá±ááá·áº áá»áœááºáá±á¬áºááá¯á·áá²á· ááá±á¬áá»ááºááŸá¬ ááœá²ááŒá¬ážá
áœá¬ áá¯ááºáá±á¬ááºáá²á·áá«áááºá áá»áœááºá¯ááºááá¯á·ááẠáá»áœááºá¯ááºááá¯á·áááŸá±á·áááºáá°áá»á¬ážáá¶á០utPLSQL ááœáẠáá°áá
áºá
ááºážáááºááŸá¯áá»á¬ážááœáẠááá¯ážáááºááŸá¯á¡áá±á«áº á¡áá¬áááºá¡ááá¯á¡áá»á±á¬ááºá
ááºážáááºááŒááºážá
áá
áºá¡á¬áž á¡ááŒá±áá¶ááŒá®áž á¡ááŒáá¯ááºáááºážááŒá±á¬ááºážáá»á¬ážá
áœá¬ááœáẠáá¯ááºáá±á¬ááºááœá¬ážáá²á·áááºá
- áá°áá áºá ááºážáááºááŸá¯áá±á¬ááºážáá»á¬ážááᯠááŒááºáááºááá°ááŒááºážá ááŒááºáááºááá°ááŒááºážááá¯áááºááŸá¬ áá á¹á á¬á á±á¬áá·áºááááŸá¯á áá áºá áááºáá²á¡ááŒá±á¡áá±ááŸáá·áº á ááºážáááºááŸá¯áá»á¬ážááᯠutPLSQL á á¶ááŸá¯ááºážáá»á¬ážááŸáá·áº ááá¯ááºáá»á±á¬áá®ááœá±ááŒá áºá á±áá±á¬ á á áºáá±ážááŸá¯áá»á¬ážááᯠááá¯ááá¯áááºá
- ááŒá¿áá¬ááᯠáá¬ážáááºááŸá¯ááŒáá·áº ááŒá±ááŸááºážááŒááºážá áááºááá·áºáááºážáááºážáá»á¬ážááŸáá·áº áá¯ááºáááºážá ááºáá»á¬áž á¡ááá¡áá»ááŒáá·áº áá»áœááºá¯ááºááá¯á·ááẠautotests ááŒáá·áº á¡áá»á¯á¶ážáááºáá«áááºá á€á¡áá»ááºá¡áááºááᯠááá·áºáá±á«ááºážáá²ááœáẠááááºážáááºážáá¬ážáááẠááá¯á·ááá¯áẠautotest ááá¯ááºá¡áá±á«áº ááá¯ááºááá¯ááºá¡ááŒá±áá¶á áá±á¬ááºáá»ááºááœá²ááááºá ááá¯á·ááŒá±á¬áá·áºá áá»áœááºá¯ááºááá¯á·ááẠáááºááá±á¬ááºáá áºáá¯ááᯠáááºáá®ážááẠáá¯á¶ážááŒááºáá²á·áááºá áá»áœááºá¯ááºááá¯á·ááẠautotest áá áºáá¯á á®ááœáẠáá°ážááŒá¬ážáá±á¬ mnemonic áá¯ááºáá áºáá¯ááᯠáá±ážá¡ááºáá²á·ááŒá®áž áá±á¬áºááŒáá»ááºáá áºáᯠáááºáá®ážáᬠáááºáááºáá»á¬ážááᯠááŒááºáááºáá²á·ááẠ(á¥ááá¬á áááºážááᯠáááºááá·áºá¡ááŒá±á¡áá±á¡á±á¬ááºááœáẠáá¯ááºáá±á¬ááºááá·áºáááºá ááá¯á·ááá¯áẠá ááºážáááºááŸá¯ áá¡á±á¬ááºááŒááºáá«á áá¬ááŒá áºááá¯ááºáááº)á á¡ááŸá áºáá¬áá¡á¬ážááŒáá·áºá áá»áœááºá¯ááºááá¯á·ááẠautotests áá»á¬ážá¡ááŒá±á¬ááºáž metadata ááá¯ááŒáá·áºááŒá®áž utPLSQL schema áá á¶ááá¬ážáá»á¬ážááœáẠဠmetadata ááá¯ááá·áºáá¬ážáááºá
- áá»á²á·ááœááºááŸá¯áá»á°áᬠá¡áááá¹áá«ááºááœáá·áºááá¯áá»ááºá á¥ááá¬á autotests ááŒáá·áºá¡áááºááŒá¯ááŒááºážáá¶ááá±á¬áá¯ááºáá±á¬ááºááá¯ááºá áœááºážááœá±ážáá»ááºááŸá¯á áá»áœááºá¯ááºááá¯á·ááẠá áá áºá¡ááœáẠááá¯ážáááºááŸá¯á¡áá áºáá»á¬ážá áá¯ááºáá¯ááºááŸá¯á០á¡ááŒá áºá¡áá»ááºáá»á¬ážááŸáá·áº á áá áºá á¡ááááá¯ááºáááºážá ááºáá»á¬ážááᯠá¡á¬áá¯á¶á áá¯ááºááẠáá¯á¶ážááŒááºáá²á·áááºá ááá¯á·ááŒá±á¬áá·áºá áá»áœááºá¯ááºááá¯á·ááẠáááºážáááá¯ááá¯ááŒáá·áºáá¬ážáá±á¬á¡áááºá¡ááœá±ážááá¯áá±áá»á¬á á±áá¬á áá¯ááºáá¯ááºááŸá¯ááááºáááºááá¯áá áºááŒáá¯ááºáááºáá»á²á·ááœááºáᬠá¡áá±ážááŒá®ážáá±á¬áá±áá¬áá»á¬ážááœáẠá áá áºááá¯á¶ááŒááºá áááºáá»áááŸá¯ááá¯áá±áá»á¬á á±áá±á¬ááœáŸááºáá±ážááŸá¯ááŸáá·áºá¡ááŒáá¯áẠáá»áœááºá¯ááºááá¯á·áá¯ááºáá±á¬ááºáá«áááºá ááááá¯á¶ážáá±á¬ ááááºááá¯á·ááŸá¯ááŸá¬ áá»áŸá±á¬á·á á»á±ážááŸáá·áº áá±á¬áááºá áºáá»á¬ážááᯠáá»ááºáááºááŸááºááŒáá·áº ááŒáá·áºáá±ááŒááºážáá¯ááºáááºážá ááºááŒá áºáááºá
- áá¯á¶ááŸááºá¡á¬ážááŒáá·áºá áá»áœááºá¯ááºááá¯á·ááẠautotest á¡áá áºáá»á¬ážááᯠá áááºáá®ááœááºáá²á·áááºá ááááá¯á¶ážáá¯ááºááœáŸááºááá·áºáá¬áááºáá»á¬ážáá²ááŸáá áºáá¯ááŸá¬ áá á¹á á¬á á±á¬áá·áºááááŸá¯á áá áºá ááŒáá¯áááºáááºááŸááºáá¬ážáá±á¬ááá°áá¬áá»á¬ážá á áœááºážáá±á¬ááºáááºááᯠá¡áá²ááŒááºáááºááŒá áºáááºá áá»áœááºá¯ááºááá¯á·áááá±á¬áá»ááºááœáẠá¡ááŒá±á¡áá±áá»á¬ážá¡ááá¯áẠáá±á¬ááºáááºáá»á¬ážááᯠááœá±ážáá»ááºááá·áº áááºážáá»ááºá áœá¬ ááŒááºáááºáá¬ážáá±á¬ sql queries ááááºááá¯á·áá¬ážáá«áááºá á¥ááá¬á¡á¬ážááŒáá·áºá áá®ážááŒá¬ážááŒáá¯á·áá áºáá¯ááœáẠáá±á¬ááºáá¯á¶ážáááºáá°áá²á·ááá·áº áááºáá°áá°á¡á¬ážáá¯á¶ážáá á¬áááºážááᯠááá°áá«á ááá¯á·ááá¯áẠáá»ááºážáá»áŸáááºáá°ááŸá¯ááá¬áááẠáááºááŸááºáá¬ážáá±á¬áááºááá¯ážáááºáá»á±á¬áºááœááºáá±á¬ áááºáá°áá°áá»á¬ážá á¬áááºážááᯠááá°áá«á autotests áá»á¬ážááá¯áá±ážáá¬ážááŒá®ážá áá»áœááºá¯ááºááá¯á·ááẠááŒáá¯áááºáááºááŸááºáá¬ážáá±á¬ááá°áá¬áá»á¬ážá áá¯á¶áá±á á¶ááŸá¯ááºážá áœááºážáá±á¬ááºáááºáá±á¬ááºáá»á¬ážááᯠá á áºáá±ážáá²á·ááŒá®áž ááá¯á·á¡ááŒáẠáá»áœááºá¯ááºááá¯á·ááẠload testing ááá¯áááŸááá²á·áá«áááºá
- autotests ááŸáá·áºá¡áá¯ááºáá¯ááºáááºá¡áááºááŒá±ááá·áºáááºá. á¡áá¯á¶ážá¡áá»á¬ážáá¯á¶ážáá¯ááºáá±á¬ááºáá»ááºááŸá
áºáá¯ááŸá¬ á¡ááá¯á¡áá»á±á¬ááºá
ááºážáááºááŸá¯áá»á¬áž áá¯ááºáá±á¬ááºáá±ááŒá®áž á
ááºážáááºááŸá¯áá±áá¬áá¯ááºáá±ážááŒááºáž ááŒá
áºáááºá á€áááºááŸá¬ áá»áœááºá¯ááºááá¯á·áá
áá
áºááœáẠá¡ááẠmodule ááŸá
áºáá¯áá±á«áºáá¬áá¯á¶ááŒá
áºáááº- launch module ááŸáá·áº data generation module ááá¯á·ááŒá
áºáááºá
áá±á¬ááºáá»á¬á¡á¬áž ááá·áºááœááºážááá·áº á á¬áá¬ážáá«áá¬áá®áá¬áá áºáá¯ááŒáá·áº áá±áá¯áá»áá¯ááºáááºážá ááºáá áºáá¯á¡ááŒá Ạááá¯ááºá á¬ážááŒá¯áááºá ááá·áºáááºáá»ááºáá áºáá¯á¡áá±ááŒáá·áº áááºááẠá¡ááá¯á¡áá»á±á¬ááºá ááºážááẠmnemonic áá¯ááºá áááºáá±á·áá»áºá¡áááºá á ááºážáááºááŸá¯á¡áááºá á¡ááá¯á¡áá»á±á¬ááºá ááºážáááºááŸá¯ áááºááẠááá¯á·ááá¯áẠáá®ážááá·áºáá±á¬á·áá»ááºá áá¬ážáá¯á¶ážááᯠáááºááŒááºáááºážááá¯ááºáááºá áá¯ááºáá¯á¶ážáá¯ááºáááºážááẠá¡ááŒá±á¡áá±áá»á¬ážááŸáá·áº ááá¯ááºáá®áá±á¬ autotest á¡á¬ážáá¯á¶ážááᯠááœá±ážáá»ááºááŒá®áž áá¯ááºáá±á¬ááºáááºá
áá±áá¬áá¯ááºáá¯ááºááá·áº áá±á¬áºáá»á°ážááᯠá¡áá¯ááºáá áºáá¯á¡ááŒá ẠáááºááŒáá¬ážááŒá®ážá á ááºážáááºááŸá¯á¡á±á¬ááºááœáẠá áá áºáá áºáá¯á á®á á¡áá¬ááá¹áá¯áá áºáᯠ(áá±áá¬áá±á·á áºááŸá ááá¬ážáá áºáá¯) á¡ááœáẠááá¯áá±áá¬ááœáẠáá±áá¬ááá·áºááœááºážááá·áº á¡áá°ážáá¯ááºáá¯á¶ážáá¯ááºáááºážáá áºáá¯ááᯠáááºáá®ážáá¬ážáááºá á€áá¯ááºáá¯á¶ážáá¯ááºáááºážááœááºá áá¯á¶áá±áááºááá¯ážáá»á¬ážááᯠá¡ááŒáá·áºáá¯á¶ážá¡áá ááŒáá·áºáá¬ážááŒá®ážá áááºáá»á±á¬ááºážááŒáá·áº ááŸáááºááá¯ááºáá¯á¶ááŒáá·áº á¡áá¬ááá¹áá¯áá»á¬áž áááºáá®ážááŸá¯ááᯠáá±áá»á¬á á±áááºá á¡áá¯á¶ážááŒá¯áááœááºáá°á á±áááºá¡ááœáẠáá¯ááºáá¯ááºáá¬ážáá±á¬áá±áá¬á¡ááœáẠááá°áá¬áá¯á¶á á¶áá»á¬ážááᯠáááºáá®ážáá²á·áááºá á¥ááá¬á¡á¬ážááŒáá·áºá á ááºážáááºáá¯ááºážááŸáá·áº ááŒá®ážááŒáá·áºá á¯á¶áá±á¬ áááºáá°ááŸá¯ááŒáá·áº áááºááŸááºáá¬ážáá±á¬ á¡áááºá¡ááœááºááŸá áá¯á¶ážá áœá²áá°áá áºáŠážááᯠáááºáá®ážáá«á
- Autotests áá»á¬ážááẠááá·áºá
áá
áºá¡ááœáẠááá·áºáá»á±á¬áºáá±á¬á¡áá»áááºáá
áºáá¯á¡ááœááºáž áá¯ááºáá±á¬ááºááá·áºáá«áááºá ááá¯á·ááŒá±á¬áá·áºá ááááºáá»á¬ážááá¯ááºáᬠá¡á
á®áááºáá¶á
á¬ááᯠáá¯ááºáá±ážááŒá®áž áá±á¬áºááá¯ááááºáá±ážááºááŒáá·áº ááœá¶á·ááŒáá¯ážááá¯ážáááºáá±ážá¡ááœá²á·áá
áºáá¯áá¯á¶ážáᶠáá±ážááá¯á·ááá·áº ááááºáá»á¬ážá¡áá±á«áº á¡ááŒá±áá¶á áá±á·á
ááºáááœáẠááœáŸááºáááºááẠá
á®á
ááºáá²á·áááºá á¡ááá¯á¡áá»á±á¬ááºá
ááºážáááºááŸá¯áá»á¬áž á¡áá±á¬ááºážáá»á¬ážááᯠááŒááºáááºááá°ááŒá®áž á¡áá
áºáá»á¬ážááᯠáááºáá®ážááŒá®ážáá±á¬áẠá
á¯á
á¯áá±á«ááºáž áá¯ááºáá±á¬ááºáá»áááºááẠáááá
Ạ30 ááŒá
áºáááºá ááááºáááºááœá²ááẠáá¯á¶ážáá»áááºá¡ááœááºážááœáẠááŒá¯áá¯ááºáá²á·áá±á¬ááŒá±á¬áá·áº áá°ááá¯ááºážááŸáá·áº ááá·áºáá±á¬áºáá«áááºá
áá«áá±ááá·áº á¡áá¯ááºáá²á· á¡ááŸáááºááᯠá¡áá±á¬ááºážáá¯á¶ážááŒá áºá¡á±á¬áẠáá¯ááºááááºá áá¯ááºáá¯ááºáá±ážáá á¹á á¬á á±á¬áá·áºááááŸá¯á áá áºááᯠáá¡áá»áááºááœáẠá¡ááºááááºáá¯ááºáá¬ážáááºá áá¯ááºáá±ááŸá¯áá áºáá¯á áá áºá áááºáá áºááá¯ááºážá¡áá±ááŒáá·áºá áá»áœááºá¯ááºááá¯á·ááẠááááºááœáẠá¡ááŒá±á¬ááºážá¡áá²áá»á¬ážááᯠá¡áá±ážáááŒá®áž ááŒá¯áá¯ááºááááºááŒá áºáá«áááºá áá¶áááºáá¯á¶ážáá¬áá®ááœáẠautotest ááááºááá¯á á±á¬áá·áºáá»áŸá±á¬áºáá±ááá·áº áá¬áá®áááºááŒá¬ááẠ(Alexei Vasyukov) á¡á¬áž á áááºá¡á¬ážáááºáááºá áœá¬ ááŸá¯ááºááœááºážáááºá áá¬ážáááŒá áºáá²á·áá²á áá±á¬ááºáá áºáá±á·áá¶áááºááœáẠáá»áœááºá¯ááºááá¯á·áá áá áºáá®ááá¯á· ááœá±ážááœá±ážáá±á¬á áá¬ážáá»á¬ážá áœá¬ááᯠááŒá±á¬áá²á·áá«áááºá áá«áá±ááá·áº ááááºá¡áá±áá²á· á¡áá¯ááºá¡ááœáẠá áááá áºá ᬠá á¶ááŸá¯ááºážáá áºáᯠáááºááŸááºáá²á·áá«áááºá
á áœááºážáá±á¬ááºáááºááᯠá¡ááŸáááºááŒáŸáá·áºáááºá¡ááœáẠáá»áœááºá¯ááºááá¯á·ááẠáááºážáááºážááŸá áºáá¯ááᯠá¡áá¯á¶ážááŒá¯áá²á·áááº- áá»áœááºá¯ááºááá¯á·ááẠáá»áœááºá¯ááºááá¯á·ááá á¹á á¬á á±á¬áá·áºááááŸá¯á áá áºá áááºáá±á¬ááºáá¯á¶ááŒá±á¬áá·áº á¡ááœááºá¡áááºááŒá±áá±á¬ááŒá±á¬áá·áº áááºážááẠá¡ááŒáá¯ááºá¡áááºáá¯á¶ážáá¯ááœáẠautotest áá»á¬ážááᯠá áááºáá¯ááºáá±á¬ááºáá«áááºá ááŒá®ážáá±á¬á· autotest á áá°á·áá¬áá°á¡ááœáẠá ááºážáááºááŸá¯áá±áá¬ááᯠááááºáá®ážáá±ááá·áº á áá áºáá²ááŸá¬ ááá·áºáá»á±á¬áºáá²á·á¡áá¬ááᯠááŸá¬ááá¯á·ááŒáá¯ážá á¬ážáá²á·á¡áá« áá»ááºážáááºááŸá¯ááᯠá áœáá·áºááœáŸááºááá¯ááºáááºá ááŒá±á¬ááºážáá²ááŸá¯áá»á¬ážááŒá¯áá¯ááºááŒá®ážáá±á¬áẠá á¯á á¯áá±á«ááºážáááºáááºáá»áááºááᯠ3-4 áááá áºááá¯á· áá»áŸá±á¬á·áá»áá²á·áááºá
- autotests áá«áá±á¬ ááá±á¬áá»ááºáá
áºáá¯ááẠá¡áá»áá¯ážáá»áá¯ážáá±á¬áááºáááºáá»ááºááœáẠá¡áá¯á¶ážáá»ááá¯ááºááá·áºáááºá ááá®ážá¡á
ááœááºá áá»áœááºá¯ááºááá¯á·áááá¯ááºááá¯áẠbatch ááá¯ááºáá»á¬ážááá¯áá±ážááẠááŒáá¯ážáááºážááŸá¯áá»á¬ážááŸááá²á·áá±á¬áºáááºážá ááá¯ááºááá¯ááºáá±ážáá¬ážáá±á¬ á¡ááá¯á¡áá»á±á¬ááºááá·áºááœááºážááŒááºážááẠááááºááá·áºá
áá¬ááŒá
áºááŒá®áž ááŒá®ážááŒáá·áºá
á¯á¶áá±á¬ á
ááºááŸá¯ááŒá±ááŸááºážáá»ááºáá®ááá¯á· ááŸáá·áºááœá¬ážááŒá±á¬ááºáž áááºááŸá¬ážáá¬áá«áááºá ááá±á¬áá»ááºááœáẠááá¯ááºááá¯ááºáá¯ááºáá»á¬ážá
áœá¬áá«ááŸááá±á¬ááŒá±á¬áá·áº (áááá¡áá»ááºá¡áá±ááŒáá·áº áá»áœááºá¯ááºááá¯á·ááẠautotests ááá¯ááºááᯠááááºážáááºážáá¬ážáááº) ááŸáá·áº áá±áá¬á¡áááºážáááºáá¬ááŸáááẠ(á¡ááááá±áá¬ááŸá¬ autotests ááŸáá·áºáááºáááºáá±á¬ metadata) ááŒá
áºáá±á¬ááŒá±á¬áá·áº áááºážááœáẠáá±á«ááºážá
ááºážááẠá¡ááœááºááœááºáá°ááœá¬ážáá«áááºá Liquibase ááá±á¬áá»ááºá
áááºážááẠdatabase schema á¡ááŒá±á¬ááºážá¡áá²áá»á¬ážááᯠááŒá±áá¬áá¶ááŒááºážá á á®áá¶ááá·áºááœá²ááŒááºážááŸáá·áº á¡áá¯á¶ážááŒá¯ááŒááºážá¡ááœáẠopen source áá±áá¬áá±á·á Ạáá®ážááŒá¬ážá á¬ááŒáá·áºááá¯ááºáá áºáá¯ááŒá áºáááºá Apache Maven áá²á·ááá¯á· command line ááá¯á·ááá¯áẠframework áá»á¬ážá០á á®áá¶ááá·áºááœá²áááºá Liquibase ááááºáááºááŸá¯áááá¬ááááºá¡áá±á¬áºáá±ážááá¯ážááŸááºážáááºá áá»áœááºá¯ááºááá¯á·ááœáẠáá áºááŸááºáá¬áá¬áá±á«áºááá¯á· ááŸááá·áºáááºááẠááá¯á¡ááºááá·áº á¡ááŒá±á¬ááºážá¡áá²áá»á¬áž ááá¯á·ááá¯áẠscript áá»á¬ážáá«áááºááá·áº áááºážáááºážááŒáá·áº á á®á ááºááœá²á·á ááºážáá¬ážáá±á¬ ááá±á¬áá»ááºáá áºáá¯ááŸáááŒá®áž áááºááá·áºá¡á á®á¡á ááºááŸáá·áº á€á¡ááŒá±á¬ááºážá¡áá²áá»á¬ážááᯠááá·áºááœááºážááá·áºáááºááᯠáá¯á¶ážááŒááºááá·áº ááá¯ááºáá»á¬ážááᯠááááºážáá»á¯ááºáá«áááºá
DBMS á¡ááá·áºááœáẠLiquibase ááẠrollback ááŸááºáááºážááᯠááááºážáááºážáá¬ážááá·áº á¡áá°ážááá¬ážáá áºáá¯ááᯠáááºáá®ážáá¬ážáááºá ááŒá±á¬ááºážáá²ááŸá¯áá áºáá¯á á®ááœáẠááá±á¬áá»ááºááŸáá·áº áá±áá¬áá±á·á áºááŸá á¡ááŒá±á¡áá±ááŒá¬ážááŸá á¡áá»áááºááá¯ááºážááᯠááŸáá¯ááºážááŸááºáá¬ážááá·áº ááœááºáá»ááºáá¬ážáá±á¬ hash áá áºáá¯ááŸááááºá Liquibase ááá»á±ážáá°ážááŒá±á¬áá·áºá áá»áœááºá¯ááºááá¯á·ááẠáá»áœááºá¯ááºááá¯á·áá áá áºá¡á¬áž áááºááá·áºáá¬ážáá áºááá¯á·áááᯠá¡ááŒá±á¬ááºážá¡áá²áá»á¬ážááᯠá¡ááœááºááá° áá¯ááºáá±ážááá¯ááºáááºá ááá¯á¡áá« Autotests áá»á¬ážááᯠá ááºážáááºááŒááºážááŸáá·áº áá¯ááºááœáŸááºááá·áº áá¬ážáá áºáá»á¬ážá¡ááŒáẠááœááºááááºáá¬áá»á¬áž (ááá¯ááºáá±ážááá¯ááºáᬠáá±á¬á·ááºáá²á¡ááºáá»ááºáá®áᬠáá¬ážáá áºáá»á¬áž) áá±á«áºááœáẠáá¯ááºáá±á¬ááºáá±ááŒá®ááŒá áºáááºá
ááá¯á·ááŒá±á¬áá·áº áá»áœááºá¯ááºááá¯á·á áá°áá
áºá
ááºážáááºááŸá¯á
áá
áºááᯠáá»áá·áºáá¯á¶ážááŒááºážá ááááºáá»á¬ážááᯠááœá±ážááœá±ážááŒáá«á
áá¯á·á
- áá¯ááºáá«áááºá ááááá¯á¶ážá¡áá±áá²á·á ááá¯ááá¯áá±á¬ááºážááœááºáá²á· áá±á¬á·ááºáá²ááºááᯠá áááºáá®ááœááºáá±ááŒá®ááá¯á· áá¯á¶ááŒááºáá«áááºá Autotests áá»á¬ážááẠáá±á·á á¥áºáá¯ááºáá±á¬ááºááŒá®áž ááœááºááŸáááá¯ááºáž bug áá«áááºáá»á¬ážá áœá¬ááᯠááŸá¬ááœá±á·áááºá ááá¯á·á¡ááŒááºá á¡áá»áá¯á·áá±á¬á¡ááŸá¬ážáá»á¬ážááẠáá»áœááºá¯ááºááá¯á·á¡ááŸááºááááºááŒá±á¬ááºážáá²ááá¯áá±á¬áá¯ááºáá±á¬ááºááá¯ááºá áœááºážááŸáá·áºáᬠááœááºááá¯ááºáááºá ááºáá±áá«áááºá á€á¡ááŸá¬ážáá»á¬ážááᯠááá¯ááºááá¯ááºá ááºážáááºááŒááºážááŒáá·áº ááœá±á·ááŸáááŒá±á¬ááºáž ááŒááºážáááºáá±á¬áá¶áááá»á¬ážááŸááá«áááºá
- áááá»áá±á¬áá¯ááºáá±á¬ááºááá¯ááºá áœááºážáá»á¬áž ááŸááºáááºá áœá¬á¡áá¯ááºáá¯ááºááŒá±á¬ááºáž á¡ááœá²á·ááŸáá¯á¶ááŒááºááŸá¯áááŸááá²á·áá«áááº... áááá¡áá»ááºááŸá¬á áááºážááẠáá»áœááºá¯ááºááá¯á·áá¡áá±ážááŒá®ážáá±á¬áá¯ááºáááºážá ááºáá»á¬ážááŸáá·áºáááºááá¯ááºáá«áááºá á¥ááá¬á¡á¬ážááŒáá·áºá ááŒá®ážáá²á·áá±á¬ááŒá±á¬ááºáá¡ááœááºážá ááááºáá¬ááá»á¬ážááœáẠá¡ááŒáááºáá±á¡áááºážáááºááŒáá·áº á¡ááŸá¬ážá¡ááœááºážáá»á¬ážááŒá áºáá±á«áºáá²á·áá±á¬áºáááºážá áá¯ááºáá±ááŸá¯ááá¯ááºážááœáẠá¡ááŒá±á¬ááºážá¡áá²áá»á¬ážááŒá¯áá¯ááºáá¬ážáá±á¬áºáááºáž á á áºáá±ážááŒááºážááŒáá·áº áá»áŸá±á¬á·á á»á±ážááŸáá·áº áá±á¬áááºá áºáá»á¬ážááᯠááŒáá·áºááŒá°ážáá¬ááœáẠááŒá¿áá¬áááŸááá²á·áá«á
- á ááºážáááºááŸá¯á¡ááŒáááºáá±ááᯠáá»áŸá±á¬á·áá»ááá¯ááºáá²á·áááºá áá¯ááºáá±á¬ááºáá»ááºá¡áá áºá¡ááœáẠautotest áá»á¬ážááᯠáá±ážáá¬ážáá±á¬ááŒá±á¬áá·áºá áá±á·áá¬áá°áá»á¬ážááŸáá·áº á¡áá»áááºááá¯ááºážá ááºážáááºáá°áá»á¬ážááẠá¡áááºá¡ááœá±ážááá¯ááŒáá·áºáá±á¬áá¯ááºáá áºáá¯ááᯠáááŸááá±á¬ááŒá±á¬áá·áºá á áá á áºááŒá®ážááŒá áºáá«áááºá
- á¡ááá¯á¡áá»á±á¬ááºá ááºážáááºááŒááºážá ááá¯ážáááºááŸá¯áá áºá áááºáá áºááá¯ááºážááᯠáá±á¬á·ááºáá²á¡ááºáá»ááºáá®áá¬áá»á¬ážá á¡áá¯á¶ážááŒá¯áááºá á¥ááá¬á¡á¬ážááŒáá·áºá ááœááºááááºáá¬áá»á¬ážáá±á«áºááŸá á ááºážáááºáá±áá¬ááᯠá¡áá¬ááá¹áá¯áááºáá®ážááŸá¯ áá±á¬áºáá»á°ážááᯠá¡áá¯á¶ážááŒá¯á áááºáá®ážáá¬ážáááºá
- áá±á¬á·ááºáá²áá±ážáá¬ážáá°áá»á¬ážá០á¡ááá¯á¡áá»á±á¬ááºá ááºážáááºááŸá¯á áá áºá "áááºáá¶ááŸá¯" ááᯠáá®ááœááºáá¬ážááẠá¡áá±ážááŒá®ážáá«áááºá áá«á á¡áá±ážááŒá®ážááŒá®áž á¡áá¯á¶ážáááºáááºááá¯áᬠáá¬ážáááºááŸá¯ááŸááá«áááºá áá«á·ááá¯ááºááá¯áẠá¡ááœá±á·á¡ááŒá¯á¶á¡ááá±á¬á· áá«á áá±ážááœá¬áááºááá¯á· ááŒá±á¬ááá¯á·ááááºá Autotest áá»á¬ážááᯠáá±ážááŸááºááẠááá¯á¡ááºáááºá áááºážááá¯á·ááᯠááááºážááááºážáááºááŸáá·áº áá®ááœááºááẠááá¯á¡ááºáááºá ááááºáá»á¬ážááᯠááá¯ááºážááŒá¬ážá áááºááŒá¬áá¬á á€á¡áá»áááºáá¯ááºáá»á ááááºáá»á¬ážááẠáááŒá¬áá áááá¯ááºáááºáá«á áá¯ááºáá¯ááºáá±ážááá¯á·ááœá¬ážá ááá¯ááŒá¿áá¬áá»á¬ážááᯠááá¯ááºááœááºááŒá±ááŸááºážááẠááá¯ááá¯ááœááºáá°áááºá áá»áœááºá¯ááºááá¯á·ááá¯ááºáá¶ááœááºá developer áá»á¬ážááẠáááºážá á®ááŒá®áž áááºážááá¯á·ááá¯ááºáá±á¬ááºááá¯ááºá áœááºážááᯠá¡ááá¯á¡áá»á±á¬ááºá ááºážáááºááŸá¯áá»á¬ážááŒáá·áº áá¯á¶ážá¡á¯ááºááẠáá±á¬ááºážááá¯ááŒáááºá
áá±á¬ááºáá áºáá¯ááá¬áá²
á¡ááá¯á¡áá»á±á¬ááºá
ááºážáááºááŒááºážááá±á¬áá»ááºá ááœá¶á·ááŒáá¯ážááá¯ážáááºáá±ážá¡á
á®á¡á
á¥áºá¡ááŒá±á¬ááºáž ááœá±ážááœá±ážááŒáá«á
áá¯á·á
áá¯ááºáá«áááºá Sportmaster áá á¹á á¬á á±á¬áá·áºááááŸá¯á áá áºá á¡áááºááŸááºáá±ááŒá®áž áááºáááºááœá¶á·ááŒáá¯ážáá±áááœá±á·á autotests ááœá±ááá¯áááºáž á¡áá¯á¶ážáááŸááá®ážáá«áž áá®ááœááºááá¯ááºááŸá¬áá«á ááá¯á·ááŒá±á¬áá·áº ááœá¶á·ááŒáá¯ážááá¯ážáááºáá±ážá á¡ááá áŠážáááºáá»ááºááŸá¬ ááœáŸááºážááŒá¯á¶á§áááᬠáá»á²á·ááœááºáá±ážááŒá áºáááºá
á¡á±á¬áºááá¯á ááºážáááºááŸá¯ á¡áá±á¡ááœáẠááá¯ážáá¬áááºááŸáá·áºá¡áá»áŸ áááºážááá¯á·á á¡áá¯ááºá á¯á á¯áá±á«ááºážá á¡áá»áááºááẠáááŒááºážááŒááºáž ááá¯ážáá¬áááºááŒá áºááŒá®áž áá»áœááºá¯ááºááá¯á·ááẠá áœááºážáá±á¬ááºáááºááá¯ááºáᬠááŒá¿áá¬ááᯠáá áºáááºááŒááºááœá¬ážááááºááŒá áºáá«áááºá ááŒá áºááá¯ááºáá»á±á¡áá»á¬ážá á¯ááŸá¬á ááŒá±ááŸááºážáá»ááºááŸá¬ parallel threads á¡áá±á¡ááœááºááᯠááá¯ážááŒáŸáá·áºáááºááŒá áºáááºá
áá«áá±ááá·áº áá«ááœá±á áááá¬áááºááŸá¬ážáá²á· ááœá¶á·ááŒáá¯ážááá¯ážáááºááŸá¯áááºážáááºážááœá±áá«á ááá¯áá¡áá±ážá¡ááœá²ááá¯ááºáá±á¬á¡áá¬ááᯠáá»áœááºá¯ááºááá¯á·ááŒá±á¬ááá¯áá«áá á¡á±á¬ááºáá«ááá¯á·ááᯠáá®ážáá±á¬ááºážááá¯ážááŒáá«áááºá
- ááá¯á¡áá« á¡ááá¯á¡áá»á±á¬ááºá ááºážáááºááŸá¯áá»á¬ážááᯠDBMS á¡ááá·áºááœáẠá á®áá¶ááá·áºááœá²áá¬ážáá«áááºá á¡á±á¬ááºááŒááºáá±á¬á¡áá¯ááºá¡ááœáẠPL/SQL á¡ááááá¬ááá¯á¡ááºáááºá ááá¯á¡ááºáá«áá á áá áºá á®áá¶ááá·áºááœá²ááŸá¯ (á¥ááá¬á á áááºááŒááºáž ááá¯á·ááá¯áẠáááºáá¬áá±áá¬áááºáá®ážááŒááºáž) ááᯠJenkins ááá¯á·ááá¯áẠá¡áá¬ážáá°áá áºáá¯áá¯ááᯠá¡áá¯á¶ážááŒá¯á á á®áá¶ááá·áºááœá²áá°á¡ááá·áºá¡áá»áá¯ážá¡á á¬ážá¡áá»áá¯á·á០áááºááŸá¬ážááá¯ááºáááºá
- áá°ááá¯ááºážááẠá¡áá±á¡ááœááºááŸáá·áº á¡áááºá¡ááœá±ážááœáŸááºážááááºážáá»á¬ážááᯠááŸá
áºáááºááŒáááºá á¡ááá¯á¡áá»á±á¬ááºá
ááºážáááºááŒááºážá¡ááœááºá ááá¯áá²á·ááá¯á·áá±á¬ universal indicator ááẠCode Coverage ááá¯á·ááá¯áẠcode coverage metric ááŒá
áºáááºá á€ááœáŸááºááááºážááá¯á¡áá¯á¶ážááŒá¯á á
ááºážáááºááŸá¯á¡á±á¬ááºááœáẠáá»áœááºá¯ááºááá¯á·áá
áá
áºááá¯ááºááá¬ááá¯ááºááŸá¯ááºážááẠautotests ááŒáá·áº á¡áá»á¯á¶ážáááºááŒá±á¬ááºáž áá¯á¶ážááŒááºááá¯ááºáá«áááºá áá¬ážááŸááºáž 12.2 ááŸá
áááºá Oracle ááẠá€áááºááá
áºááᯠááœááºáá»ááºááá¯ááºá
áœááºážááŸáááŒá®áž áá¯á¶ááŸáẠDBMS_PLSQL_CODE_COVERAGE áááºáá±á·áá»áºááᯠá¡áá¯á¶ážááŒá¯ááẠá¡ááŒá¶ááŒá¯áá¬ážáááºá
áá»áœááºá¯ááºááá¯á·á á¡ááá¯á¡áá»á±á¬ááºá ááºážáááºááŸá¯á áá áºááẠáá áºááŸá áºáá»á±á¬áºáá¬ááŸááá±ážááŒá®áž á¡áá»á¯á¶ážáááºááŸá¯ááᯠá¡áá²ááŒááºááẠá¡áá»áááºáááºáá«áááºá áá«ááá±á¬ááºáá¯á¶ážááá±á¬áá»áẠ(Sportmaster ááŸááá¯ááºáá±á¬ááá±á¬áá»ááº) ááœááºá€ááŒá áºáá»ááºáá²á·áááºá autotests áá»á¬ážááᯠáá¯ááºáá±á¬ááºááŒá®áž áá áºááŸá áºá¡ááŒá¬ááœáẠá á®áá¶ááá·áºááœá²ááŸá¯ááẠáá»áœááºá¯ááºááá¯á· ááœáŸááºážááŒá¯á¶áá¬ážáá±á¬ áá¯ááºá áá¬ááá¯ááºááŸá¯ááºážááᯠá¡áá²ááŒááºááẠáá¬áááºááᯠáááºááŸááºáá±ážáá«áááºá 1% áááºááá¯áá±á¬ááœáŸááºážááŒá¯á¶ááŸá¯ááŸáá·áºá¡áá°, á á®áá¶ááá·áºááœá²áá°áá»á±á¬áºááœáŸááºáááá·áºáááºá áá»áœááºá¯ááºááá¯á·á developer áá»á¬ážááẠ10% ááá·áºááááºááá¯áá»áŸá±á¬áºááá·áºáá¬ážáááºá áá»áœááºá¯ááºááá¯á·ááẠáá¯ááºááœáŸááºážááŒá¯á¶ááŸá¯ááᯠáá±á¬ááºááœááºážááŒá®áž ááá¯ááºážáá¬ááŒá®áž 20% ááá²á·áááºá áá¯ááºááŒá¯áááºá áá»áœááºá¯ááºááá¯á·ááẠáá¯á¡ááœááºááœá¬ážáááºá ááá¯á·áá±á¬áº áááºážá¡ááœáẠáá»áœááºá¯ááºááá¯á·ááœá¬ážáá¯á¶ááŸáá·áº áá±á¬ááºááŸááœá¬ážááá·áºáá±áá¬ááẠáá¯á¶ážáááŒá¬ážáá¬ážáá±á¬ áá¬ááºáááºážááŒá áºáááºá
- Autotests ááẠááááœá±á·áá¬ážáá±á¬ áááºáááºáá±á¬ááºááŸá¯áá»á¬ážááᯠá ááºážáááºááá¯ááºáááºá Oracle á ááá·áºááᯠáá®ááá¯áá¯ááºáá±á¬ááºááá¯ááºáá²á·á¡ááœáẠááŒá¿áá¬áá»á¬ážá áœá¬ááᯠááŒá¯á¶ááœá±á·ááá±á¬á·ááŸá¬ ááá¯ááºáá«áá°ážá
- ááá¯á·á¡ááŒááºá áá»áœááºá¯ááºááá¯á·á á¡ááá¯á¡áá»á±á¬ááºá ááºážáááºááŸá¯á áá áºááᯠá¡ááŒá¬ážááá±á¬áá»ááºááœáẠá¡áá¯á¶ážááŒá¯ááá¯ááºáááºááŒá áºáááºá áá»áœááºá¯ááºááá¯á·áááŸááá±á¬ááŒá±ááŸááºážáá»ááºááẠuniversal ááŒá áºááŒá®áž Oracle ááᯠá¡áá¯á¶ážááŒá¯áááºáᬠááá¯á¡ááºáá«áááºá á¡ááŒá¬ážáá±á¬ Sportmaster ááá±á¬áá»ááºáá»á¬ážááœáẠá¡ááá¯á¡áá»á±á¬ááºá ááºážáááºááŒááºážááœáẠá áááºáááºá á¬ážááŸá¯ááŸáááŒá±á¬ááºáž ááŒá¬ážáááááŒá®ážá áááºážááá¯á·áᶠááœá¬ážáá«áááºá
ááœá±á·ááŸááá»ááºáá»á¬áž
ááŒááºáá»á¯ááºááŒáá·áºáá¡á±á¬ááºá Sportmaster ááŸá áá á¹á á¬á á±á¬áá·áºááááŸá¯á áá Ạááá±á¬áá»ááºááœáẠáá»áœááºá¯ááºááá¯á·ááẠá¡ááá¯á¡áá»á±á¬áẠá ááºážáááºááŒááºážá áá áºááᯠá¡áá±á¬ááºá¡áááºáá±á¬áºááá¯ááºáá²á·áááºá áááºážáá¡ááŒá±áá¶ááẠStephen Feuerstein á០utPLSQL ááŒá±ááŸááºážáá»ááºááŒá áºáááºá utPLSQL áááºážáá»ááºááẠautotests ááŸáá·áº auxiliary ááá¯ááºááá¯ááºáá±ážáá¬ážáá±á¬ module áá»á¬ážá¡ááœáẠcode ááŒá áºáááº- launcherá data generation module ááŸáá·áº á¡ááŒá¬ážá¡áá¬áá»á¬ážá Autotests áá»á¬ážááẠáá±á·á ááºááŸáá·áºá¡áá»áŸ áá¯ááºáá±á¬ááºáá±ááŒá®áž á¡áá±ážá¡ááŒá®ážáá¯á¶ážááŸá¬ á¡áá¯ááºááŸáá·áº á¡áá»áá¯ážááŸááááºá á¡áááºá¡ááœá±ážááŒáá·áº áá±á¬á·ááºáá²ááºááᯠá áááºáá¯ááºáá±á¬á·áááºáᯠáá»áœááºá¯ááºááá¯á· áá¯á¶ááŒááºáá«áááºá áá áºáá»áááºáááºážááŸá¬áááºá ááááºá¡ááŒá±ááẠuniversal ááŒá áºááŒá®áž Oracle DBMS ááœáẠá¡ááá¯á¡áá»á±á¬ááºá ááºážáááºááŸá¯ááᯠá á¯á ááºážáááºááá¯á¡ááºááá·áº áááºááá·áºááá±á¬áá»ááºááœááºáááᯠááœááºáááºá áœá¬ á¡áá¯á¶ážáá»ááá¯ááºáááºá
PS á€áá±á¬ááºážáá«ážááẠá¡ááœááºáááá»áááºááá¯ááºáá«á á á¬áá¬ážáá»á¬ážá áœá¬áá«ááŸáááŒá®áž áááºááœá±á·ááœáẠáááºážááá¬ááá¯ááºáᬠá¥ááá¬áá»á¬ážáááŸááá«á áá±á«ááºážá ááºááẠáá áºááá¹áá¬áá¯á¶ážá á áááºáááºá á¬ážá áá¬ááŒá áºáá«áá áááºážááᯠáááºáá¯ááºááẠá¡áááºááá·áºááŒá áºááŒá®ážá ááŒá®ážáá²á·áá±á¬ ááŒá±á¬ááºáá¡ááœááºáž áá¬ááœá±ááŒá±á¬ááºážáá²ááœá¬ážáááºááᯠááŒá±á¬ááŒááŒá®áž áá¯ááºááá°áá¬áá»á¬ážáá±ážáá«áááºá
á¡áá¬áááºááœáẠá¡áá±ážáá±ážááá·áºááá·áºá¡áá»ááºáá»á¬áž ááá¯á·ááá¯áẠáá¯ááºáá±á¬áºáááºááá¯á¡ááºááá·áºáá±ážááœááºážáá»á¬ážááŸááá»áŸáẠááŸááºáá»ááºáá±ážáá«á
á
á¬áááºážááœááºážá¡áá¯á¶ážááŒá¯áá°áá»á¬ážáᬠá
á
áºáááºážááœáẠáá«áááºááá¯ááºáá«áááºá
áá®á¡ááŒá±á¬ááºáž áá»á¬ážáá»á¬ážáá±ážáááá¬ážá
-
áá¯ááºáá«áááº
-
ááá«áááºáá»á±ážáá°ážáá«
á¡áá¯á¶ážááŒá¯áá° ááá áŠáž áá²áá±ážáá²á·áááºá á¡áá¯á¶ážááŒá¯áá° 12 áŠáž ááŒá¬ážáá±áá²á·áá«áááºá
source: www.habr.com