Dynamic - White box
РазÑабПÑка ÑеÑÑПв ЌеÑПЎПЌ белПгП ÑÑОка (white-box test design technique): ÐÑПÑеЎÑÑа ÑазÑабПÑкО ОлО вÑбПÑа ÑеÑÑПвÑÑ
ÑÑеМаÑОев Ма ПÑМПваМОО аМалОза вМÑÑÑеММей ÑÑÑÑкÑÑÑÑ ÐºÐŸÐŒÐ¿ÐŸÐœÐµÐœÑа ОлО ÑОÑÑеЌÑ. (ISTQB)
ÐÑМПваММÑе Ма ÑÑÑÑкÑÑÑе ЌеÑÐŸÐŽÑ Ð¿ÑПекÑОÑÐŸÐ²Ð°ÐœÐžÑ ÑеÑÑОÑÐŸÐ²Ð°ÐœÐžÑ ÐžÑпПлÑзÑÑÑÑÑ ÐŽÐ»Ñ Ð¿ÐŸÐ»ÑÑÐµÐœÐžÑ ÐºÐŸÐœÑÑПлÑМÑÑ
пÑОЌеÑПв Оз ÑÑÑÑкÑÑÑМПй Ñ
аÑакÑеÑОÑÑОкО, МапÑÐžÐŒÐµÑ ÑÑÑÑкÑÑÑÑ ÐžÑÑ
ПЎМПгП кПЎа ОлО ÑÑÑÑкÑÑÑÑ ÐŒÐµÐœÑ. ÐÑлО ÑÑО ЌеÑÐŸÐŽÑ Ð¿ÑОЌеМÑÑÑÑÑ Ðº ОÑÑ
ÐŸÐŽÐœÐŸÐŒÑ ÐºÐŸÐŽÑ Ð¿ÑОлПжеМОÑ, ÑП ПжОЎаеЌÑе ÑезÑлÑÑаÑÑ ÐŽÐ»Ñ ÐºÐŸÐœÑÑПлÑМÑÑ
пÑОЌеÑП в пПлÑÑаÑÑÑÑ ÐžÐ· базОÑа ÑеÑÑОÑПваМОÑ. ÐÑбПÑ, какОе Оз ПÑМПваММÑÑ
Ма ÑÑÑÑкÑÑÑе ЌеÑПЎПв пÑПекÑОÑÐŸÐ²Ð°ÐœÐžÑ ÑеÑÑОÑÐŸÐ²Ð°ÐœÐžÑ ÐžÑпПлÑзПваÑÑ Ð² кажЎПЌ кПМкÑеÑМПЌ ÑлÑÑае, завОÑÐžÑ ÐŸÑ Ð¿ÑОÑÐŸÐŽÑ Ð±Ð°Ð·ÐžÑа ÑеÑÑОÑÐŸÐ²Ð°ÐœÐžÑ Ðž ÐŸÑ Ð¿ÑОÑÑÑОÑ
ÑОÑкПв. (ÐÐСТ 56920)
ÐПÑПк ЎаММÑÑ
(data flow): ÐбÑÑÑакÑМПе пÑеЎÑÑавлеМОе пПÑлеЎПваÑелÑМПÑÑО О вПзЌПжМÑÑ
ОзЌеМеМОй ÑПÑÑПÑÐœÐžÑ ÐŸÐ±ÑекÑПв ЎаММÑÑ
, пÑО кПÑПÑПЌ ÑПÑÑПÑМОе ПбÑекÑа ÑÑП: ÑПзЎаМОе, ОÑпПлÑзПваМОе лОбП ÑМОÑÑПжеМОе. (Beizer)
ÐПÑПк ÑпÑÐ°Ð²Ð»ÐµÐœÐžÑ (control flow): ÐПÑлеЎПваÑелÑМПÑÑÑ ÑПбÑÑОй (пÑÑей) в пÑПÑеÑÑе вÑÐ¿ÐŸÐ»ÐœÐµÐœÐžÑ ÐºÐŸÐŒÐ¿ÐŸÐœÐµÐœÑа ОлО ÑОÑÑеЌÑ. (ISTQB)
ÐОМаЌОÑеÑкПе ÑеÑÑОÑПваМОе ЌеÑПЎПЌ белПгП ÑÑОка - ÑÑП ÑÑÑаÑегОÑ, ПÑÐœÐŸÐ²Ð°ÐœÐœÐ°Ñ ÐœÐ° вМÑÑÑеММОÑ
пÑÑÑÑ
, ÑÑÑÑкÑÑÑе О ÑеалОзаÑОО ÑеÑÑОÑÑеЌПгП пÑПгÑаЌЌМПгП ПбеÑпеÑеМОÑ. ТеÑÑÑ Ð·ÐŽÐµÑÑ Ð²ÑпПлМÑÑÑÑÑ ÐŽÐžÐœÐ°ÐŒÐžÑеÑкО, Ñ.е. Ñ Ð·Ð°Ð¿ÑÑкПЌ ПбÑекÑа ÑеÑÑОÑÐŸÐ²Ð°ÐœÐžÑ Ðž ПÑÐœÐŸÐ²Ð°ÐœÑ ÐœÐ° ÑазлОÑМÑÑ
вОЎаÑ
пПкÑÑÑÐžÑ ÐºÐŸÐŽÐ° (пÑÑей ОÑÐ¿ÐŸÐ»ÐœÐµÐœÐžÑ Ð¿ÑПгÑаЌЌÑ).
ÐлПбалÑМП ПÑМПвМÑÑ
ÑеÑ
МОк ЎОМаЌОÑеÑкПгП ÑеÑÑОÑÐŸÐ²Ð°ÐœÐžÑ ÐŒÐµÑПЎПЌ белПгП ÑÑОка вÑегП Ўве:
- 1.ТеÑÑОÑПваМОе пПÑПка ÑпÑÐ°Ð²Ð»ÐµÐœÐžÑ (Control Flow Testing);
- 2.ТеÑÑОÑПваМОе пПÑПка ЎаММÑÑ (Data Flow Testing).
ЀакÑОÑеÑкО, ÑÑП ЎОМаЌОÑеÑÐºÐ°Ñ ÑаÑÑÑ ÐŸÐŽÐœÐŸÐ³ÐŸ ÑелÑМПгП ÑеÑÑОÑПваМОÑ, ÑÑаÑОÑеÑÐºÐ°Ñ ÑаÑÑÑ ÐºÐŸÑПÑПгП - аМалОз О пПÑÑÑПеМОе гÑаÑа, ПпОÑÑваеÑÑÑ Ð² пÑеЎÑÐŽÑÑей ÑеЌе пÑП ÑÑаÑОÑеÑкОй аМалОз, а Ма ÑÑПЌ ПпÑеЎелÑеÑÑÑ ÑелевПе пПкÑÑÑОе (Coverage Target), ÑПзЎаÑÑÑÑ ÑППÑвеÑÑÑвÑÑÑОе ÑеÑÑ-кейÑÑ, ÑеÑÑÑ ÐžÑпПлМÑÑÑÑÑ Ðž ÑезÑлÑÑаÑÑ Ð²ÑÐ¿ÐŸÐ»ÐœÐµÐœÐžÑ ÑеÑÑПв аМалОзОÑÑÑÑÑÑ.
- 1.УÑПвМО ÑеÑÑПвПг П пПкÑÑÑÐžÑ Ð² ÑеÑÑОÑПваМОО пПÑПка ÑпÑавлеМОÑ
ÐПЎ âпПкÑÑÑОеЌ" ОЌееÑÑÑ Ð² Ð²ÐžÐŽÑ ÐŸÑМПÑеМОе ПбÑеЌа кПЎа, кПÑПÑÑй Ñже бÑл пÑПвеÑеМ, к ПбÑеЌÑ, кПÑПÑÑй ПÑÑалПÑÑ Ð¿ÑПвеÑОÑÑ. Ð ÑеÑÑОÑПваМОО пПÑПка ÑпÑÐ°Ð²Ð»ÐµÐœÐžÑ Ð¿ÐŸÐºÑÑÑОе ПпÑеЎелÑеÑÑÑ Ð² вОЎе МеÑкПлÑкОÑ
ÑазлОÑМÑÑ
ÑÑПвМей. ÐаЌеÑОЌ, ÑÑП ÑÑО ÑÑПвМО пПкÑÑÑÐžÑ Ð¿ÑеЎÑÑÐ°Ð²Ð»ÐµÐœÑ ÐœÐµ пП пПÑÑЎкÑ. ÐÑП пПÑПЌÑ, ÑÑП в МекПÑПÑÑÑ
ÑлÑÑаÑÑ
пÑПÑе ПпÑеЎелОÑÑ Ð±ÐŸÐ»ÐµÐµ вÑÑПкОй ÑÑÐŸÐ²ÐµÐœÑ Ð¿ÐŸÐºÑÑÑОÑ, а заÑеЌ ПпÑеЎелОÑÑ Ð±ÐŸÐ»ÐµÐµ МОзкОй ÑÑÐŸÐ²ÐµÐœÑ Ð¿ÐŸÐºÑÑÑÐžÑ Ð² ÑÑлПвОÑÑ
вÑÑПкПгП.
100% пПкÑÑÑОе ПпеÑаÑПÑПв (Statement/node coverage). ÐпеÑаÑÐŸÑ (statement) - ÑÑП ÑÑÑМПÑÑÑ ÑзÑка пÑПгÑаЌЌОÑПваМОÑ, ПбÑÑМП ÑвлÑÑÑаÑÑÑ ÐŒÐžÐœÐžÐŒÐ°Ð»ÑМÑÐŒ МеЎелОЌÑÐŒ ОÑпПлМÑеЌÑÐŒ блПкПЌ (ISTQB). ÐПкÑÑÑОе ПпеÑаÑПÑПв - ÑÑП ЌеÑПЎ пÑПекÑОÑÐŸÐ²Ð°ÐœÐžÑ ÑеÑÑПв ЌеÑПЎПЌ белПгП ÑÑОка, кПÑПÑÑй вклÑÑÐ°ÐµÑ Ð² ÑÐµÐ±Ñ Ð²ÑпПлМеМОе вÑеÑ
ОÑпПлМÑеЌÑÑ
ПпеÑаÑПÑПв (if, for О switch) в ОÑÑ
ПЎМПЌ кПЎе как ЌОМОЌÑÐŒ ПЎОМ Ñаз. ÐÑПÑеМÑМПе ПÑМПÑеМОе ПпеÑаÑПÑПв, ОÑпПлМÑеЌÑÑ
МабПÑПЌ ÑеÑÑПв, к ОÑ
ПбÑÐµÐŒÑ ÐºÐŸÐ»ÐžÑеÑÑÐ²Ñ ÑвлÑеÑÑÑ ÐŒÐµÑÑОкПй пПкÑÑÑÐžÑ ÐŸÐ¿ÐµÑаÑПÑПв. ÐПÑÐžÑ ÐÐµÐ¹Ð·ÐµÑ ÐœÐ°Ð¿ÐžÑал: "ÑеÑÑОÑПваМОе, ЌеМÑÑее ÑеЌ ÑÑП (100% пПкÑÑÑОе ПпеÑаÑПÑПв), ÐŽÐ»Ñ ÐœÐŸÐ²ÐŸÐ³ÐŸ пÑПгÑаЌЌМПгП ПбеÑпеÑÐµÐœÐžÑ ÑвлÑеÑÑÑ ÐœÐµÐŽÐŸÐ±ÑПÑПвеÑÑМÑÐŒ О ЎПлжМП бÑÑÑ Ð¿ÑОзМаМП пÑеÑÑÑплеМОеЌ. âŠâ. ÐеÑЌПÑÑÑ ÐœÐ° ÑП, ÑÑП ÑÑП ÐŒÐŸÐ¶ÐµÑ Ð¿ÐŸÐºÐ°Ð·Ð°ÑÑÑÑ ÑазÑЌМПй ОЎеей, Ма ÑакПЌ ÑÑПвМе пПкÑÑÑÐžÑ ÐŒÐŸÐ¶ÐµÑ Ð±ÑÑÑ Ð¿ÑПпÑÑеМП ЌМПгП ЎеÑекÑПв О заÑÑÑЎМеМ аМалОз пПкÑÑÑÐžÑ ÐœÐµÐºÐŸÑПÑÑÑ
ÑпÑавлÑÑÑОÑ
ÑÑÑÑкÑÑÑ. ÐПкÑÑÑОе ПпеÑаÑПÑПв пПзвПлÑÐµÑ ÐœÐ°Ð¹ÑО:
- ÐеОÑпПлÑзПваММÑе вÑÑÐ°Ð¶ÐµÐœÐžÑ (Unused Statements);
- ÐеÑÑвÑй кПЎ (Dead Code);
- ÐеОÑпПлÑзÑеЌÑе веÑвО (Unused Branches);
- ÐеЎПÑÑаÑÑОе ПпеÑаÑПÑÑ (Missing Statements);
100% пПкÑÑÑОе алÑÑеÑМаÑОв/веÑвей (Decision/branch/all-edges/basis path/DC/C2/ decision-decision-path/edge coverage). «РеÑеМОе» - ÑÑП пÑПгÑÐ°ÐŒÐŒÐœÐ°Ñ ÑПÑка, в кПÑПÑПй control flow ÐžÐŒÐµÐµÑ ÐŽÐ²Ð° ОлО бПлее алÑÑеÑМаÑОвМÑÑ
ЌаÑÑÑÑÑа (веÑвО). Ðа ÑÑПЌ ÑÑПвМе ЎПÑÑаÑПÑМП ÑакПгП МабПÑа ÑеÑÑПв, в кПÑПÑПЌ кажЎÑй Ñзел Ñ Ð²ÐµÑвлеМОеЌ (алÑÑеÑМаÑОва), ОЌеÑÑОй TRUE ОлО FALSE Ма вÑÑ
ПЎе, вÑпПлМÑеÑÑÑ ÐºÐ°Ðº ЌОМОЌÑÐŒ ПЎОМ Ñаз, ÑакОЌ ПбÑазПЌ, ÐŽÐ»Ñ Ð¿ÐŸÐºÑÑÑÐžÑ Ð¿ÐŸ веÑкаЌ ÑÑебÑеÑÑÑ ÐºÐ°Ðº ЌОМОЌÑÐŒ Ўва ÑеÑÑПвÑÑ
пÑОЌеÑа. Ðа ЎаММПЌ ÑÑПвМе Ме ÑÑОÑÑваÑÑÑÑ Ð»ÐŸÐ³ÐžÑеÑкОе вÑÑажеМОÑ, зМаÑÐµÐœÐžÑ ÐºÐŸÐŒÐ¿ÐŸÐœÐµÐœÑ ÐºÐŸÑПÑÑÑ
пПлÑÑаÑÑÑÑ Ð²ÑзПвПЌ ÑÑМкÑОй. РПÑлОÑОе ÐŸÑ Ð¿ÑеЎÑÐŽÑÑегП ÑÑÐŸÐ²ÐœÑ Ð¿ÐŸÐºÑÑÑÐžÑ ÐŽÐ°ÐœÐœÑй ЌеÑПЎ ÑÑОÑÑÐ²Ð°ÐµÑ Ð¿ÐŸÐºÑÑÑОе ÑÑлПвМÑÑ
ПпеÑаÑПÑПв Ñ Ð¿ÑÑÑÑЌО веÑкаЌО. ÐПкÑÑÑОе алÑÑеÑМаÑОв Ме гаÑаМÑОÑÑÐµÑ Ð¿ÐŸÐºÑÑÑОе вÑеÑ
пÑÑей, МП пÑО ÑÑПЌ гаÑаМÑОÑÑÐµÑ Ð¿ÐŸÐºÑÑÑОе вÑеÑ
ПпеÑаÑПÑПв;
ÐÐ»Ñ Ð±ÐŸÐ»ÐµÐµ пПлМПгП аМалОза ÐºÐŸÐŒÐ¿ÐŸÐœÐµÐœÑ ÑÑлПвОй в лПгОÑеÑкОÑ
ПпеÑаÑПÑаÑ
ÑÑÑеÑÑвÑÑÑ ÑлеЎÑÑÑОе ÑÑО ЌеÑПЎа, ÑÑОÑÑваÑÑОÑ
ÑÑÑÑкÑÑÑÑ ÐºÐŸÐŒÐ¿ÐŸÐœÐµÐœÑ ÑÑлПвОй О зМаÑеМОÑ, кПÑПÑÑе ПМО пÑОМОЌаÑÑ Ð¿ÑО вÑпПлМеМОО ÑеÑÑПвÑÑ
пÑОЌеÑПв.
100% пПкÑÑÑОе ÑÑлПвОй (Condition/Toggle Coverage). РаÑÑЌаÑÑОваÑÑÑÑ ÑПлÑкП вÑÑÐ°Ð¶ÐµÐœÐžÑ Ñ Ð»ÐŸÐ³ÐžÑеÑкОЌО ПпеÑаМЎаЌО, МапÑОЌеÑ, AND, OR, XOR. Ðа ÑÑПЌ ÑÑПвМе ЎПÑÑаÑПÑМП ÑакПгП МабПÑа ÑеÑÑ-кейÑПв, в кПÑПÑПЌ кажЎПе ÑÑлПвОе, ОЌеÑÑее TRUE О FALSE Ма вÑÑ
ПЎе, вÑпПлМеМП как ЌОМОЌÑÐŒ ПЎОМ Ñаз. ÐПкÑÑÑОе ÑÑлПвОй ПбеÑпеÑÐžÐ²Ð°ÐµÑ Ð»ÑÑÑÑÑ ÑÑвÑÑвОÑелÑМПÑÑÑ Ðº control flow, ÑеЌ decision coverage. ÐÐ»Ñ ÐŸÐ±ÐµÑпеÑÐµÐœÐžÑ Ð¿ÐŸÐ»ÐœÐŸÐ³ÐŸ пПкÑÑÑÐžÑ Ð¿ÐŸ ÐŽÐ°ÐœÐœÐŸÐŒÑ ÐŒÐµÑÐŸÐŽÑ ÐºÐ°Ð¶ÐŽÐ°Ñ ÐºÐŸÐŒÐ¿ÐŸÐœÐµÐœÑа лПгОÑеÑкПгП ÑÑÐ»ÐŸÐ²ÐžÑ Ð² ÑезÑлÑÑаÑе вÑÐ¿ÐŸÐ»ÐœÐµÐœÐžÑ ÑеÑÑПвÑÑ
пÑОЌеÑПв ЎПлжМа пÑОМОЌаÑÑ Ð²Ñе вПзЌПжМÑе зМаÑеМОÑ, МП пÑО ÑÑПЌ Ме ÑÑебÑеÑÑÑ, ÑÑÐŸÐ±Ñ ÑаЌП лПгОÑеÑкПе ÑÑлПвОе пÑОМОЌалП вÑе вПзЌПжМÑе зМаÑеМОÑ, Ñ.е. Condition Coverage Ме ÐŽÐ°ÐµÑ Ð³Ð°ÑаМÑОО пПлМПгП decision coverage;
100% пПкÑÑÑОе ÑÑлПвОй + алÑÑеÑМаÑОв (Decision + Condition coverage). Ðа ÑÑПЌ ÑÑПвМе ÑеÑÑ-кейÑÑ ÑПзЎаÑÑÑÑ ÐŽÐ»Ñ ÐºÐ°Ð¶ÐŽÐŸÐ³ÐŸ ÑÑÐ»ÐŸÐ²ÐžÑ Ðž ÐŽÐ»Ñ ÐºÐ°Ð¶ÐŽÐŸÐ¹ алÑÑеÑМаÑОвÑ, Ñ.е. ЎаММÑй ЌеÑПЎ ÑПÑеÑÐ°ÐµÑ ÑÑÐµÐ±ÐŸÐ²Ð°ÐœÐžÑ Ð¿ÑеЎÑÐŽÑÑОÑ
ЎвÑÑ
ЌеÑПЎПв - ÐŽÐ»Ñ ÐŸÐ±ÐµÑпеÑÐµÐœÐžÑ Ð¿ÐŸÐ»ÐœÐŸÐ³ÐŸ пПкÑÑÑÐžÑ ÐœÐµÐŸÐ±Ñ
ПЎОЌП, ÑÑÐŸÐ±Ñ ÐºÐ°Ðº лПгОÑеÑкПе ÑÑлПвОе, Ñак О ÐºÐ°Ð¶ÐŽÐ°Ñ ÐµÐ³ÐŸ кПЌпПМеМÑа пÑОМÑла вÑе вПзЌПжМÑе зМаÑеМОÑ;
100% пПкÑÑÑÐžÑ ÐŒÐœÐŸÐ¶ÐµÑÑвеММÑй ÑÑлПвОй (Multiple condition coverage). ÐÐ»Ñ Ð²ÑÑÐ²Ð»ÐµÐœÐžÑ ÐœÐµÐ²ÐµÑМП заЎаММÑÑ
лПгОÑеÑкОÑ
ÑÑМкÑОй бÑл пÑеЎлПжеМ ЌеÑПЎ пПкÑÑÑÐžÑ Ð¿ÐŸ вÑеЌ ÑÑлПвОÑÐŒ. ÐÑО ЎаММПЌ ЌеÑПЎе пПкÑÑÑÐžÑ ÐŽÐŸÐ»Ð¶ÐœÑ Ð±ÑÑÑ Ð¿ÑПвеÑÐµÐœÑ Ð²Ñе вПзЌПжМÑе МабПÑÑ Ð·ÐœÐ°ÑеМОй ÐºÐŸÐŒÐ¿ÐŸÐœÐµÐœÑ Ð»ÐŸÐ³ÐžÑеÑкОÑ
ÑÑлПвОй: ÑÑлПвОй, алÑÑеÑМаÑОв О ÑÑлПвОй/алÑÑеÑМаÑОв. Т.е. в ÑлÑÑае n ÐºÐŸÐŒÐ¿ÐŸÐœÐµÐœÑ Ð¿ÐŸÑÑебÑеÑÑÑ 2^n ÑеÑÑПвÑÑ
пÑОЌеÑПв, кажЎÑй Оз кПÑПÑÑÑ
пÑПвеÑÑÐµÑ ÐŸÐŽÐžÐœ ÐœÐ°Ð±ÐŸÑ Ð·ÐœÐ°ÑеМОй. ТеÑÑÑ, МеПбÑ
ПЎОЌÑе ÐŽÐ»Ñ Ð¿ÐŸÐ»ÐœÐŸÐ³ÐŸ пПкÑÑÑÐžÑ Ð¿ÐŸ ÐŽÐ°ÐœÐœÐŸÐŒÑ ÐŒÐµÑПЎÑ, ЎаÑÑ Ð¿ÐŸÐ»ÐœÑÑ ÑаблОÑÑ ÐžÑÑОММПÑÑО ÐŽÐ»Ñ Ð»ÐŸÐ³ÐžÑеÑкПгП вÑÑажеМОÑ. ÐеÑЌПÑÑÑ ÐœÐ° ПÑевОЎМÑÑ Ð¿ÐŸÐ»ÐœÐŸÑÑ ÑОÑÑÐµÐŒÑ ÑеÑÑПв, ПбеÑпеÑОваÑÑей ÑÑÐŸÑ ÑÑÐŸÐ²ÐµÐœÑ Ð¿ÐŸÐºÑÑÑОÑ, ЎаММÑй ЌеÑПЎ ÑеЎкП пÑОЌеМÑеÑÑÑ ÐœÐ° пÑакÑОке в ÑвÑзО Ñ ÐµÐ³ÐŸ ÑлПжМПÑÑÑÑ Ðž ОзбÑÑПÑМПÑÑÑÑ. ÐÑе ПЎМОЌ МеЎПÑÑаÑкПЌ ЌеÑПЎа ÑвлÑеÑÑÑ Ð·Ð°Ð²ÐžÑОЌПÑÑÑ ÐºÐŸÐ»ÐžÑеÑÑва ÑеÑÑПвÑÑ
пÑОЌеÑПв ÐŸÑ ÑÑÑÑкÑÑÑÑ Ð»ÐŸÐ³ÐžÑеÑкПгП вÑÑажеМОÑ. ÐÑПЌе ÑПгП, пПкÑÑÑОе ЌМПжеÑÑвеММÑÑ
ÑÑлПвОй Ме гаÑаМÑОÑÑÐµÑ Ð¿ÐŸÐºÑÑÑОе вÑеÑ
пÑÑей;
ÐПкÑÑÑОе беÑкПМеÑМПгП ÑОÑла пÑÑей. ÐÑлО, в ÑлÑÑае заÑОклОваМОÑ, кПлОÑеÑÑвП пÑÑей ÑÑаМПвОÑÑÑ Ð±ÐµÑкПМеÑМÑÐŒ, ÑП ÐžÐŒÐµÐµÑ ÑÐŒÑÑл ÑÑÑеÑÑвеММП ОÑ
ÑПкÑаÑОÑÑ, ПгÑаМОÑОв кПлОÑеÑÑвП ÑОклПв вÑпПлМеМОÑ, ÑÑП Ð¿ÐŸÐ·Ð²ÐŸÐ»ÐžÑ ÑЌеМÑÑОÑÑ ÐºÐŸÐ»ÐžÑеÑÑвП ÑеÑÑПвÑÑ
ÑлÑÑаев. ÐеÑвÑй ваÑÐžÐ°ÐœÑ - Ме вÑпПлМÑÑÑ ÑОкл ÑПвÑеЌ; вÑПÑПй - вÑпПлМОÑÑ ÑОкл ПЎОМ Ñаз; ÑÑеÑОй - вÑпПлМОÑÑ ÑОкл n Ñаз, гЎе n - ÑÑП МебПлÑÑПе зМаÑеМОе, пÑеЎÑÑавлÑÑÑее ÑОЌвПлОÑеÑкПе кПлОÑеÑÑвП пПвÑПÑеМОй ÑОкла; ÑеÑвеÑÑÑй - вÑпПлМОÑÑ ÑОкл m Ñаз, гЎе m - ЌакÑОЌалÑМПе кПлОÑеÑÑвП пПвÑПÑеМОй ÑОкла. ÐÑПЌе ÑПгП, ЌПжМП вÑпПлМОÑÑ ÑОкл m-1 О m+1 Ñаз. ÐеÑеЎ ÑеЌ, как МаÑОМаÑÑ ÑеÑÑОÑПваМОе пПÑПка ÑпÑавлеМОÑ, ЎПлжеМ бÑÑÑ Ð²ÑбÑаМ ÑППÑвеÑÑÑвÑÑÑОй ÑÑÐŸÐ²ÐµÐœÑ Ð¿ÐŸÐºÑÑÑОÑ;
100% пПкÑÑÑОе пÑÑей (Path coverage). ÐÑПвеÑÑÐµÑ ÐºÐ°Ð¶ÐŽÑй лОМейМП МезавОÑОЌÑй пÑÑÑ Ð² пÑПгÑаЌЌе, ÑÑП ПзМаÑаеÑ, ÑÑП ÑОÑлП ÑеÑÑПвÑÑ
пÑОЌеÑПв бÑÐŽÐµÑ ÑквОвалеМÑМП ÑОклПЌаÑОÑеÑкПй ÑлПжМПÑÑО пÑПгÑаЌЌÑ. ÐÐ»Ñ ÐºÐŸÐŽÐ° ЌПЎÑлей бе з ÑОклПв кПлОÑеÑÑвП пÑÑей, как пÑавОлП, ЎПÑÑаÑПÑМП ЌалП, пПÑÑÐŸÐŒÑ ÐœÐ° ÑаЌПЌ Ўеле ЌПжМП пПÑÑÑПОÑÑ ÑеÑÑ-кейÑÑ ÐŽÐ»Ñ ÐºÐ°Ð¶ÐŽÐŸÐ³ÐŸ пÑÑО. ÐÐ»Ñ ÐŒÐŸÐŽÑлей Ñ ÑОклаЌО кПлОÑеÑÑвП пÑÑей ÐŒÐŸÐ¶ÐµÑ Ð±ÑÑÑ ÐŸÐ³ÑПЌМÑÐŒ, ÑÑП пÑеЎÑÑавлÑÐµÑ ÐœÐµÑазÑеÑОЌÑÑ Ð¿ÑÐŸÐ±Ð»ÐµÐŒÑ ÑеÑÑОÑПваМОÑ.
ÐÑÑÑ ÐœÐ° ÑаЌПЌ Ўеле ÑвлÑеÑÑÑ ÐœÐ°Ð¿ÑавлеМОеЌ, пПÑПкПЌ вÑпПлМеМОÑ, кПÑПÑÑй ÑлеЎÑÐµÑ Ð·Ð° пПÑлеЎПваÑелÑМПÑÑÑÑ ÐžÐœÑÑÑÑкÑОй. ÐМ ПÑ
ваÑÑÐ²Ð°ÐµÑ ÑÑМкÑÐžÑ ÐŸÑ Ð²Ñ
ПЎа ЎП ÑПÑкО вÑÑ
ПЎа. ÐМ ПÑ
ваÑÑÐ²Ð°ÐµÑ statement, branch/decision coverage. ÐПкÑÑÑОе пÑÑО ЌПжМП пПМÑÑÑ Ð² ÑлеЎÑÑÑОÑ
ÑеÑЌОМаÑ
:
- Loop coverage: ОÑпПлÑзÑеÑÑÑ ÐŽÐ»Ñ Ð¿ÑПвеÑкО ÑПгП, ÑÑП вÑе ÑÐžÐºÐ»Ñ Ð±ÑлО вÑÐ¿ÐŸÐ»ÐœÐµÐœÑ Ðž ÑкПлÑкП Ñаз ПМО бÑлО вÑпПлМеМÑ. ÐŠÐµÐ»Ñ ÑÑПгП ЌеÑПЎа пПкÑÑÑÐžÑ - ÑбеЎОÑÑÑÑ, ÑÑП ÑÐžÐºÐ»Ñ ÑППÑвеÑÑÑвÑÑÑ Ð¿ÑеЎпОÑаММÑÐŒ ÑÑлПвОÑÐŒ О Ме пПвÑПÑÑÑÑÑÑ Ð±ÐµÑкПМеÑМП О Ме завеÑÑаÑÑÑÑ ÐœÐµÐœÐŸÑЌалÑМП. ЊОкл ÑеÑÑОÑÐŸÐ²Ð°ÐœÐžÑ ÐœÐ°Ð¿ÑавлеМ Ма ЌПМОÑПÑОМг ÐŸÑ ÐœÐ°Ñала ЎП кПМÑа ÑОкла. ЊеММÑÐŒ аÑпекÑПЌ ÑÑПй ЌеÑÑОкО ÑвлÑеÑÑÑ ÐŸÐ¿ÑеЎелеМОе ÑПгП, вÑпПлМÑÑÑÑÑ Ð»Ðž ÑÐžÐºÐ»Ñ while О for бПлее ПЎМПгП Ñаза, Ñ.к. ÑÑа ОМÑПÑЌаÑÐžÑ ÐœÐµ ÑППбÑаеÑÑÑ ÐŽÑÑгОЌО ЌеÑÑОкаЌО;
- Function coverage: пПказÑваеÑ, вÑзÑвалО лО Ð²Ñ ÐºÐ°Ð¶ÐŽÑÑ ÑÑМкÑÐžÑ ÐžÐ»Ðž пÑПÑеЎÑÑÑ;
- Call coverage: пПказÑваеÑ, вÑпПлМÑлО лО Ð²Ñ ÐºÐ°Ð¶ÐŽÑй вÑзПв ÑÑМкÑОО. ÐОпПÑеза ÑПÑÑÐŸÐžÑ Ð² ÑПЌ, ÑÑП ПÑОбкО ПбÑÑМП вПзМОкаÑÑ Ð² ОМÑеÑÑейÑÐ°Ñ ÐŒÐµÐ¶ÐŽÑ ÐŒÐŸÐŽÑлÑЌО (вÑзÑваÑÑÐ°Ñ ÑÑМкÑÐžÑ Ðž вÑзÑÐ²Ð°ÐµÐŒÐ°Ñ ÑÑМкÑОÑ). Также ОзвеÑÑеМ как пПкÑÑÑОе паÑÑ Ð²ÑзПвПв (call pair coverage);
7 вÑÑепеÑеÑОÑлеММÑÑ
ÑÑПвМей ПпОÑÑваÑÑÑÑ Ð² кМОге ÐПплеМЎа âA Practitioner's Guide to Software Test Designâ, МП ЌПжМП МайÑО О ÐŽÑÑгОе
FSM coverage (Finite State Machine Coverage)
ÐПМеÑМÑе авÑПЌаÑÑ (FSM) ОЌеÑÑ ÐºÐŸÐœÐµÑМПе ÑОÑлП ÑПÑÑПÑМОй, ÑÑлПвОй, кПÑПÑÑе пÑОвПЎÑÑ Ðº вМÑÑÑеММОЌ пеÑеÑ
ПЎаЌ ÐŒÐµÐ¶ÐŽÑ ÑПÑÑПÑМОÑЌО, О ÑППÑвеÑÑÑвÑÑÑее пПвеЎеМОе ÐРв кажЎПЌ ÑПÑÑПÑМОО авÑПЌаÑа. ÐвÑÐŸÐŒÐ°Ñ ÐŸÐ±ÑÑМП ЌПЎелОÑÑÐµÑ Ð¿ÐŸÐ²ÐµÐŽÐµÐœÐžÐµ ÑпÑавлÑÑÑей лПгОкО.
ÐПкÑÑÑОе FSM - пПкÑÑÑОе кПМеÑМПгП авÑПЌаÑа, безÑÑлПвМП, ÑвлÑеÑÑÑ ÐœÐ°ÐžÐ±ÐŸÐ»ÐµÐµ ÑлПжМÑÐŒ ЌеÑПЎПЌ пПкÑÑÑÐžÑ ÐºÐŸÐŽÐ°. Ð ÑÑПЌ ЌеÑПЎе пПкÑÑÑÐžÑ Ð²Ð°ÐŒ МÑжМП пПÑЌПÑÑеÑÑ, как ЌМПгП бÑлП пеÑеÑ
ПЎПв/пПÑеÑеМОй ПпÑеЎелеММÑÑ
пП вÑеЌеМО ÑПÑÑПÑМОй (time-specific states). ÐМП Ñакже пÑПвеÑÑеÑ, ÑкПлÑкП пПÑлеЎПваÑелÑМПÑÑей вклÑÑеМП в кПМеÑМÑй авÑПЌаÑ. ÐПМеÑМÑе авÑПЌаÑÑ ÐŒÐŸÐ³ÑÑ ÐžÐŒÐµÑÑ ÐŒÐœÐŸÐ¶ÐµÑÑвП веÑвей О МеÑкПлÑкП ÑÑМкÑОПМалÑМÑÑ
пÑÑей, а Ñакже лÑбПй ÑкÑÑÑÑй пÑÑÑ (ÑÑМкÑОПМалÑМÑй пÑÑÑ, пÑПпÑÑеММÑй пÑО пÑПвеÑке, ОлО пÑÑÑ, МепÑеЎМаЌеÑеММП ввеЎеММÑй Ма ÑÑапе ÑеалОзаÑОО) в ЎОзайМе ÐŒÐŸÐ¶ÐµÑ Ð²ÑзваÑÑ ÑеÑÑезМПе МаÑÑÑеМОе ÑÑМкÑОПМалÑМПÑÑО, а Ñакже ÐŒÐŸÐ¶ÐµÑ ÑПзЎаÑÑ ÑÑпОк (ÑОÑÑеЌа Ме ÐŒÐŸÐ¶ÐµÑ ÑаЌПÑÑПÑÑелÑМП вÑйÑО Оз ПпÑеЎелеММПгП ÑПÑÑПÑМОÑ, Ўаже еÑлО МаЌеÑеММÑй ÑÑОЌÑл пÑОÑÑÑÑÑвÑеÑ).
Basis Path testing
ÐŠÐµÐ»Ñ ÑеÑÑОÑÐŸÐ²Ð°ÐœÐžÑ Ð±Ð°Ð·ÐŸÐ²ÐŸÐ³ÐŸ пÑÑО - в ПÑлОÑОО ÐŸÑ D-D Path (Decision-to-decision path) пПлÑÑОÑÑ Ð¿ÐŸÐ»ÐœÐŸÐµ пПкÑÑÑОе ÑеÑ
пÑÑей, кПÑПÑÑе МаÑ
ПЎÑÑÑÑ ÐŒÐµÐ¶ÐŽÑ ÑПÑкаЌО пÑОМÑÑÐžÑ ÑеÑеМОй (decisions points) Ñ Ð²ÑÑПкОЌ бОзМеÑ-ÑОÑкПЌ О вÑÑПкПй бОзМеÑ-ÑеММПÑÑÑÑ, Ñ.к. пÑПвеÑÑÑÑ Ð²Ñе вПзЌПжМÑе пÑÑО ПбÑ
ПЎОÑÑÑ ÑлОÑкПЌ ЎПÑПгП. ÐÑП гОбÑОЎ branch testing О path testing
LCSAJ coverage
LCSAJ (LCSAJ): ÐПÑлеЎПваÑелÑМПÑÑÑ Ð»ÐžÐœÐµÐ¹ÐœÐŸÐ³ÐŸ кПЎа Ñ Ð¿ÐµÑеÑ
ПЎаЌО, ÑПÑÑПÑÑÐ°Ñ ÐžÐ· ÑÑеÑ
ÑлеЌеМÑПв (ÑÑлПвМП ПпÑеЎелÑÐµÐŒÐ°Ñ ÐœÐŸÐŒÐµÑаЌО ÑÑÑПк ОÑÑ
ПЎМПгП кПЎа):
- МаÑалП лОМейМПй пПÑлеЎПваÑелÑМПÑÑО вÑпПлМÑеЌÑÑ ÐŸÐ¿ÐµÑаÑПÑПв
- ÐºÐŸÐœÐµÑ Ð»ÐžÐœÐµÐ¹ÐœÐŸÐ¹ пПÑлеЎПваÑелÑМПÑÑО
- ÑÐµÐ»ÐµÐ²Ð°Ñ ÑÑÑПка кПЎа, пПлÑÑаÑÑÐ°Ñ ÑпÑавлеМОе пПÑле кПМÑа лОМейМПй пПÑлеЎПваÑелÑМПÑÑО
(ISTQB)
LCSAJ (linear code sequence and jump) Â«Ð»ÐžÐœÐµÐ¹ÐœÐ°Ñ Ð¿ÐŸÑлеЎПваÑелÑМПÑÑÑ ÐºÐŸÐŽÐ° О пеÑеÑ
ПЎ». ÐажЎÑй LCSAJ пÑеЎÑÑавлÑÐµÑ ÑПбПй ÑÐµÐ³ÐŒÐµÐœÑ ÐºÐŸÐŽÐ°, кПÑПÑÑй вÑпПлМÑеÑÑÑ Ð¿ÐŸÑлеЎПваÑелÑМП ÐŸÑ ÐœÐ°ÑалÑМПй ÑПÑкО ЎП кПМеÑМПй ÑПÑкО, а заÑеЌ пÑеÑÑÐ²Ð°ÐµÑ Ð¿ÐŸÑлеЎПваÑелÑМÑй пПÑПк ÐŽÐ»Ñ Ð¿ÐµÑеЎаÑО пПÑПка ÑпÑавлеМОÑ. ÐÐ°Ð¶ÐŽÐ°Ñ ÑÑÑПка кПЎа ÐžÐŒÐµÐµÑ Ð¿Ð»ÐŸÑМПÑÑÑ (density), ÑП еÑÑÑ ÐºÐŸÐ»ÐžÑеÑÑвП Ñаз, кПгЎа ÐœÐŸÐŒÐµÑ ÑÑÑПкО пПÑвлÑеÑÑÑ Ð² LCSAJ.
ÐЎОМ LCSAJ ÑПÑÑÐŸÐžÑ ÐžÐ· ÑÑеÑ
кПЌпПМеМÑПв:
- ÐаÑалП ÑегЌеМÑа, кПÑПÑÑй ÐŒÐŸÐ¶ÐµÑ Ð±ÑÑÑ Ð²ÐµÑвÑÑ ÐžÐ»Ðž МаÑалПЌ пÑПгÑаЌЌÑ;
- ÐÐŸÐœÐµÑ ÑегЌеМÑа, кПÑПÑÑй ÐŒÐŸÐ¶ÐµÑ Ð±ÑÑÑ ÐºÐŸÐœÑПЌ веÑвО ОлО кПМÑПЌ пÑПгÑаЌЌÑ;
- ÐПМкÑеÑÐœÐ°Ñ ÑÐµÐ»ÐµÐ²Ð°Ñ Ð»ÐžÐœÐžÑ;
ÐгП ПÑМПвМПе пÑОЌеМеМОе пÑО ЎОМаЌОÑеÑкПЌ аМалОзе пÑПгÑаЌЌМПгП ПбеÑпеÑеМОÑ, ÑÑÐŸÐ±Ñ Ð¿ÐŸÐŒÐŸÑÑ ÐŸÑвеÑОÑÑ ÐœÐ° вПпÑÐŸÑ Â«Ð¡ÐºÐŸÐ»ÑкП ÑеÑÑОÑÐŸÐ²Ð°ÐœÐžÑ ÐŽÐŸÑÑаÑПÑМП?». ÐОМаЌОÑеÑкОй аМалОз пÑПгÑаЌЌМПгП ПбеÑпеÑÐµÐœÐžÑ ÐžÑпПлÑзÑÑÑÑÑ ÐŽÐ»Ñ ÐžÐ·ÐŒÐµÑÐµÐœÐžÑ ÐºÐ°ÑеÑÑва О ÑÑÑекÑОвМПÑÑО ÑеÑÑПвÑÑ
ЎаММÑÑ
пÑПгÑаЌЌМПгП ПбеÑпеÑеМОÑ, гЎе кПлОÑеÑÑвеММПе ПпÑеЎелеМОе вÑпПлМÑÑÑÑÑ Ð² ÑеÑЌОМаÑ
ÑÑÑÑкÑÑÑМÑÑ
ÐµÐŽÐžÐœÐžÑ ÐºÐŸÐŽÐ° пÑО ÑеÑÑОÑПваМОО. РбПлее ÑзкПЌ ÑÐŒÑÑле, LCSAJ ÑвлÑеÑÑÑ Ñ
ПÑПÑП ПпÑеЎелеММÑÐŒ лОМейМÑÐŒ ÑÑаÑÑкПЌ кПЎа пÑПгÑаЌЌÑ. ÐÑО ОÑпПлÑзПваМОО в ÑÑПЌ ÑÐŒÑÑле, LCSAJ Ñакже МазÑваÑÑ JJ-пÑÑÑ (jump-to-jump path). 100% LCSAJ ПзМаÑÐ°ÐµÑ 100% Statement Coverage, 100% Branch Coverage, 100% procedure ОлО Function call Coverage, 100% Multiple condition Coverage (в ISTQB гПвПÑОÑÑÑ ÑПлÑкП П 100% Decision coverage).
ÐпÑеЎелеММÑе ЌеÑÑОкО ОÑпПлÑзÑÑÑÑÑ ÐŽÐ»Ñ Ð¿ÑПвеÑкО пПкÑÑÑÐžÑ ÐºÐŸÐŽÐ°. ÐÑО пПказаÑелО ЌПгÑÑ Ð¿ÐŸÐŒÐŸÑÑ ÐœÐ°ÐŒ ПпÑеЎелОÑÑ, ЎПÑÑаÑПÑМП лО ÑеÑÑОÑÐŸÐ²Ð°ÐœÐžÑ ÐžÐ»Ðž МеÑ. ÐÑО пПказаÑелО МазÑваÑÑÑÑ ÐºÐŸÑÑÑОÑОеМÑПЌ ÑÑÑекÑОвМПÑÑО ÑеÑÑОÑÐŸÐ²Ð°ÐœÐžÑ (TER - Test Effectiveness Ratio):
- TER-1: кПлОÑеÑÑвП ПпеÑаÑПÑПв, вÑпПлМеММÑÑ Ñ Ð¿ÐŸÐŒÐŸÑÑÑ ÑеÑÑПвÑÑ ÐŽÐ°ÐœÐœÑÑ , ЎелеММПе Ма ПбÑее кПлОÑеÑÑвП ПпеÑаÑПÑПв;
- TER-2: кПлОÑеÑÑвП веÑвей пПÑПка ÑпÑавлеМОÑ, вÑпПлМеММÑÑ ÑеÑÑПвÑЌО ЎаММÑЌО, ЎелеММПе Ма ПбÑее кПлОÑеÑÑвП веÑвей пПÑПка ÑпÑавлеМОÑ;
- TER-3: кПлОÑеÑÑвП LCSAJ, вÑпПлМеММÑÑ ÑеÑÑПвÑЌО ЎаММÑЌО, ЎелеММПе Ма ПбÑее кПлОÑеÑÑвП LCSAJ;
ÐÑÑлеЎПваÑелО ÑÑÑлаÑÑÑÑ ÐœÐ° кПÑÑÑОÑÐžÐµÐœÑ Ð¿ÐŸÐºÑÑÑÐžÑ Ð¿ÑÑей ЎлОМПй n LCSAJ как Ма кПÑÑÑОÑÐžÐµÐœÑ ÑÑÑекÑОвМПÑÑО ÑеÑÑа (TER) n + 2.
2. Data Flow Testing
ТеÑÑОÑПваМОе пПÑПка ЎаММÑÑ
- ÑÑП еÑе ПЎОМ ÐœÐ°Ð±ÐŸÑ ÐŒÐµÑПЎПв / ÑÑÑаÑегОй белПгП ÑÑОка, кПÑПÑÑй ÑвÑзаМ Ñ Ð°ÐœÐ°Ð»ÐžÐ·ÐŸÐŒ пПÑПка ÑпÑавлеМОÑ, МП Ñ ÑПÑкО зÑÐµÐœÐžÑ Ð¶ÐžÐ·ÐœÐµÐœÐœÐŸÐ³ÐŸ ÑОкла пеÑеЌеММПй. ÐеÑеЌеММÑе ПпÑеЎелÑÑÑÑÑ, ОÑпПлÑзÑÑÑÑÑ Ðž ÑМОÑÑПжаÑÑÑÑ, кПгЎа в МОÑ
бПлÑÑе ÐœÐµÑ ÐœÐµÐŸÐ±Ñ
ПЎОЌПÑÑО. ÐМПЌалОО в ÑÑПЌ пÑПÑеÑÑе, ÑакОе как ОÑпПлÑзПваМОе пеÑеЌеММПй без ее ПпÑÐµÐŽÐµÐ»ÐµÐœÐžÑ ÐžÐ»Ðž пПÑле ее ÑМОÑÑПжеМОÑ, ЌПгÑÑ Ð¿ÑОвеÑÑО к ПÑОбке. Ð Ð°Ð¿Ñ Ðž ÐÑÑкеÑ, пПпÑлÑÑОзаÑПÑÑ ÐŽÐ°ÐœÐœÐŸÐ³ÐŸ ЌеÑПЎа, пОÑалО: "ÐÑ ÑвеÑеМÑ, ÑÑП, как МелÑÐ·Ñ ÑÑвÑÑвПваÑÑ ÑÐµÐ±Ñ ÑвеÑеММÑÐŒ в пÑПгÑаЌЌе без вÑÐ¿ÐŸÐ»ÐœÐµÐœÐžÑ ÐºÐ°Ð¶ÐŽÐŸÐ³ÐŸ ее ПпеÑаÑПÑа в ÑаЌкаÑ
какПгП-ÑП ÑеÑÑОÑПваМОÑ, Ñак же Ме ÑлеЎÑÐµÑ Ð±ÑÑÑ ÑвеÑеММÑÐŒ в пÑПгÑаЌЌе без Ð²ÐžÐŽÐµÐœÐžÑ ÑезÑлÑÑаÑПв ОÑпПлÑÐ·ÐŸÐ²Ð°ÐœÐžÑ Ð·ÐœÐ°ÑеМОй, пПлÑÑеММÑÑ
ÐŸÑ Ð»ÑбПгП О кажЎПгП Оз вÑÑОÑлеМОй".
ÐПгЎа «пПÑПк ЎаММÑÑ
» ÑеÑез ОМÑПÑЌаÑОПММÑÑ ÑОÑÑÐµÐŒÑ Ð¿ÑеЎÑÑавлеМ гÑаÑОÑеÑкО, ПМ ОзвеÑÑеМ как ЎОагÑаЌЌа пПÑПка ЎаММÑÑ
(Data Flow Diagram). ÐМа Ñакже ОÑпПлÑзÑеÑÑÑ ÐŽÐ»Ñ Ð²ÐžÐ·ÑалОзаÑОО ПбÑабПÑкО ЎаММÑÑ
. ÐП Ме МÑжМП пÑÑаÑÑ ÑÑП Ñ Ð³ÑаÑПЌ пПÑПка ЎаММÑÑ
(Data Flow Graph), кПÑПÑÑй ОÑпПлÑзÑеÑÑÑ Ð² Data Flow Testing. ÐÑÐ°Ñ Ð¿ÐŸÑПка ЎаММÑÑ
пПÑ
Пж Ма гÑÐ°Ñ Ð¿ÐŸÑПка ÑпÑÐ°Ð²Ð»ÐµÐœÐžÑ ÑеЌ, ÑÑП пПказÑÐ²Ð°ÐµÑ Ð¿ÐŸÑПк ПбÑабПÑкО ÑеÑез ЌПЎÑлÑ. ÐПпПлМОÑелÑМП к ÑÑПЌÑ, ПМ ЎеÑалОзОÑÑÐµÑ ÐŸÐ¿ÑеЎелеМОе, ОÑпПлÑзПваМОе О ÑМОÑÑПжеМОе кажЎПй Оз пеÑеЌеММÑÑ
ЌПЎÑлÑ. ÐÑ Ð¿ÐŸÑÑÑПОЌ ÑÑО ЎОагÑÐ°ÐŒÐŒÑ Ðž ÑбеЎОЌÑÑ, ÑÑП ÑÐ°Ð±Ð»ÐŸÐœÑ ÐŸÐ¿ÑеЎелеМОе-ОÑпПлÑзПваМОе-ÑМОÑÑПжеМОе ÑвлÑÑÑÑÑ Ð¿ÐŸÐŽÑ
ПЎÑÑОЌО. СМаÑала ÐŒÑ Ð¿ÑПвеЎеЌ ÑÑаÑОÑеÑкОй аМалОз. ÐПЎ "ÑÑаÑОÑеÑкОЌ" ÐŒÑ ÐžÐŒÐµÐµÐŒ в вОЎÑ, ÑÑП ÐŒÑ ÐžÑÑлеЎÑеЌ ЎОагÑÐ°ÐŒÐŒÑ (ÑПÑЌалÑМП ÑеÑез пÑПвеÑкО ОлО МеÑПÑЌалÑМП беглÑЌО пÑПÑЌПÑÑаЌО). ÐПÑПЌ ÐŒÑ Ð¿ÑПвеЎеЌ ЎОМаЌОÑеÑкОе ÑеÑÑÑ ÐŒÐŸÐŽÑлÑ. ÐПЎ "ЎОМаЌОÑеÑкОЌО" ÐŒÑ Ð¿ÐŸÐœÐžÐŒÐ°ÐµÐŒ, ÑÑП ÐŒÑ ÑПзЎаеЌ О ОÑпПлМÑеЌ ÑеÑÑПвÑе ÑÑеМаÑОО.
Так как ÑеÑÑОÑПваМОе пПÑПка ЎаММÑÑ
ПÑМПваМП Ма пПÑПке ÑпÑÐ°Ð²Ð»ÐµÐœÐžÑ ÐŒÐŸÐŽÑлÑ, ÑП, пÑеЎпПлПжОÑелÑМП, пПÑПк ÑпÑÐ°Ð²Ð»ÐµÐœÐžÑ Ð² ПÑМПвМПЌ веÑМÑй. ÐÑПÑеÑÑ ÑеÑÑОÑÐŸÐ²Ð°ÐœÐžÑ Ð¿ÐŸÑПка ЎаММÑÑ
ÑвПЎОÑÑÑ Ðº вÑбПÑÑ ÐŽÐŸÑÑаÑПÑМПгП кПлОÑеÑÑва ÑеÑÑПв, ÑакОÑ
как:
- кажЎПе "Пп ÑеЎелеМОе" пÑПÑлежОваеÑÑÑ ÐŽÐ»Ñ ÐºÐ°Ð¶ÐŽÐŸÐ³ÐŸ егП "ОÑпПлÑзПваМОÑ";
- кажЎПе "ОÑпПлÑзПваМОе" пÑПÑлежОваеÑÑÑ ÐžÐ· ÑППÑвеÑÑÑвÑÑÑегП ÐµÐŒÑ "ПпÑеЎелеМОÑ";
ЧÑÐŸÐ±Ñ ÑЎелаÑÑ ÑÑП, пеÑеÑОÑлОЌ ЌаÑÑÑÑÑÑ Ð² ЌПЎÑле. ÐПÑÑЎПк вÑÐ¿ÐŸÐ»ÐœÐµÐœÐžÑ ÑакПй же, как О в ÑлÑÑае Ñ ÑеÑÑОÑПваМОеЌ пПÑПка ÑпÑавлеМОÑ: МаÑОМаеЌ Ñ ÑПÑкО вÑ
ПЎа в ЌПЎÑлÑ, ÑÑÑПОЌ ÑаЌÑй левÑй ЌаÑÑÑÑÑ ÑеÑез веÑÑ ÐŒÐŸÐŽÑÐ»Ñ Ðž закаМÑОваеЌ Ма вÑÑ
ПЎе Оз МегП. ÐПзвÑаÑаеЌÑÑ Ð² МаÑалП О ОЎÑÐŒ пП ÐŽÑÑÐ³ÐŸÐŒÑ ÐœÐ°Ð¿ÑÐ°Ð²Ð»ÐµÐœÐžÑ Ð² пеÑвПЌ ÑазвеÑвлеМОО. ÐÑПклаЎÑваеЌ ÑÑÐŸÑ Ð¿ÑÑÑ ÐŽÐŸ кПМÑа. ÐПзвÑаÑаеЌÑÑ Ð² МаÑалП О ОЎÑÐŒ пП ÐŽÑÑÐ³ÐŸÐŒÑ ÐœÐ°Ð¿ÑÐ°Ð²Ð»ÐµÐœÐžÑ Ð²ÐŸ вÑПÑПЌ ÑазвеÑвлеМОО, пПÑПЌ в ÑÑеÑÑеЌ О Ñ.ÐŽ., пПка Ме пÑПйЎеЌ вÑе вПзЌПжМÑе пÑÑО. ÐаÑеЌ ÑПзЎаЎОЌ Ñ
ПÑÑ Ð±Ñ ÐŸÐŽÐžÐœ ÑеÑÑ ÐŽÐ»Ñ ÐºÐ°Ð¶ÐŽÐŸÐ¹ пеÑеЌеММПй, ÑÑÐŸÐ±Ñ Ð¿ÐŸÐºÑÑÑÑ ÐºÐ°Ð¶ÐŽÑÑ Ð¿Ð°ÑÑ ÐŸÐ¿ÑеЎелеМОе-ОÑпПлÑзПваМОе.
СÑÑеÑÑвÑÑÑ ÑÑлПвМÑе ПбПзМаÑеМОÑ, кПÑПÑÑе ЌПгÑÑ Ð¿ÐŸÐŒÐŸÑÑ Ð² ПпОÑаМОО пПÑлеЎПваÑелÑМÑÑ
вП вÑеЌеМО Ð¿Ð°Ñ Ð² жОзМеММПЌ ÑОкле пеÑеЌеММПй:
- ~ - пеÑÐµÐŒÐµÐœÐœÐ°Ñ ÐµÑе Ме ÑÑÑеÑÑвÑÐµÑ ÐžÐ»Ðž пÑеЎÑÐŽÑÑОй ÑÑап бÑл пПÑлеЎМОЌ
- d - ПпÑеЎелеМП, ÑПзЎаМП, ОМОÑОалОзОÑПваМП
- k - Ме ПпÑеЎелеМП, ÑбОÑП
- u - ОÑпПлÑзÑеÑÑÑ (c - ОÑпПлÑзПваМОе вÑÑОÑлеМОй; p - ОÑпПлÑзПваМОе пÑеЎОкаÑПв)
ТакОЌ ПбÑазПЌ, ~ d, du, kd, ud, uk, uu, k ~, u ~ ÑвлÑÑÑÑÑ Ð²Ð¿ÐŸÐ»ÐœÐµ ЎПпÑÑÑОЌÑЌО кПЌбОМаÑОÑЌО, кПгЎа ~ u, ~ k, dd, dk, kk, ku, d ~ ÑвлÑÑÑÑÑ Ð°ÐœÐŸÐŒÐ°Ð»ÐžÑЌО, пПÑеМÑОалÑМÑЌО ОлО ÑвМÑЌО ПÑОбкаЌО. РМаÑÑПÑÑее вÑÐµÐŒÑ Ð¿ÑакÑОÑеÑкО вÑе ПМО ÑÑÑекÑОвМП ПбМаÑÑжОваÑÑÑÑ ÐºÐŸÐŒÐ¿ÐžÐ»ÑÑПÑаЌО ОлО, пП кÑайМей ЌеÑе, IDE, О МаЌ ÑеЎкП ÑÑебÑеÑÑÑ Ð²ÑпПлМÑÑÑ ÑÑаÑОÑеÑкОй аМалОз ÐŽÐ»Ñ ÐŸÐ±ÐœÐ°ÑÑÐ¶ÐµÐœÐžÑ ÑÑОÑ
аМПЌалОй. ТП же ÑаЌПе ПÑМПÑОÑÑÑ Ðž к ЎОМаЌОÑеÑÐºÐŸÐŒÑ Ð°ÐœÐ°Ð»ÐžÐ·Ñ, кПÑПÑÑй ÑÑПкÑÑОÑПваМ Ма ОÑÑлеЎПваМОО / вÑпПлМеМОО du Ð¿Ð°Ñ - ÑПвÑеЌеММÑе ÑзÑкО пÑПгÑаЌЌОÑÐŸÐ²Ð°ÐœÐžÑ ÑМОжаÑÑ Ð²ÐµÑПÑÑМПÑÑÑ Ð²ÐŸÐ·ÐœÐžÐºÐœÐŸÐ²ÐµÐœÐžÑ Ð¿ÑПблеЌ, ÑвÑзаММÑÑ
Ñ du. Так ÑÑП в МаÑÑПÑÑее вÑÐµÐŒÑ ÑÐ°ÐºÐ°Ñ Ð¿ÑПвеÑка в ПÑМПвМПЌ Ме ÑÑÐŸÐžÑ ÑÑОлОй.
ÐÑÑПÑМОкО:
- ÐО ÐПплаМЎ - âA Practitioner's Guide to Software Test Designâ, ÐÐ»Ð°Ð²Ñ 10 О 11
ÐПп. ЌаÑеÑОал:
Last modified 7mo ago