• Aucun résultat trouvé

Методология тестирования микросервисных облачных приложений (Microservices cloud applications testing approach)

N/A
N/A
Protected

Academic year: 2022

Partager "Методология тестирования микросервисных облачных приложений (Microservices cloud applications testing approach)"

Copied!
13
0
0

Texte intégral

(1)

Ìåòîäîëîãèÿ òåñòèðîâàíèÿ ìèêðîñåðâèñíûõ

îáëà÷íûõ ïðèëîæåíèé

Ä.È. Ñàâ÷åíêî, .È. àä÷åíêî

Þæíî-Óðàëüñêèé îñóäàðñòâåííûé Óíèâåðñèòåò

Ìèêðîñåðâèñíûéïîäõîäêîðãàíèçàöèèïðèëîæåíèéïîäðàçóìåâàåò,÷òîàðõèòåê-

òóðàîáëà÷íîãîïðèëîæåíèÿ ïðåäñòàâëÿåòñÿâ âèäåíàáîðà íåáîëüøèõíåçàâèñè-

ìûõñåðâèñîâ,êàæäûéèçêîòîðûõèìååòñâîþçîíóîòâåòñòâåííîñòèèóíêöèî-

íàëüíîñòü.Èñïîëüçîâàíèåòàêîãîïîäõîäàïîäðàçóìåâàåòíåîáõîäèìîñòüèñïîëü-

çîâàíèÿ ìåòîäîâ íåïðåðûâíîé èíòåãðàöèè äëÿ ðàçâåðòûâàíèÿ ñèñòåìû, ÷òî, â

ñâîþ î÷åðåäü, òðåáóåò ìåòîäîëîãèè è èíñòðóìåíòàðèÿ äëÿ àâòîìàòè÷åñêîãî òå-

ñòèðîâàíèÿêàêîòäåëüíûõìèêðîñåðâèñîâòàêèìèêðîñåðâèñíûõñèñòåìâîáùåì.

Âäàííîéñòàòüåïðåäëàãàåòñÿìåòîäîëîãèÿòåñòèðîâàíèÿìèêðîñåðâèñíûõñèñòåì

íà âñåõ ýòàïàõ èõ ðàçðàáîòêè è óíêöèîíèðîâàíèÿ, íà÷èíàÿ ñ ðàçðàáîòêè îò-

äåëüíûõìèêðîñåðâèñîâ, çàêàí÷èâàÿ íåïðåðûâíûìòåñòèðîâàíèåì ñòàáèëüíîñòè

ìèêðîñåðâèñíûõ ñèñòåì. Òàêæå,ïðåäñòàâëåíû ïîäõîäû ðåàëèçàöèè äàííîé ìå-

òîäîëîãèèíàîñíîâåïðîòîòèïàìèêðîñåðâèñíîéîáëà÷íîé ïëàòîðìûMjolnirr.

1. Ââåäåíèå

Ìèêðîñåðâèñíàÿ àðõèòåêòóðà ýòî ïàòòåðí ïðîåêòèðîâàíèÿ îáëà÷íûõ ïðèëîæåíèé,

ïîäðàçóìåâàþùèé, ÷òî ñëîæíîå ïðèëîæåíèå ðàçäåëÿåòñÿ íà ðÿä íåáîëüøèõ íåçàâèñèìûõ

ñåðâèñîâ, âçàèìîäåéñòâóþùèõ äðóã ñ äðóãîì ïîñðåäñòâîì êðîññïëàòîðìåííîãîAPI. Ýòè

ñåðâèñûìîãóò áûòüðàçâåðíóòû íåçàâèñèìî äðóãîò äðóãà, âàâòîìàòè÷åñêîìðåæèìå [14℄.

Ìèêðîñåðâèñûìîãóòáûòüðàññìîòðåíûêàêìåòà-ïðîöåññûìåòà-ÎÑ,îíèíåçàâèñèìûèìî-

ãóò âçàèìîäåéñòâîâàòü äðóã ñ äðóãîì ïîñðåäñòâîì ïåðåäà÷è ñîîáùåíèé, îíè ìîãóò áûòü

ïðîäóáëèðîâàíû, ïðèîñòàíîâëåíû è ïåðåçàïóùåíû, à òàêæå ïåðåìåùåíû íà ëþáîé äðó-

ãîé âû÷èñëèòåëüíûéóçåë. Íàäàííûéìîìåíò ñóùåñòâóåò íåñêîëüêî ïðèìåðîâðåàëèçàöèè

èñ.1:Ìîíîëèòíàÿ èìèêðîñåðâèñíàÿ àðõèòåêòóðû

àáîòà âûïîëíåíàïðè èíàíñîâîéïîääåðæêå Ñîâåòà ïîãðàíòàì Ïðåçèäåíòàîññèéñêîé Ôåäåðàöèè

(íîìåðïðîåêòàÌÊ-7524.2015.9) èîññèéñêîãî îíäàóíäàìåíòàëüíûõ íàó÷íûõèññëåäîâàíèé (ãðàíò

14-07-00420)

(2)

ïëàòîðì,ïîñòðîåííûõ âñîîòâåòñòâèèñ ìèêðîñåðâèñíûìïîäõîäîì.Òàêèå êîìïàíèè,êàê

Netix [15,20℄ è SoundCloud [3℄ èñïîëüçóþò êîíöåïöèþ ìèêðîñåðâèñîâ â ñâîåé àðõèòåêòó-

ðå, â òî âðåìÿ, êàê Amazon [21℄ ïðåäëàãàåò íàáîð ñåðâèñîâ, êîòîðûå ìîãóò áûòü òàêæå

ðàññìîòðåíû êàê ïðèìåðûìèêðîñåðâèñîâ.

Ìèêðîñåðâèñíûé àðõèòåêòóðíûé ïîäõîä ìîæåò áûòü ïðîòèâîïîñòàâëåí ñ ìîíîëèòíûì

ïîäõîäîìêïðîåêòèðîâàíèþ àðõèòåêòóðûïðèëîæåíèÿ,ïðèêîòîðîìïðèëîæåíèåïðåäñòàâ-

ëÿåòñîáîéåäèíûéëîãè÷åñêèéáëîê(ñì.ðèñ.1).Ñåðâåðíàÿ÷àñòüìîíîëèòíîãîïðèëîæåíèÿ

ïðèíèìàåòHTTP-çàïðîñû,ñëåäèòçà áèçíåñ-ëîãèêîéïðèëîæåíèÿ,âçàèìîäåéñòâóåòñáàçîé

äàííûõ, à òàêæå îáåñïå÷èâàåò îòîáðàæåíèå èíòåðåéñà ïîëüçîâàòåëÿ äëÿ âñåãî ïðèëîæå-

íèÿ. Èçìåíåíèå îäíîãî ýëåìåíòà òàêîãî ïðèëîæåíèÿ ìîæåò ñïðîâîöèðîâàòü ïåðåñáîðêó è

ïåðåðàçâåðòûâàíèåâñåãîïðèëîæåíèÿ,÷òî,âñâîþî÷åðåäü,ìîæåòâûçâàòüïðîñòîèâðàáî-

òå ïîëüçîâàòåëåé ïðèëîæåíèÿ. Òàêæå, ïðè íåîáõîäèìîñòè ìàñøòàáèðîâàíèÿ, ïðèëîæåíèå

òàêîãî òèïà òÿæåëî ðàçáèòü íà íåçàâèñèìûå êîìïîíåíòû, â ñëåäñòâèè ÷åãî ïðèõîäèòñÿ

ïðîèçâîäèòü äóáëèðîâàíèå âñåãî ìîíîëèòà íà âñå âû÷èñëèòåëüíûåóçëû. Äëÿòîãî, ÷òîáû

èçáåæàòü òàêèõïîñëåäñòâèé,íåîáõîäèìî íåóêîñíèòåëüíîñëåäîâàòü ïàðàäèãìåïîñòðîåíèÿ

ìîäóëüíûõïðèëîæåíèé,÷òî,îäíàêî,òðåáóåò áîëüøèõ çàòðàòíàïðîåêòèðîâàíèå [14℄.

Ïðè ïðîåêòèðîâàíèè ñèñòåìû â ñîîòâåòñòâèè ñ ìèêðîñåðâèñíûì ïîäõîäîì (ñì. ðèñ.

1), ïðîåêòèðóåìàÿ ñèñòåìà äåëèòñÿ íà íåçàâèñèìûå êîìïîíåíòû (ìèêðîñåðâèñû), êîòîðûå

óïðàâëÿþòñÿíåçàâèñèìî.Òàêîåðàçäåëåíèåïîëåçíîäëÿâûñîêîíàãðóæåííûõñèñòåì,÷àñòè

êîòîðûõ ïîäâåðãàþòñÿ ðàçíîé íàãðóçêå è äîëæíûìàñøòàáèðîâàòüñÿ íåçàâèñèìî. Ìèêðî-

ñåðâèñíûé ïîäõîä èìååò ìíîãî îáùåãî ñ ñåðâèñ-îðèåíòèðîâàííûì ïîäõîäîì [12℄. Netix,

ðàçðàáîò÷èêîäíîéèç ïåðâûõìèêðîñåðâèñíûõ ïëàòîðì,íàçûâàåòìèêðîñåðâèñíóþàðõè-

òåêòóðó"ìåëêîìîäóëüíîéÑÎÀ"("anegrainedServieOrientedArhiteture")[13℄.Îäíàêî,

ìèêðîñåðâèñíàÿ àðõèòåêòóðà èìååò èñâîèõàðàêòåðíûåîñîáåííîñòè[14℄:

ìèêðîñåðâèñäîëæåíèñïîëüçîâàòüìåõàíèçì îáìåíàñîîáùåíèÿìèäëÿêîììóíèêàöèè ñ äðóãèìèìèêðîñåðâèñàìè (íàïðèìåð,HTTP);

êàæäûéìèêðîñåðâèñäîëæåíðåàëèçîâûâàòüîòäåëüíûé,íåçàâèñèìûéîòäðóãèõìèê- ðîñåðâèñîâ, áëîêáèçíåñ-ëîãèêè ïðèëîæåíèÿ;

ìèêðîñåðâèñûäîëæíûïîääåðæèâàòüâîçìîæíîñòèàâòîìàòèçèðîâàííîãîóïðàâëåíèÿ æèçíåííûìöèêëîì;

ìèêðîñåðâèñíàÿàðõèòåêòóðàäîëæíàèìåòüìèíèìóìöåíòðàëèçîâàííûõðåñóðñîâ,àð- õèòåêòóðàìèêðîñåðâèñíîéñèñòåìûäîëæíàïîääåðæèâàòüäåöåíòðàëèçîâàííîåóïðàâ-

ëåíèå.

Îäíàêîìèêðîñåðâèñíûéïîäõîäíåÿâëÿåòñÿóíèâåðñàëüíûìðåøåíèåìïðîáëåìûñëîæ-

íîñòè ÏÎ.  ñëó÷àå ìèêðîñåðâèñíîé àðõèòåêòóðû, ñëîæíîñòü ñîçäàíèÿ è óïðàâëåíèÿ ÏÎ

ïåðåêëàäûâàåòñÿ íà èíðàñòðóêòóðó [2℄. Ïî ýòîé ïðè÷èíå âîçíèêàåò íåîáõîäèìîñòü èñ-

ïîëüçîâàíèÿ ñïåöèàëüíûõ ñðåäñòâ äëÿ óïðàâëåíèÿ ñëîæíîñòüþ, â òîì ÷èñëå æèçíåííûì

öèêëîì ìèêðîñåðâèñîâ (çàïóñê, îñòàíîâêà, ïàóçàè äóáëèðîâàíèå ýêçåìïëÿðàìèêðîñåðâè-

ñà), áàëàíñèðîâêîé íàãðóçêè è íåïðåðûâíîé èíòåãðàöèè ìèêðîñåðâèñíîé ïëàòîðìû [19℄.

ÒàêîéíàáîðñåðâèñîâìîæåòáûòüïðåäîñòàâëåíPaaS-îáëàêîì,êîòîðîåìîæåòâçÿòüíàñåáÿ

óíêöèèìàñøòàáèðîâàíèÿìèêðîñåðâèñíîãîïðèëîæåíèÿ,ïîääåðæàíèÿæèçíåííîãîöèêëà,

à òàêæåïðåäîñòàâèòüïîäñèñòåìóîáìåíàñîîáùåíèÿìè. Êðîìåòîãî, ìíîãèåPaaS-ðåøåíèÿ

èìåþò âñòðîåííûéìåõàíèçì ìîíèòîðèíãà ñîñòîÿíèÿîòäåëüíûõêîìïîíåíòîâïðèëîæåíèÿ,

à òàêæåïîòîêàñîîáùåíèé ìåæäóýòèìè êîìïîíåíòàìè[17℄.

Öåëüþ äàííîãî èññëåäîâàíèÿ ÿâëÿåòñÿ ðàçðàáîòêà ìåòîäîëîãèè òåñòèðîâàíèÿ ìèêðî-

ñåðâèñîâ è ðåàëèçàöèÿ ðåøåíèÿ, ïîçâîëÿþùåãî ïðîèçâîäèòü àâòîìàòèçèðîâàííîåòåñòèðî-

âàíèå ìèêðîñåðâèñíûõ ñèñòåì. Äëÿäîñòèæåíèÿ ýòîéöåëè íåîáõîäèìîðåøèòü ñëåäóþùèå

çàäà÷è:

(3)

ïðîâåñòè îáçîð ñóùåñòâóþùèõ ïîäõîäîâ ê òåñòèðîâàíèþ îáëà÷íûõ, ìóëüòèàãåíòíûõ è äðóãèõðàñïðåäåëåííûõ ïðîãðàììíûõ ñèñòåì ñ öåëüþ âûÿâëåíèÿ îñîáåííîñòåé òå-

ñòèðîâàíèÿ, õàðàêòåðíûõ äëÿìèêðîñåðâèñíîãîïîäõîäà;

ðàçðàáîòàòü ìåòîäîëîãèþ òåñòèðîâàíèÿìèêðîñåðâèñîâ;

ðàçðàáîòàòü ÏÎ,ïðåäîñòàâëÿþùååïîääåðæêóòåñòèðîâàíèÿ ìèêðîñåðâèñîâ è ðåàëè- çóþùååïðåäëîæåííóþ ìåòîäîëîãèþ.

Äàííàÿðàáîòàïîñâÿùåíàîáçîðóñîâðåìåííûõðåøåíèé,êàñàþùèõñÿòåñòèðîâàíèÿðàñïðå-

äåëåííûõ ñèñòåì, àíàëèçó èõ ïðèìåíèìîñòè â îáëàñòè ìèêðîñåðâèñîâ. Êðîìå òîãî, áóäóò

ðàññìîòðåíûîñíîâíûåîñîáåííîñòèòåñòèðîâàíèÿìèêðîñåðâèñíûõñèñòåìèïðåäëîæåíïîä-

õîäê èõòåñòèðîâàíèþ.àáîòàïîñòðîåíà ñëåäóþùèìîáðàçîì: â÷àñòè2 ðàññìàòðèâàþòñÿ

ñîâðåìåííûå ïîäõîäû ê òåñòèðîâàíèþ ðàñïðåäåëåííûõ âû÷èñëèòåëüíûõ ñèñòåì.  ÷àñòè

3 îïèñàíûîòëè÷èòåëüíûåîñîáåííîñòèòåñòèðîâàíèÿ ìèêðîñåðâèñíûõâû÷èñëèòåëüíûõ ñè-

ñòåì èïðåäëàãàåòñÿìåòîäîëîãèÿ òåñòèðîâàíèÿòàêèõñèñòåì.Â÷àñòè4ïðåäëîæåíïîäõîä

ê òåñòèðîâàíèþ ìèêðîñåðâèñîâ íà ïðèìåðå ïëàòîðìûMjolnirr.  ÷àñòè5 ïîäâåäåíû ðå-

çóëüòàòûðàáîòû.

2. Îáçîð ñîâðåìåííûõ ïîäõîäîâ ê òåñòèðîâàíèþ ðàñïðåäåëåí-

íûõ ñèñòåì

2.1. Ìèêðîñåðâèñíûå ñèñòåìû

Ìèêðîñåðâèñíûéïîäõîäÿâëÿåòñÿñðàâíèòåëüíîíîâûìíàïðàâëåíèåìâìèðåðàñïðåäå-

ëåííûõâû÷èñëèòåëüíûõ ñèñòåì,ïîòîìóêîëè÷åñòâîðàáîòâ ýòîéîáëàñòè íåî÷åíüâåëèêî.

Îñíîâíàÿ èíîðìàöèÿ î ìèêðîñåðâèñíîì ïîäõîäå èçëîæåíà â ñòàòüå Äæåéìñà Ëüþèñà è

Ìàðòèíà Ôàóëåðà [14℄.Âýòîéñòàòüåîïèñûâàåòñÿêîíöåïöèÿìèêðîñåðâèñà,àòàêæåõàðàê-

òåðíûå îñîáåííîñòèìèêðîñåðâèñíîéàðõèòåêòóðû.ÒîáèÊëåìñîíâñâîåéñòàòüå[6℄óäåëÿåò

îñîáîåâíèìàíèåâîïðîñàìòåñòèðîâàíèÿìèêðîñåðâèñîâ,âêëþ÷àÿ êîìïîíåíòíîåòåñòèðîâà-

íèå, èíòåãðàöèîííîå òåñòèðîâàíèå è òåñòèðîâàíèåêîíòðàêòà ìèêðîñåðâèñà. Íèë Ôîðä [7℄

òàêæå ðàññìàòðèâàåòìèêðîñåðâèñíûå àðõèòåêòóðû, îïèñûâàÿîñíîâíûåèäåè,êàñàþùèåñÿ

èõðàçðàáîòêè, ìîíèòîðèíãà èòåñòèðîâàíèÿ.Êðîìå òîãî, íåêîòîðûå êîììåð÷åñêèåêîìïà-

íèè óñïåøíî ïåðåøëè íà ìèêðîñåðâèñíóþ àðõèòåêòóðó è îïèñàëè ðåçóëüòàòû òàêîãî ïå-

ðåõîäà. Íàïðèìåð, â ñòàòüå [15℄ ðàññêàçûâàåòñÿ î ïåðåõîäå êîìïàíèè Netix íà ìèêðîñåð-

âèñíóþ àðõèòåêòóðó è î òîì, ÷åãî ýòî ïîòðåáîâàëî è êàêèå ïëþñû ïðèíåñëî.  ïðåäûäó-

ùåé ðàáîòå îïèñûâàåòñÿñîçäàíèå ïëàòîðìû ðàñïðåäåëåííûõâû÷èñëåíèéïîä íàçâàíèåì

Mjolnirr [18℄. Ýòà ñèñòåìà ðàáîòàåò ñ èçîëèðîâàííûìè êîìïîíåíòàìè, ïðåäîñòàâëÿÿ âîç-

ìîæíîñòü îáìåíèâàòüñÿ ñîîáùåíèÿìè â ñîîòâåòñòâèè ñ ïàòòåðíîì "èçäàòåëü-ïîäïèñ÷èê".

Íà áàçå ýòîé ïëàòîðìû áûëè ðåàëèçîâàíû ìåõàíèçìû àâòîìàòè÷åñêîãî ðàñïðåäåëåíèÿ

íàãðóçêè ìåæäó íåçàâèñèìûìèèèçîëèðîâàííûìè ïðîãðàììíûìèêîìïîíåíòàìèè ïëàíè-

ðîâàíèÿ èõðàçìåùåíèÿ íà äîñòóïíûõ âû÷èñëèòåëüíûõ ðåñóðñàõ. [16℄. Íàäàííûé ìîìåíò

çàêîí÷åííûõ êîðîáî÷íûõ ïðîäóêòîâ, îäíîçíà÷íî îðèåíòèðîâàííûõíà ñîçäàíèå ìèêðîñåð-

âèñíûõ ïðèëîæåíèé,âñå åùåíå ðàçðàáîòàíî. ÏëàòîðìàVamp [4℄,êîòîðàÿ äîëæíàáóäåò

ñîîòâåòñòâîâàòü âñåì òðåáîâàíèÿì ê ìèêðîñåðâèñíîé ïëàòîðìå, âûäâèíóòûì Ìàðòèíîì

Ôàóëåðîì, íà äàííûé ìîìåíò íàõîäèòñÿ â ñòàäèè àëüà-âåðñèè è ïîääåðæèâàåò òîëüêî

JVM-îðèåíòèðîâàííûå ìèêðîñåðâèñû.

Ñåðèÿ ñòàíäàðòîâ ISO/IEC 25010 Software Produt Quality [8℄ è ISO/IEC 29119

Software Testing [9℄ ñëóæàò îòïðàâíîé òî÷êîé ýòîé ðàáîòû. Òåñòèðîâàíèå â îáùåì ñëó÷àå

îïðåäåëÿåòñÿ êàê ñîâîêóïíîñòü âåðèèêàöèèè âàëèäàöèè [9℄.Âýòîé ðàáîòåòåñòèðîâàíèå

ìèêðîñåðâèñîâ áóäåò ðàññìàòðèâàòüñÿêàêïðîöåññ âàëèäàöèè,òàêêàê íåâîçìîæíîïðèìå-

íèòü ìåòîäû ñòàòè÷åñêîãîàíàëèçà êîäà ê óæå ñêîìïèëèðîâàííîìó ìèêðîñåðâèñóâ îáùåì

ñëó÷àå.

(4)

Êàêóïîìÿíóòîâûøå,ìèêðîñåðâèñûÿâëÿþòñÿïîäìíîæåñòâîìñåðâèñîââñìûñëåñåðâèñ-

îðèåíòèðîâàííîé àðõèòåêòóðû (SOA). Ñëåäîâàòåëüíî, äëÿ òåñòèðîâàíèÿ ìèêðîñåðâèñîâ

âîçìîæíîèñïîëüçîâàòüòåæåïðèåìû,÷òîèïðèòåñòèðîâàíèèSOA-ñåðâèñîâ.Íåêîòîðûåèç

ñóùåñòâóþùèõ ïîäõîäîâ èñïîëüçóþòBPEL-ìîäåëüäàííûõïðåäìåòíîéîáëàñòèäëÿòåñòè-

ðîâàíèÿ íàîñíîâåîãðàíè÷åíèé [11℄,äðóãèåïðåäëàãàþò òåñòèðîâàíèåíàîñíîâåêîíöåïöèè

áåëîãî ÿùèêà [1℄äëÿ îïðåäåëåíèÿòåñòîâîãîïîêðûòèÿñåðâèñà.

Äëÿ êà÷åñòâåííîãî òåñòèðîâàíèÿ ñåðâèñà íåîáõîäèìî ðåøèòü, êàêàÿ êà÷åñòâåííàÿ õà-

ðàêòåðèñòèêàâàæíàäëÿòåñòèðóåìîãîïðîäóêòà.ÂòåðìèíàõñòàíäàðòàISO/IEC25011[10℄

êà÷åñòâîîïðåäåëÿåòñÿêàêñòåïåíü,âêîòîðîéñåðâèñìîæåòáûòüèñïîëüçîâàíîïðåäåëåííû-

ìèïîëüçîâàòåëÿìèäëÿýåêòèâíîãîèáåçðèñêîâîãîóäîâëåòâîðåíèÿñâîèõïîòðåáíîñòåéè

äëÿäîñòèæåíèÿêîíêðåòíûõöåëåéñó÷åòîìñîãëàøåíèÿîáóðîâíåóñëóã(SLA)[9℄.Ñòàíäàðò

ISO/IEC 25011äåêëàðèðóåò 8 êà÷åñòâåííûõ õàðàêòåðèñòèê ñåðâèñà:Ïðèìåíèìîñòü ñåðâè-

ñà (ServieSuitability), Óäîáíîñòüñåðâèñà (ServieUsability), Áåçîïàñíîñòü ñåðâèñà(Servie

Seurity),Íàäåæíîñòüñåðâèñà(ServieReliability),Ïîíÿòíîñòüñåðâèñà(ServieTangibility),

Îòçûâ÷èâîñòüñåðâèñà(ServieResponsiveness),Äîñòóïíîñòüñåðâèñà(ServieAdaptability)è

Ñîïðîâîæäàåìîñòü ñåðâèñà(ServieMaintainability). Âñåýòè êà÷åñòâåííûåõàðàêòåðèñòèêè

(êðîìåÏîíÿòíîñòè ñåðâèñà)ìîãóòáûòü ïðèìåíåíûèêìèêðîñåðâèñíûìâû÷èñëèòåëüíûì

ñèñòåìàì. Êðîìå òîãî, ýòè êà÷åñòâåííûå õàðàêòåðèñòèêè íå ðåãëàìåíòèðóþò ýåêòèâ-

íîñòüðàáîòû ñåðâèñàýòàçàäà÷àöåëèêîìëîæèòñÿíà ðàçðàáîò÷èêà ñåðâèñà.Îäíàêîñòà-

áèëüíîñòü ñèñòåìû, âðåìÿ îòêëèêà, îòñóòñòâèå ðèñêîâ è ñîîòâåòñòâèåSLA ÿâëÿþòñÿòåìè

àêòîðàìè,êîòîðûå äîëæíûáûòüïðîòåñòèðîâàíû â ðàìêàõìèêðîñåðâèñíîé ñèñòåìû.

2.2. Òåñòèðîâàíèå è ðàñïðåäåëåííûå ñèñòåìû

Ìèêðîñåðâèñíûå ñèñòåìû, ìóëüòèàãåíòíûå ñèñòåìû è ñèñòåìû àêòîðîâ ðîäíèò åäè-

íàÿ ãëîáàëüíàÿ èäåÿ âî âñåõ òðåõ èñïîëüçóåòñÿ íàáîð óñëîâíî íåçàâèñèìûõ ñóùíîñòåé,

ñîâìåñòíî ðàáîòàþùèõ íàä ðåøåíèåì îáùåé çàäà÷è. Ñîîòâåòñòâåííî, ìíîãèå ïîäõîäû ê

òåñòèðîâàíèþòàêèõñèñòåììîãóòîêàçàòüñÿïðèìåíèìûèâñëó÷àå ìèêðîñåðâèñîâ.Íàïðè-

ìåð, ïîäõîä, èñïîëüçóþùèé îíòîëîãèè äëÿ ãåíåðàöèè òåñòîâûõ ñëó÷àåâ, ïðèìåíèì è äëÿ

ìèêðîñåðâèñíûõ ñèñòåì [22℄.Ïîäõîä ïðåäïîëàãàåòèñïîëüçîâàíèåîíòîëîãèé äëÿîïèñàíèÿ

âõîäíûõ è âûõîäíûõ äàííûõ êàæäîãî àãåíòà (èëè ìèêðîñåðâèñà), à òàêæå äàëüíåéøåé

àâòîìàòè÷åñêîé ãåíåðàöèÿ òåñòîâûõ ñëó÷àåâ, ñîîòâåòñòâóþùèõ âõîäíûõ äàííûì è ïðîâå-

ðÿþùèõâñåãðàíè÷íûåóñëîâèÿ âõîäíûõ èâûõîäíûõ äàííûõ.

Îäíàêîíåêîòîðûåàñïåêòûðàáîòûýòèõñèñòåìîòëè÷àþòñÿäðóãîòäðóãà.Íàïðèìåð,â

ðàáîòå[23℄òåñòèðîâàíèåïðîãðàììû,ðàáîòàþùåéâñîîòâåòñòâèèñàêòîðíûìïîäõîäîì,çà-

êëþ÷àåòñÿâ ìîäåëèðîâàíèèãðàà âçàèìîäåéñòâèéè ïîðîæäåíèÿîäíèõàêòîðîâäðóãèìè.

Òàêîé àíàëèçìîæåòáûòü ïðîâåäåíòîëüêîäëÿàêòîðíûõñèñòåìèíå ìîæåò èñïîëüçîâàòü-

ñÿ ïðè òåñòèðîâàíèè ìèêðîñåðâèñîâ, òàê êàê ìèêðîñåðâèñû ìîãóò áûòü ñîçäàíû òîëüêî

ìåíåäæåðîìðåñóðñîâ, è îäíè ìèêðîñåðâèñûíå ìîãóòïðîèçâîëüíîïîðîæäàòü äðóãèå.

Òàêèì îáðàçîì, íåêîòîðûå èç ñóùåñòâóþùèõ ñèñòåì òåñòèðîâàíèÿ ìóëüòèàãåíòíûõ è

àêòîðíûõ ñèñòåììîãóòáûòü èñïîëüçîâàíû äëÿòåñòèðîâàíèÿ ìèêðîñåðâèñíûõ ñèñòåì,îä-

íàêî ìèêðîñåðâèñû êîíñòðóêòèâíî îòëè÷àþòñÿ îò àêòîðîâ è àãåíòîâ, ïîýòîìó òå ñïîñîáû

òåñòèðîâàíèÿ òàêèõñèñòåì, êîòîðûå ó÷èòûâàþò õàðàêòåðíûåîñîáåííîñòèàãåíòîâ è àêòî-

ðîâ (íàïðèìåð, âîçìîæíîñòü ïîðîæäåíèÿ îäíèõàêòîðîâ äðóãèìè), íåïðèìåíèìû â òåñòè-

ðîâàíèèìèêðîñåðâèñíûõ ñèñòåì.

ÑîãëàñíîñòàíäàðòóISO/IEC 29119-4,ðàçðàáîòêà èðåàëèçàöèÿòåñòîâèòåñòîâûõ ïðî-

öåäóð ïðè ðàçðàáîòêå ÏÎ ñîñòîèò èç 6 øàãîâ îïðåäåëåíèå íàáîðà îñîáåííîñòåé (TD1),

âûäåëåíèå òåñòîâûõ óñëîâèé (TD2), âûäåëåíèå òåñòîâîãî ïîêðûòèÿ (TD3), âûäåëåíèå òå-

ñòîâûõ ñëó÷àåâ (TD4), ñîçäàíèå íàáîðîâ òåñòîâ (TD5) è îïðåäåëåíèå òåñòîâûõ ïðîöåäóð

(TD6) (ñì.ðèñ.2) [9℄. Äëÿîïèñàíèÿïðîöåññà òåñòèðîâàíèÿ ìèêðîñåðâèñîâáóäóòðàññìîò-

ðåíû ýòàïûTD2,TD3, TD4,TD5 íàTD6.

(5)

èñ. 2:ISO/IEC/IEEE29119-2àçðàáîòêà èðåàëèçàöèÿòåñòîâ

3. Ìåòîäîëîãèÿ òåñòèðîâàíèÿ ìèêðîñåðâèñîâ

 ýòîé ñòàòüå ìèêðîñåðâèñ ðàññìàòðèâàåòñÿ êàê ñåðâèñ-îðèåíòèðîâàííóþ ñóùíîñòü,

êîòîðàÿ îòâå÷àåòñëåäóþùèì òðåáîâàíèÿì:

Èçîëèðîâàííîñòü ìèêðîñåðâèñèçîëèðîâàí â ðàìêàõ îïðåäåëåííîãîêîíòåéíåðà êàê îò äðóãèõìèêðîñåðâèñîâ,òàêè îò àïïàðàòíîéïëàòîðìû;

Àâòîíîìíîñòü ìèêðîñåðâèñìîæåò áûòüðàçâåðíóò,óíè÷òîæåí,ïåðåìåùåíèëèäóá- ëèðîâàííåçàâèñèìîîòäðóãèõìèêðîñåðâèñîâ(ñëåäîâàòåëüíî,ìèêðîñåðâèñûíåìîãóò

íåïîñðåäñòâåííî ññûëàòüñÿíà ëîêàëüíûåðåñóðñû ñèñòåìû,íà êîòîðîéðàçâåðíóòû);

Ìèêðîñåðâèñ äîëæåí ïðåäîñòàâëÿòü îòêðûòûé è ñòàíäàðòèçîâàííûé èíòåðåéñ âçà- èìîäåéñòâèÿ äëÿ âñåõ âàðèàíòîâ èñïîëüçîâàíèÿ (êàê ïðîãðàììíûé èíòåðåéñ òàê,

âîçìîæíî, èãðàè÷åñêèé ïîëüçîâàòåëüñêèéèíòåðåéñ);

Ìèêðîñåðâèñû ìåëüêîìîäóëüíû, òî åñòü êàæäûé ìèêðîñåðâèñ íåñåò ïîëíóþ îòâåò- ñòâåííîñòüçà ñâîþ÷àñòüïðîáëåìíîéîáëàñòèîáùåãî ïðèëîæåíèÿ.

àññìîòðèì îñíîâíûå øàãè òåñòèðîâàíèÿ, õàðàêòåðíûå êàê äëÿ ÏÎ â öåëîì, òàê è äëÿ

ìèêðîñåðâèñíûõ ñèñòåì,èîïðåäåëèìòåèçíèõ, êîòîðûåèìåþò îñîáåííîñòèâðàìêàõìèê-

ðîñåðâèñíîéàðõèòåêòóðû.Ïîäêîìïîíåíòíûìòåñòèðîâàíèåìáóäåìïîíèìàòüòåñòèðîâàíèå

îòäåëüíîãî ìèêðîñåðâèñà, ïîä èíòåãðàöèîííûì òåñòèðîâàíèåì òåñòèðîâàíèå âçàèìîäåé-

ñòâèÿ ìåæäó îòäåëüíûìè ìèêðîñåðâèñàìè,ïîä ñèñòåìíûì òåñòèðîâàíèåì òåñòèðîâàíèå

óíêöèîíèðîâàíèÿ ñèñòåìû âöåëîì (ñì.òàáëèöó1).

3.1. Êîìïîíåíòíîå òåñòèðîâàíèå ìèêðîñåðâèñîâ

Ôóíêöèîíàëüíîå êîìïîíåíòíîå òåñòèðîâàíèå ÿâëÿåòñÿ ïðîâåðêîé îòäåëüíîãî ìèêðî-

ñåðâèñàíàñîîòâåòñòâèåóíêöèîíàëüíûìòðåáîâàíèÿì.Êàæäûéìèêðîñåðâèñèìååòíàáîð

óíêöèîíàëüíûõ òðåáîâàíèé. Äëÿòîãî, ÷òîáûïðîèçâåñòè êîìïîíåíòíîå òåñòèðîâàíèåîò-

äåëüíîãîìèêðîñåðâèñà,ñîâåðøåííî íåîáÿçàòåëüíîçàãðóæàòüåãîâîáëà÷íîå îêðóæåíèå

ýòîòòèï òåñòèðîâàíèÿ èìååòäåëî ñ ìèêðîñåðâèñîìêàê ñèçîëèðîâàííûìêîìïîíåíòîì.

àçðàáîòêà ÏÎ â ñîîòâåòñòâèè ñ ìèêðîñåðâèñíûì ïîäõîäîì ýòî ïðîöåññ ðàçðàáîòêè

ñèñòåìû êàê íàáîðàíåçàâèñèìûõ ìèêðîñåðâèñîâ, âçàèìîäåéñòâóþùèõ òîëüêî ïóòåì ïåðå-

äà÷è ñîîáùåíèé. Ñëåäîâàòåëüíî, êàæäûé ìèêðîñåðâèñ ïðåäñòàâëÿåò ñîáîé íåçàâèñèìûé

ïðîãðàììíûé ïðîäóêò, êîòîðûé äîëæåí áûòü ðàçðàáîòàí è ïðîòåñòèðîâàí íåçàâèñèìî îò

âñåõîñòàëüíûõìèêðîñåðâèñîâ.Ôóíêöèîíàëüíîåêîìïîíåíòíîåòåñòèðîâàíèåìèêðîñåðâèñà

ìîæåò áûòüðàçäåëåíà íàäâà ýòàïà:

ñòàíäàðòíîåþíèò-òåñòèðîâàíèåêëàññîâ,âõîäÿùèõâìèêðîñåðâèñ(áàçîâûéóðîâåíü);

(6)

Òàáëèöà1:Òèïûòåñòèðîâàíèÿ, èìåþùèåîñîáåííîñòèðåàëèçàöèèâ ðàìêàõ

ìèêðîñåðâèñíîéàðõèòåêòóðû

Êîìïîíåíòíîå Èíòåãðàöèîííîå Ñèñòåìíîå

Ôóíêöèîíàëüíîå + + -

Íàãðóçî÷íîå + + -

Áåçîïàñíîñòè + + -

òèï òåñòèðîâàíèÿíå èìååò îñîáåííîñòåéâ òåðìèíàõìèêðîñåðâèñîâ

+ òèï òåñòèðîâàíèÿ èìååò îñîáåííîñòè â òåðìèíàõ ìèêðîñåðâèñîâ

ñàìîòåñòèðîâàíèåìèêðîñåðâèñà,òîåñòüïðîâåðêàìèêðîñåðâèñîìñâîåãîñîáñòâåííîãî èíòåðåéñà.

èñ.3:Îáùàÿ ñòðóêòóðàìèêðîñåðâèñà

Ìèêðîñåðâèñ ÿâëÿåòñÿäîñòàòî÷íîñëîæíîéñóùíîñòüþ, ñîñòîÿùåéèç íåñêîëüêèõ êîì-

ïîíåíòîâ(íàïðèìåð, ëîêàëüíîãîõðàíèëèùà,âåá-ñåðâåðàèò.ä.),óïàêîâàííîéâêîíòåéíåð

(ñì. ðèñ. 3), è äàæå èíòåãðàöèÿ êîðîáî÷íîãî ÏÎ â âèðòóàëüíûé êîíòåéíåð äîëæíà ñî-

ïðîâîæäàòüñÿ äîïîëíèòåëüíî ïðîâåðêîé òîãî, íàñêîëüêî êîððåêòíî ðàáîòàåò ïîëó÷åííûé

ìèêðîñåðâèñ. Ïîñëå ýòîãî íåîáõîäèìî ïðîâåðèòü èíòåðåéñ ñîáðàííîãî ìèêðîñåðâèñà íà

ñîîòâåòñòâèåîðìàëüíûìòðåáîâàíèÿìêýòîìó ìèêðîñåðâèñó.Íàýòîìýòàïå ìèêðîñåðâèñ

ñàìîñòîÿòåëüíîòåñòèðóåòñîáñòâåííûéâíåøíèéèíòåðåéñ.Ôóíêöèîíàëüíîåòåñòèðîâàíèå

äîëæíî ïðîâîäèòüñÿàâòîìàòè÷åñêè ïðèêàæäîìèçìåíåíèèêîíèãóðàöèèìèêðîñåðâèñà.

Íàãðóçî÷íîå êîìïîíåíòíîå òåñòèðîâàíèå íàïðàâëåíî íà ïðîâåðêó ðàáîòîñïîñîáíîñòè

îòäåëüíîãî ìèêðîñåðâèñà ïðè îïðåäåëåííîé íàãðóçêå. Òàêàÿ ïðîâåðêà òàêæå ìîæåò îñó-

ùåñòâëÿòüñÿàâòîìàòè÷åñêè äëÿêàæäîãî ìèêðîñåðâèñàâîòäåëüíîñòè.Íàãðóçî÷íîåòåñòè-

ðîâàíèå ìèêðîñåðâèñà ïîçâîëÿåò íå òîëüêî îòâåòèòü íà âîïðîñ, ïðè êàêîé íàãðóçêå ïðî-

èçîéäåò îòêàç ìèêðîñåðâèñà, íî è âûÿâèòü íåîáõîäèìîå êîëè÷åñòâî ðåñóðñîâ äëÿ ðàáîòû

ìèêðîñåðâèñà.

Êîìïîíåíòíîå òåñòèðîâàíèåáåçîïàñíîñòè íàïðàâëåíî íà òåñòèðîâàíèå áåçîïàñíîñòè è

èçîëèðîâàííîñòè îòäåëüíîãî ìèêðîñåðâèñà. Êàêè â ñëó÷àå ñ óíêöèîíàëüíûìòåñòèðîâà-

íèåì,áåçîïàñíîñòüìèêðîñåðâèñà íåçàêàí÷èâàåòñÿíàáåçîïàñíîñòèîòäåëüíûõåãîêëàññîâ

(7)

òåñòèðóåòñÿáåçîïàñíîñòü âñåãîìèêðîñåðâèñà âêîìïëåêñå (íàïðèìåð,íà ïðåäìåòòèïè÷-

íûõ óÿçâèìîñòåéâåá-ñåðâåðîâ, èíúåêöèéè ò.ä.).Ýòîòýòàï òåñòèðîâàíèÿïðîèçâîäèòñÿáåç

ó÷àñòèÿ ïðèêëàäíîãîïðîãðàììèñòà.

3.2. Èíòåãðàöèîííîå òåñòèðîâàíèå ìèêðîñåðâèñîâ

Èíòåãðàöèîííîå òåñòèðîâàíèåìèêðîñåðâèñíîé ñèñòåìû âêëþ÷àåòâ ñåáÿ òåñòèðîâàíèå

âñåõ êîììóíèêàöèé ìåæäó ìèêðîñåðâèñàìè, òî åñòü òåñòèðîâàíèå ïðîòîêîëîâ êîììóíè-

êàöèè, îðìàòîâ îáìåíà, ðàçðåøåíèÿ âçàèìíûõ áëîêèðîâîê, èñïîëüçîâàíèÿ ðàçäåëÿåìûõ

ðåñóðñîâ è ïîñëåäîâàòåëüíîñòè ïåðåäà÷è ñîîáùåíèé.Äëÿ ðåàëèçàöèè âñåõ ïåðå÷èñëåííûõ

âîçìîæíîñòåéíàìíåîáõîäèìîîòñëåæèâàòüâñåñîîáùåíèÿ,ïåðåäàþùèåñÿîòìèêðîñåðâèñà

ê ìèêðîñåðâèñó, è õðàíèòü ïóòè èõ ïåðåäà÷è, à òàêæå çíàòü âñåõ âîçìîæíûõ ïîëó÷àòå-

ëåé òîãî èëè èíîãî ñîîáùåíèÿ. Ýòà èíîðìàöèÿ äîëæíà áûòü ïðåäñòàâëåíà â êîíòðàêòå

ìèêðîñåðâèñà.

Ôóíêöèîíàëüíîå èíòåãðàöèîííîåòåñòèðîâàíèå íàïðàâëåíà íà ïðîâåðêó êîððåêòíîñòè

îòïðàâêè è ïîëó÷åíèÿ ñîîáùåíèé îòäåëüíûì ìèêðîñåðâèñîì,ïîñëåäîâàòåëüíîñòè âçàèìî-

äåéñòâèÿ, à òàêæå îðêåñòðàöèè ìèêðîñåðâèñîâ. Çíàÿ ïîñëåäîâàòåëüíîñòü âçàèìîäåéñòâèÿ,

ìûìîæåìãåíåðèðîâàòüòåñòîâûåñëó÷àèàâòîìàòè÷åñêè,íî ýòà èíîðìàöèÿäîëæíàáûòü

ïðåäîñòàâëåíàðàçðàáîò÷èêîììèêðîñåðâèñà.Èñïîëüçóÿýòóèíîðìàöèþ,ìûìîæåìçàðà-

íååïîñòðîèòü ãðàâçàèìîäåéñòâèÿè òåñòèðîâàòüñèñòåìóñ åãîïîìîùüþ.

Íàãðóçî÷íîå èíòåãðàöèîííîå òåñòèðîâàíèå íàïðàâëåíî íà ïðîâåðêó êîððåêòíîñòè ðà-

áîòûìèêðîñåðâèñîâ âóñëîâèÿõàâòîìàòè÷åñêîãîðàçâåðòûâàíèÿ,äóáëèðîâàíèÿ èïåðåíîñà

èõ, àòàêæå îðêåñòðàöèÿèõîðåîãðàèÿìèêðîñåðâèñîâ.

Èíòåãðàöèîííîå òåñòèðîâàíèå áåçîïàñíîñòè íàïðàâëåíî íà òåñòèðîâàíèå áåçîïàñíîñòè

êîììóíèêàöèé ìåæäó ìèêðîñåðâèñàìè, à òàêæå ïðîâåðêó íà âîçìîæíîñòü ïåðåõâàòà ñî-

îáùåíèé èçâíå èëè âíóòðè ñèñòåìû êåì-ëèáî, ïîìèìî ïîëó÷àòåëÿ ñîîáùåíèÿ. Ìèêðîñåð-

âèñíàÿ ñïåöèèêàýòîãîóðîâíÿòåñòèðîâàíèÿòî÷íîòàêæåäîëæíàó÷èòûâàòüîñîáåííîñòè

ñðåäû, âêîòîðîéðàáîòàþò ìèêðîñåðâèñû.

3.3. Îáùàÿ ìåòîäîëîãèÿ òåñòèðîâàíèÿ ìèêðîñåðâèñíûõ ñèñòåì

Èñïîëüçóÿïîëó÷åííûåäàííûå,âîçìîæíîïðåäëîæèòüìåòîäîëîãèþòåñòèðîâàíèÿìèê-

ðîñåðâèñíîé ñèñòåìû,ïîçâîëÿþùåéãàðàíòèðîâàòüñòàáèëüíîñòüñèñòåìûïðèëþáîì èçìå-

íåíèè â îòäåëüíîììèêðîñåðâèñå (ñì.ðèñ. 4).

Ïîñëå òîãî, êàê çàâåðøàåòñÿ êîäèðîâàíèå ìèêðîñåðâèñà, åãî èñõîäíûå êîäû äîëæíû

áûòü ïîäâåðãíóòûþíèò-òåñòèðîâàíèþ äëÿ òîãî,÷òîáû óáåäèòüñÿ âñîîòâåòñòâèè íàïèñàí-

íîãî êîäà óíêöèîíàëüíûì òðåáîâàíèÿì ê ðàçðàáàòûâàåìîìó ìèêðîñåðâèñó. Åñëè þíèò-

òåñòèðîâàíèå ïðîøëî óñïåøíî, òî ìèêðîñåðâèñ óïàêîâûâàåòñÿ â êîíòåéíåð, ïîñëå ÷åãî

âûïîëíÿåòñÿ ñàìîòåñòèðîâàíèå ñêîìïèëèðîâàííîãî ìèêðîñåðâèñà. Åñëè ñàìîòåñòèðîâàíèå

ïðîøëî óñïåøíî, òî ïðîèçâîäèòñÿ íàãðóçî÷íîå þíèò-òåñòèðîâàíèå è êîìïîíåíòíîå òåñòè-

ðîâàíèå áåçîïàñíîñòè. Ýòè äâà ýòàïà ìîãóò âûïîëíÿòüñÿ îäíîâðåìåííî. Åñëè îíè âûïîë-

íÿþòñÿóñïåøíî,òîìèêðîñåðâèñðàçâîðà÷èâàåòñÿâòåñòîâîìîêðóæåíèè,ãäåïðîèçâîäÿòñÿ

óíêöèîíàëüíîå èíòåãðàöèîííîå òåñòèðîâàíèå,èíòåãðàöèîííîå íàãðóçî÷íîåòåñòèðîâàíèå

è èíòåãðàöèîííîåòåñòèðîâàíèåáåçîïàñíîñòè.Åñëè ýòîòýòàïïðîõîäèòóñïåøíî, òîìèêðî-

ñåðâèñ ðàçâîðà÷èâàåòñÿ â ðàáî÷åì îêðóæåíèè, ãäå ïðîèñõîäèò íåïðåðûâíîå òåñòèðîâàíèå

ñòàáèëüíîñòèâñîîòâåòñòâèèñìåòîäîëîãèåéíàìåðåííîãîïðîâîöèðîâàíèÿñëó÷àéíûõñáîåâ

ðàáîòû ñèñòåìû (ðåàëèçóåìîãî, íàïðèìåð,ñåðâèñîìChaos Monkey [5℄).

4. Òåñòèðîâàíèå ìèêðîñåðâèñîâ â ïëàòîðìå Mjolnirr

 ñòàòüÿõ [16,18℄ áûëà îïèñàíà ðàçðàáîòêà ïðîòîòèïà ìèêðîñåðâèñíîé ïëàòîðìû

Mjolnirr. Ýòà ïëàòîðìà ïîääåðæèâàåò ìèêðîñåðâèñû, ðàçðàáîòàííûå íà áàçå JVM. Èí-

(8)

èñ.4:Ìåòîäîëîãèÿ òåñòèðîâàíèÿ ìèêðîñåðâèñíîéñèñòåìû

òåãðàöèÿ ñMjolnirr áóäåò ïåðâûì øàãîì ðåàëèçàöèèñèñòåìû äëÿ òåñòèðîâàíèÿ ìèêðîñåð-

âèñîâ. Íà ýòîì ýòàïå áóäóò èñïîëüçîâàòüñÿ ñòàíäàðòíûå èíñòðóìåíòû òåñòèðîâàíèÿ äëÿ

ïëàòîðìû Java (íàïðèìåð, jUnit äëÿ þíèò-òåñòèðîâàíèÿ). Îïèøåì òî, êàê äîëæåí áûòü

ðåàëèçîâàíà òàêàÿñèñòåìà, îñíîâûâàÿñü íà ìåòîäîëîãèè,ïðåäëîæåííîéâ ðàçäåëå3.Îïè-

ñàíèå áóäåìñòðîèòü â ñîîòâåòñòâèèñ øàãàìèðàçðàáîòêè è ðåàëèçàöèè òåñòîâè òåñòîâûõ

ïðîöåäóð,ðåãëàìåíòèðîâàííûìèñòàíäàðòîìISO/IEC 29119-4 (ñì.ðàçäåë2).

TD2 (Âûäåëåíèå òåñòîâûõ óñëîâèé) îïèñûâàåòòî, êàêèå àñïåêòû ìèêðîñåðâèñîâïîä-

ëåæèòòåñòèðîâàíèþ. Âñëó÷àå ïëàòîðìûMjolnirrîòäåëüíûå ìèêðîñåðâèñûèîáðàùåíèÿ

ê íèììîãóòðàññìàòðèâàòüñÿêàêòåñòîâûå ñëó÷àè.Êàêñêàçàíîâãëàâå3,êàæäûéìèêðî-

ñåðâèñ ÿâëÿåòñÿ èçîëèðîâàííîé è íåçàâèñèìîé ñóùíîñòüþ, è, ñëåäîâàòåëüíî, åãî òåñòèðî-

âàíèåìîæåòáûòüïðîâåäåíîâîòäåëüíîéJVM.Ìèêðîñåðâèñûîáìåíèâàþòñÿèíîðìàöèåé

ïðè ïîìîùè ñîîáùåíèé, ñëåäîâàòåëüíî, ìû ìîæåì âûäåëèòü ñëåäóþùèå óñëîâèÿ ðàáîòû

ìèêðîñåðâèñíîéñèñòåìû:ïîëíàÿèçîëÿöèÿíàêîìïîíåíòíîìóðîâíå,îáìåíñîîáùåíèÿìèè

èíêàïñóëÿöèÿëîãèêè.

TD3 (Âûäåëåíèå òåñòîâîãî ïîêðûòèÿ) îïèñûâàåò àòðèáóòû, âûäåëåííûå èç óñëîâèé

òåñòèðîâàíèÿ. Òåñòîâûìè óñëîâèÿìè ÿâëÿþòñÿ ìèêðîñåðâèñû è ñîîáùåíèÿ ìåæäó íèìè,

ñëåäîâàòåëüíî, ýëåìåíòàìè òåñòîâîãî ïîêðûòèÿ áóäóò ìåòîäû è ñîîáùåíèÿ. Êàæäûé ìå-

òîäìèêðîñåðâèñàèêàæäûéêàíàë êîììóíèêàöèèñäðóãèìèìèêðîñåðâèñàìèäîëæåíáûòü

ïîêðûòòåñòàìè,ñãåíåðèðîâàííûìèàâòîìàòè÷åñêèëèáîíàïèñàííûìè ðàçðàáîò÷èêîìïðè-

ëîæåíèÿ.

TD4 (Âûäåëåíèå òåñòîâûõ ñëó÷àåâ) îïèñûâàåò ïðîöåññ ãåíåðàöèè òåñòîâûõ ñëó÷àåâ.

Èñõîäÿ èç âûáðàííûõ õàðàêòåðèñòèê êà÷åñòâà è ñòàíäàðòà ISO/IEC 29119-4, ìîæíî ðå-

øèòü, êàêèå ñïîñîáû ðàçðàáîòêè òåñòîâ ìû äîëæíû èñïîëüçîâàòü. Äëÿ òåñòèðîâàíèÿ íà

êîìïîíåíòíîìóðîâíåâîçìîæíîèñïîëüçîâàòüòîëüêîìåòîäû,îñíîâàííûåíàñïåöèèêàöèè

ìèêðîñåðâèñà (íàïðèìåð, àíàëèç ãðàíè÷íûõ çíà÷åíèé, ýêâèâàëåíòíîå ðàçáèåíèå, òåñòèðî-

(9)

âàíèå íà îñíîâå âàðèàíòîâ èñïîëüçîâàíèÿ è ò. ä.). Êðîìå òîãî, íà êîìïîíåíòíîì óðîâíå

âîçìîæíîàíàëèçèðîâàòüìèêðîñåðâèñíàïðåäìåòòèïè÷íûõóÿçâèìîñòåéíàîñíîâåçíàíèé

îá èñïîëüçóåìîìÏÎ.

TD6 (Îïðåäåëåíèå òåñòîâûõ ïðîöåäóð) îïèñûâàåò ïðîöåäóðû ïðîâåäåíèÿ òåñòèðîâà-

íèÿ.  ñëó÷àå Mjolnirr èñïîëüçóþòñÿ êàê àâòîìàòè÷åñêèå, òàê è íàïèñàííûå âðó÷íóþ òå-

ñòîâûåñëó÷àè,ñëåäîâàòåëüíî,íåîáõîäèìî ïîêðûòüâñåýëåìåíòûïîêðûòèÿìèêðîñåðâèñà.

Òåñòîâûå ñëó÷àè ìîãóò ìîäèèöèðîâàòü ñîñòîÿíèå ìèêðîñåðâèñà è åãîîêðóæåíèå, ñëåäî-

âàòåëüíî, òåñòèðîâàíèå ìèêðîñåðâèñà äîëæíî ïðîèñõîäèòü â èçîëèðîâàííîì îêðóæåíèè,

ñîñòîÿíèå êîòîðîãî ëåãêî ìîæíî âåðíóòü ê ïåðâîíà÷àëüíîìó. Êàê ïîêàçàíî íà ðèñóíêå 5,

èñ.5:àçìåùåíèåêîìïîíåíòîâñèñòåìû òåñòèðîâàíèÿíà ïëàòîðìå Mjolnirr

Mjolnirrèìååò 3 âàðèàíòà îêðóæåíèÿ ñïåöèàëüíûéèçîëèðîâàííûéêîíòåéíåðäëÿòåñòè-

ðîâàíèÿíàêîìïîíåíòíîìóðîâíå,òåñòîâîåîêðóæåíèåäëÿòåñòèðîâàíèÿíàèíòåãðàöèîííîì

óðîâíå è ðàáî÷åå îêðóæåíèå äëÿ êîíå÷íûõ ïîëüçîâàòåëåé. Òåñòîâîå è ðàáî÷åå îêðóæåíèÿ

èìåþò âñòðîåííûéñåðâèñ Chaos Monkey [5℄ äëÿ ïîñòîÿííîé ïðîâåðêè ñòàáèëüíîñòè ñèñòå-

ìû.Êàæäûé ìèêðîñåðâèñäîëæåíïîñëåäîâàòåëüíîïðîõîäèòü÷åðåçýòè 3òèïàîêðóæåíèé

ïåðåäòåì,êàê áûòüðàçâåðíóòûì âðàáî÷åìîêðóæåíèè.

Äëÿòîãî,÷òîáûèñïîëüçîâàòüâûøåïåðå÷èñëåííûå òåõíèêè,íåîáõîäèìîèìåòü äåòàëü-

íîåîïèñàíèåèíòåðåéñàìèêðîñåðâèñà,âêëþ÷àÿåãîâõîäíûåèâûõîäíûåäàííûå,èõîãðà-

íè÷åíèÿ è ñèíòàêñèñ. Èñïîëüçóÿ ýòó èíîðìàöèþ, ìû ìîæåì ïðîèçâîäèòü òåñòèðîâàíèå

êàæäîãîìèêðîñåðâèñàïîìåòîäó÷åðíîãîÿùèêà âäîïîëíåíèåêþíèò-òåñòàì,íàïèñàííûì

ðàçðàáîò÷èêîì.Ïðèìåðèíòåðåéñàìèêðîñåðâèñà ïðåäñòàâëåííà ðèñóíêå 6.

 ñëó÷àå èíòåãðàöèîííîãî òåñòèðîâàíèÿ èçâåñòíà âíóòðåííÿÿ ñòðóêòóðà òåñòèðóåìîé

ñèñòåìû. Ñëåäîâàòåëüíî,âäîïîëíåíèåâ âûøåîïèñàííûìòåõíèêàìíàïèñàíèÿòåñòîâ,âîç-

ìîæíî èñïîëüçîâàòü ñòðóêòóðíûå òåõíèêè, íàïðèìåð, òåñòèðîâàíèå ïî ïîòîêó äàííûõ è

ò.ä. Êàêïîêàçàíîíà ðèñóíêå,èíòåðåéñìèêðîñåðâèñà òàêæå îïèñûâàåò îðìàòâõîäíûõ

è âûõîäíûõ ñîîáùåíèé, ñëåäîâàòåëüíî, ñèñòåìà ìîæåò ïîñòðîèòü ãðà, âåðøèíàìè êîòî-

ðîãî áóäóò ÿâëÿòüñÿ ìèêðîñåðâèñû, à ðåáðàìè ïóòè ïåðåäà÷è ñîîáùåíèé ìåæäó äâóìÿ

îòäåëüíûìè ìèêðîñåðâèñàìè, è òåñòèðîâàòü ñèñòåìó â ñîîòâåòñòâèè ñ ïîñòðîåííûì ãðà-

îì.

Òåñòèðîâàíèåíàèíòåãðàöèîííîìóðîâíåíåìîæåòáûòüðåàëèçîâàííàóðîâíåêîíòåéíå-

ðà,ïîýòîìóâïëàòîðìå Mjolnirrýòà çàäà÷àðåøàåòñÿíà óðîâíåâñåéïëàòîðìûìîäóëåì

Proxy.Proxyõðàíèòãðàâûçîâîâèñðàâíèâàåòåãîñãðàîì,ïîñòðîåííûìíàîñíîâåèíòåð-

åéñîâ ìèêðîñåðâèñîâ.Êðîìåòîãî,Proxyìîæåò èñïîëüçîâàòüðàçëè÷íûåäîïîëíèòåëüíûå

òåõíèêè èíòåãðàöèîííîãî òåñòèðîâàíèÿ íàïðèìåð,Chaos Monkeyè äîñòàâêó ñëó÷àéíîãî

ñîîáùåíèÿ ñëó÷àéíîìóïîëó÷àòåëþ.

(10)

èñ.6:Èíòåðåéñ ìèêðîñåðâèñà

5. Çàêëþ÷åíèå

Âýòîéñòàòüåáûëèîïèñàíû îñîáåííîñòèòåñòèðîâàíèÿìèêðîñåðâèñîâ èòåõíèêè,ïðè-

ìåíèìûå äëÿ ðåøåíèÿýòîéçàäà÷è.Áûëà ïðåäñòàâëåíàìåòîäîëîãèÿ òåñòèðîâàíèÿ ìèêðî-

ñåðâèñíûõ ïëàòîðì, ðàçðàáîòàííàÿ íà îñíîâå ñåðèè ñòàíäàðòîâ ISO/IEC 25010. Äàííàÿ

ìåòîäîëîãèÿ ïîêðûâàåòïðîöåññðàçðàáîòêèìèêðîñåðâèñíîéñèñòåìû,íà÷èíàÿñêîäèðîâà-

íèÿ îòäåëüíîãî ìèêðîñåðâèñàè çàêàí÷èâàÿíåïðåðûâíûì òåñòèðîâàíèåì ñòàáèëüíîñòèðà-

áî÷åãîîêðóæåíèÿ.Íàîñíîâåðàçðàáîòàííîé ìåòîäîëîãèèíàìèáûëî ïðåäëîæåíîðåøåíèå,

îáåñïå÷èâàþùåå òåñòèðîâàíèå ìèêðîñåðâèñíûõ ñèñòåì, ðàçâåðíóòûõ íà áàçå ïëàòîðìû

Mjolnirr.

Äàëüíåéøèìíàïðàâëåíèåìðàçâèòèÿäàííîãîïðîåêòàáóäåòÿâëÿòüñÿïðîåêòèðîâàíèåè

ðåàëèçàöèÿïðîãðàììíûõêîìïîíåíòîâ,îáåñïå÷èâàþùèõïîääåðæêóïðåäëîæåííîéìåòîäî-

ëîãèèòåñòèðîâàíèÿìèêðîñåðâèñíûõñèñòåìââèäåàâòîìàòèçèðîâàííûõñåðâèñîâ.Äàííûå

ñåðâèñûîáåñïå÷àòïðîöåññàâòîìàòèçèðîâàííîãîòåñòèðîâàíèÿðàçðàáàòûâàåìûõìèêðîñåð-

âèñîâè ïîääåðæêóíåïðåðûâíîéèíòåãðàöèè ìèêðîñåðâèñíûõñèñòåì.

Ëèòåðàòóðà

1. Bartolini C.,BertolinoA.,Elbaum S.,Marhetti E.WhiteningSOAtesting Proeedings of

thethe7thjoint meeting oftheEuropean softwareengineering onfereneand theACM

SIGSOFTsymposium onThe foundationsofsoftwareengineering. 161170.

2. BrooksF.P.No SilverBullet.Esseneand aidentsof softwareengineering IEEE

omputer 20(4);1987:10-19.

3. Calhado P.Building Produtsat SoundCloudPartIII: Miroservies inSalaand

Finagle [Online℄ Availableat: https:developers.soundloud.omblogbuilding-produts-at-

soundloud-part-3-miroservies-in-sala-and-nagle[aessed

01.05.2015℄.

4. VAMP [Online℄Available at:https:github.ommagnetiiovamp[aessed 12.06.2015℄

5. Chaos Monkey [Online℄ Availableat:

https:github.omNetixSimianArmywikiChaos-Monkey[aessed 12.01.2015℄

(11)

6. Clemson, T. TestingStrategiesina MiroservieArhiteture.2014. [Online℄ Availableat:

http:martinfowler.omartilesmiroservie-testing[Aessed 10.01.2015℄.

7. FordN. BuildingMiroservieArhitetures. [Online℄Available from:

http:nealford.omdownloadsBuilding_miroservie_Arhitetures(Neal_Ford).pdf

[aessed 13.02.2015℄

8. InternationalOrganizationfor Standardization(2014) 25010. ServieQualityRequirements

and Evaluation(SquaRE)System and softwareQualityModel,2014, Canada.

9. InternationalOrganization forStandardization (2014)29119. SoftwareTesting, 2014,

Canada.

10. InternationalOrganization forStandardization (2015)25011. Servie Quality

RequirementsandEvaluation(SquaRE) ServieQualityModel,2015, China.

11. JehanS., PillI.,WotawaF. Funtional SOATestingBased onConstraints. Proeedings of

the8thInternationalWorkshopon Automation ofSoftwareTest.3339.

12. Jones S.Miroserviesis SOA,for those whoknowwhat SOA is, 2014. [Online℄.Available

at:

http:servie-arhiteture.blogspot.ru201403miroservies-is-soa-for-those-who-know.html.

[Aessed:17.11.2014℄.

13. KantN., Tonse T.Karyon:Thenuleus ofa Composable Web Servie. [Online℄ Available

at: http:tehblog.netix.om201303karyon-nuleus-of-omposable-web-servie.html

[aessed 17.11.2014℄.

14. Lewis J., FowlerM. Miroservies. [Online℄ Availableat:

http:martinfowler.omartilesmiroservies.html[aessed 17.11.2014℄.

15. Prana: ASidearfor yourNetixPaaSbasedAppliations andServies. [Online℄Available

from:http:tehblog.netix.om201411prana-sidear-for-your-netix-paas.html [aessed

13.02.2015℄

16. RadhenkoG.,MikhailovP.,SavhenkoD.,Shamakina A.,SokolinskyL.Component-based

development ofloud appliations:aase study oftheMjolnirrplatform. Proeedingsof

the10thCentral andEasternEuropean SoftwareEngineeringConferene inRussia

(CEE-SECR '14).Artile 6,10 pages.

17. RhotonJ, Haukioja R. Cloud omputingarhiteted. [Tunbridge Wells, Kent℄: Reursive

Press; 2011.

18. Savhenko D., Radhenko G.Mjolnirr: A HybridApproahto Distributed Computing

Arhitetureand Implementation CLOSER2014.Proeedings ofthe4thInternational

Conferene onCloud Computingand ServiesSiene(Barelona, Spain3-5April,2014),

2014. P.445-450.

19. ThonesJ. Miroservies. Software, IEEE,Volume 24 Issue3,2015. P.116-116.

20. TonseS.Miroserviesat Netix. [Online℄Available from:

http:www.slideshare.netstonsemiroservies-at-netix [aessed 6.02.2015℄.

21. Varia J.Cloud arhitetures. WhitePaperof Amazon Web Servies,2008. [Online℄

Available at:https:media.amazonwebservies.omAWS_Cloud_Arhitetures.pdf [aessed

17.11.2014℄.

(12)

22. NguyenC.D., PeriniA., TonellaP.Ontology-based Test Generationfor MultiAgent

Systems(Short Paper) Proeedingsof the7thinternationaljoint onfereneon

Autonomous agentsand multiagent systems- Volume 3.P.1315-1320.

23. TasharoS., Karmani R.K.,LauterburgS., LegayA., MarinovD., AghaG. TransDPOR:

A NovelDynamiPartial-OrderRedutionTehnique for TestingAtor Programs. In

FMOODS/FORTE, volume 7273ofLetureNotes inComputerSiene, 219234.Springer,

2012.

(13)

Microservices cloud applications testing approach

Dmitry Savchenko and Gleb Radchenko

Keywords: Cloud computing, Microservices, SOA, Fine-grained SOA

Microservice architecture is a cloud application design pattern that implies that the application

is divided into a number of small independent services, each of which is responsible for

implementing of a certain feature. The need for continuous integration of developed and/or

modified microservices in the existing system requires a comprehensive validation of

individual microservices and their co-operation as an ensemble with other microservices. In

this paper, we would provide an analysis of existing methods of cloud applications testing and

identify features that are specific to the microservice architecture. Based on this analysis, we

will try to propose a validation methodology of the microservice systems.

Références

Documents relatifs

For the web frontend example, the expression obtained defines that an instance of feature Cartridge can provide service requirements if features medium , Tomcat , EU , Scalable and

In the future, we plan to precisely define the CPN subclass for CNAs, create tools for code generation for both infrastructure and application code and explore possibilities

Статья посвящена актуальной проблеме системного проектирования облачных вычислений на базе отказоустойчивого мультипроцессора

Тогда, если время передачи буфера не зависит от нагрузки сети, то с увеличением количества передаваемых буферов стандартное отклонение

В рамках развития концепции использования виртуальных лаборатории для задач тестирования на проникновение, развернуты три учебных лаборатории –

We started using the platform in real-world scenarios to build web applications and share code across projects. It is our intention to further work out the kinks and make the

TaaS – это модель использования внешних ресурсов (аутсорсинга), при которой задачи тестирования приложений решаются с помощью привлечения

In the context of software solutions for connected cars, this means that besides providing the connectivity for the car itself, and hosting a backend, one major task is to offer