=Paper=
{{Paper
|id=Vol-1482/245
|storemode=property
|title=Методология тестирования микросервисных облачных приложений
(Microservices cloud applications testing approach)
|pdfUrl=https://ceur-ws.org/Vol-1482/245.pdf
|volume=Vol-1482
}}
==Методология тестирования микросервисных облачных приложений
(Microservices cloud applications testing approach)==
Суперкомпьютерные дни в России 2015 // Russian Supercomputing Days 2015 // RussianSCDays.org Ìåòîäîëîãèÿ òåñòèðîâàíèÿ ìèêðîñåðâèñíûõ îáëà÷íûõ ïðèëîæåíèé ∗ Ä.È. Ñàâ÷åíêî, .È. àä÷åíêî Þæíî-Óðàëüñêèé îñóäàðñòâåííûé Óíèâåðñèòåò Ìèêðîñåðâèñíûé ïîäõîä ê îðãàíèçàöèè ïðèëîæåíèé ïîäðàçóìåâàåò, ÷òî àðõèòåê- òóðà îáëà÷íîãî ïðèëîæåíèÿ ïðåäñòàâëÿåòñÿ â âèäå íàáîðà íåáîëüøèõ íåçàâèñè- ìûõ ñåðâèñîâ, êàæäûé èç êîòîðûõ èìååò ñâîþ çîíó îòâåòñòâåííîñòè è óíêöèî- íàëüíîñòü. Èñïîëüçîâàíèå òàêîãî ïîäõîäà ïîäðàçóìåâàåò íåîáõîäèìîñòü èñïîëü- çîâàíèÿ ìåòîäîâ íåïðåðûâíîé èíòåãðàöèè äëÿ ðàçâåðòûâàíèÿ ñèñòåìû, ÷òî, â ñâîþ î÷åðåäü, òðåáóåò ìåòîäîëîãèè è èíñòðóìåíòàðèÿ äëÿ àâòîìàòè÷åñêîãî òå- ñòèðîâàíèÿ êàê îòäåëüíûõ ìèêðîñåðâèñîâ òàê è ìèêðîñåðâèñíûõ ñèñòåì â îáùåì.  äàííîé ñòàòüå ïðåäëàãàåòñÿ ìåòîäîëîãèÿ òåñòèðîâàíèÿ ìèêðîñåðâèñíûõ ñèñòåì íà âñåõ ýòàïàõ èõ ðàçðàáîòêè è óíêöèîíèðîâàíèÿ, íà÷èíàÿ ñ ðàçðàáîòêè îò- äåëüíûõ ìèêðîñåðâèñîâ, çàêàí÷èâàÿ íåïðåðûâíûì òåñòèðîâàíèåì ñòàáèëüíîñòè ìèêðîñåðâèñíûõ ñèñòåì. Òàêæå, ïðåäñòàâëåíû ïîäõîäû ðåàëèçàöèè äàííîé ìå- òîäîëîãèè íà îñíîâå ïðîòîòèïà ìèêðîñåðâèñíîé îáëà÷íîé ïëàòîðìû Mjolnirr. 1. Ââåäåíèå Ìèêðîñåðâèñíàÿ àðõèòåêòóðà ýòî ïàòòåðí ïðîåêòèðîâàíèÿ îáëà÷íûõ ïðèëîæåíèé, ïîäðàçóìåâàþùèé, ÷òî ñëîæíîå ïðèëîæåíèå ðàçäåëÿåòñÿ íà ðÿä íåáîëüøèõ íåçàâèñèìûõ ñåðâèñîâ, âçàèìîäåéñòâóþùèõ äðóã ñ äðóãîì ïîñðåäñòâîì êðîññïëàòîðìåííîãî API. Ýòè ñåðâèñû ìîãóò áûòü ðàçâåðíóòû íåçàâèñèìî äðóã îò äðóãà, â àâòîìàòè÷åñêîì ðåæèìå [14℄. Ìèêðîñåðâèñû ìîãóò áûòü ðàññìîòðåíû êàê ìåòà-ïðîöåññû ìåòà-ÎÑ, îíè íåçàâèñèìû è ìî- ãóò âçàèìîäåéñòâîâàòü äðóã ñ äðóãîì ïîñðåäñòâîì ïåðåäà÷è ñîîáùåíèé, îíè ìîãóò áûòü ïðîäóáëèðîâàíû, ïðèîñòàíîâëåíû è ïåðåçàïóùåíû, à òàêæå ïåðåìåùåíû íà ëþáîé äðó- ãîé âû÷èñëèòåëüíûé óçåë. Íà äàííûé ìîìåíò ñóùåñòâóåò íåñêîëüêî ïðèìåðîâ ðåàëèçàöèè èñ. 1: Ìîíîëèòíàÿ è ìèêðîñåðâèñíàÿ àðõèòåêòóðû àáîòà âûïîëíåíà ïðè èíàíñîâîé ïîääåðæêå Ñîâåòà ïî ãðàíòàì Ïðåçèäåíòà îññèéñêîé Ôåäåðàöèè ∗ (íîìåð ïðîåêòà ÌÊ-7524.2015.9) è îññèéñêîãî îíäà óíäàìåíòàëüíûõ íàó÷íûõ èññëåäîâàíèé (ãðàíò 14-07-00420) 245 Суперкомпьютерные дни в России 2015 // Russian Supercomputing Days 2015 // RussianSCDays.org ïëàòîðì, ïîñòðîåííûõ â ñîîòâåòñòâèè ñ ìèêðîñåðâèñíûì ïîäõîäîì. Òàêèå êîìïàíèè, êàê Netix [15, 20℄ è SoundCloud [3℄ èñïîëüçóþò êîíöåïöèþ ìèêðîñåðâèñîâ â ñâîåé àðõèòåêòó- ðå, â òî âðåìÿ, êàê Amazon [21℄ ïðåäëàãàåò íàáîð ñåðâèñîâ, êîòîðûå ìîãóò áûòü òàêæå ðàññìîòðåíû êàê ïðèìåðû ìèêðîñåðâèñîâ. Ìèêðîñåðâèñíûé àðõèòåêòóðíûé ïîäõîä ìîæåò áûòü ïðîòèâîïîñòàâëåí ñ ìîíîëèòíûì ïîäõîäîì ê ïðîåêòèðîâàíèþ àðõèòåêòóðû ïðèëîæåíèÿ, ïðè êîòîðîì ïðèëîæåíèå ïðåäñòàâ- ëÿåò ñîáîé åäèíûé ëîãè÷åñêèé áëîê (ñì. ðèñ. 1). Ñåðâåðíàÿ ÷àñòü ìîíîëèòíîãî ïðèëîæåíèÿ ïðèíèìàåò HTTP-çàïðîñû, ñëåäèò çà áèçíåñ-ëîãèêîé ïðèëîæåíèÿ, âçàèìîäåéñòâóåò ñ áàçîé äàííûõ, à òàêæå îáåñïå÷èâàåò îòîáðàæåíèå èíòåðåéñà ïîëüçîâàòåëÿ äëÿ âñåãî ïðèëîæå- íèÿ. Èçìåíåíèå îäíîãî ýëåìåíòà òàêîãî ïðèëîæåíèÿ ìîæåò ñïðîâîöèðîâàòü ïåðåñáîðêó è ïåðåðàçâåðòûâàíèå âñåãî ïðèëîæåíèÿ, ÷òî, â ñâîþ î÷åðåäü, ìîæåò âûçâàòü ïðîñòîè â ðàáî- òå ïîëüçîâàòåëåé ïðèëîæåíèÿ. Òàêæå, ïðè íåîáõîäèìîñòè ìàñøòàáèðîâàíèÿ, ïðèëîæåíèå òàêîãî òèïà òÿæåëî ðàçáèòü íà íåçàâèñèìûå êîìïîíåíòû, â ñëåäñòâèè ÷åãî ïðèõîäèòñÿ ïðîèçâîäèòü äóáëèðîâàíèå âñåãî ìîíîëèòà íà âñå âû÷èñëèòåëüíûå óçëû. Äëÿ òîãî, ÷òîáû èçáåæàòü òàêèõ ïîñëåäñòâèé, íåîáõîäèìî íåóêîñíèòåëüíî ñëåäîâàòü ïàðàäèãìå ïîñòðîåíèÿ ìîäóëüíûõ ïðèëîæåíèé, ÷òî, îäíàêî, òðåáóåò áîëüøèõ çàòðàò íà ïðîåêòèðîâàíèå [14℄. Ïðè ïðîåêòèðîâàíèè ñèñòåìû â ñîîòâåòñòâèè ñ ìèêðîñåðâèñíûì ïîäõîäîì (ñì. ðèñ. 1), ïðîåêòèðóåìàÿ ñèñòåìà äåëèòñÿ íà íåçàâèñèìûå êîìïîíåíòû (ìèêðîñåðâèñû), êîòîðûå óïðàâëÿþòñÿ íåçàâèñèìî. Òàêîå ðàçäåëåíèå ïîëåçíî äëÿ âûñîêîíàãðóæåííûõ ñèñòåì, ÷àñòè êîòîðûõ ïîäâåðãàþòñÿ ðàçíîé íàãðóçêå è äîëæíû ìàñøòàáèðîâàòüñÿ íåçàâèñèìî. Ìèêðî- ñåðâèñíûé ïîäõîä èìååò ìíîãî îáùåãî ñ ñåðâèñ-îðèåíòèðîâàííûì ïîäõîäîì [12℄. Netix, ðàçðàáîò÷èê îäíîé èç ïåðâûõ ìèêðîñåðâèñíûõ ïëàòîðì, íàçûâàåò ìèêðîñåðâèñíóþ àðõè- òåêòóðó "ìåëêîìîäóëüíîé ÑÎÀ"("a ne grained Servi e Oriented Ar hite ture") [13℄. Îäíàêî, ìèêðîñåðâèñíàÿ àðõèòåêòóðà èìååò è ñâîè õàðàêòåðíûå îñîáåííîñòè [14℄: • ìèêðîñåðâèñ äîëæåí èñïîëüçîâàòü ìåõàíèçì îáìåíà ñîîáùåíèÿìè äëÿ êîììóíèêàöèè ñ äðóãèìè ìèêðîñåðâèñàìè (íàïðèìåð, HTTP); • êàæäûé ìèêðîñåðâèñ äîëæåí ðåàëèçîâûâàòü îòäåëüíûé, íåçàâèñèìûé îò äðóãèõ ìèê- ðîñåðâèñîâ, áëîê áèçíåñ-ëîãèêè ïðèëîæåíèÿ; • ìèêðîñåðâèñû äîëæíû ïîääåðæèâàòü âîçìîæíîñòè àâòîìàòèçèðîâàííîãî óïðàâëåíèÿ æèçíåííûì öèêëîì; • ìèêðîñåðâèñíàÿ àðõèòåêòóðà äîëæíà èìåòü ìèíèìóì öåíòðàëèçîâàííûõ ðåñóðñîâ, àð- õèòåêòóðà ìèêðîñåðâèñíîé ñèñòåìû äîëæíà ïîääåðæèâàòü äåöåíòðàëèçîâàííîå óïðàâ- ëåíèå. Îäíàêî ìèêðîñåðâèñíûé ïîäõîä íå ÿâëÿåòñÿ óíèâåðñàëüíûì ðåøåíèåì ïðîáëåìû ñëîæ- íîñòè ÏÎ.  ñëó÷àå ìèêðîñåðâèñíîé àðõèòåêòóðû, ñëîæíîñòü ñîçäàíèÿ è óïðàâëåíèÿ ÏÎ ïåðåêëàäûâàåòñÿ íà èíðàñòðóêòóðó [2℄. Ïî ýòîé ïðè÷èíå âîçíèêàåò íåîáõîäèìîñòü èñ- ïîëüçîâàíèÿ ñïåöèàëüíûõ ñðåäñòâ äëÿ óïðàâëåíèÿ ñëîæíîñòüþ, â òîì ÷èñëå æèçíåííûì öèêëîì ìèêðîñåðâèñîâ (çàïóñê, îñòàíîâêà, ïàóçà è äóáëèðîâàíèå ýêçåìïëÿðà ìèêðîñåðâè- ñà), áàëàíñèðîâêîé íàãðóçêè è íåïðåðûâíîé èíòåãðàöèè ìèêðîñåðâèñíîé ïëàòîðìû [19℄. Òàêîé íàáîð ñåðâèñîâ ìîæåò áûòü ïðåäîñòàâëåí PaaS-îáëàêîì, êîòîðîå ìîæåò âçÿòü íà ñåáÿ óíêöèè ìàñøòàáèðîâàíèÿ ìèêðîñåðâèñíîãî ïðèëîæåíèÿ, ïîääåðæàíèÿ æèçíåííîãî öèêëà, à òàêæå ïðåäîñòàâèòü ïîäñèñòåìó îáìåíà ñîîáùåíèÿìè. Êðîìå òîãî, ìíîãèå PaaS-ðåøåíèÿ èìåþò âñòðîåííûé ìåõàíèçì ìîíèòîðèíãà ñîñòîÿíèÿ îòäåëüíûõ êîìïîíåíòîâ ïðèëîæåíèÿ, à òàêæå ïîòîêà ñîîáùåíèé ìåæäó ýòèìè êîìïîíåíòàìè [17℄. Öåëüþ äàííîãî èññëåäîâàíèÿ ÿâëÿåòñÿ ðàçðàáîòêà ìåòîäîëîãèè òåñòèðîâàíèÿ ìèêðî- ñåðâèñîâ è ðåàëèçàöèÿ ðåøåíèÿ, ïîçâîëÿþùåãî ïðîèçâîäèòü àâòîìàòèçèðîâàííîå òåñòèðî- âàíèå ìèêðîñåðâèñíûõ ñèñòåì. Äëÿ äîñòèæåíèÿ ýòîé öåëè íåîáõîäèìî ðåøèòü ñëåäóþùèå çàäà÷è: 246 Суперкомпьютерные дни в России 2015 // Russian Supercomputing Days 2015 // RussianSCDays.org • ïðîâåñòè îáçîð ñóùåñòâóþùèõ ïîäõîäîâ ê òåñòèðîâàíèþ îáëà÷íûõ, ìóëüòèàãåíòíûõ è äðóãèõ ðàñïðåäåëåííûõ ïðîãðàììíûõ ñèñòåì ñ öåëüþ âûÿâëåíèÿ îñîáåííîñòåé òå- ñòèðîâàíèÿ, õàðàêòåðíûõ äëÿ ìèêðîñåðâèñíîãî ïîäõîäà; • ðàçðàáîòàòü ìåòîäîëîãèþ òåñòèðîâàíèÿ ìèêðîñåðâèñîâ; • ðàçðàáîòàòü ÏÎ, ïðåäîñòàâëÿþùåå ïîääåðæêó òåñòèðîâàíèÿ ìèêðîñåðâèñîâ è ðåàëè- çóþùåå ïðåäëîæåííóþ ìåòîäîëîãèþ. Äàííàÿ ðàáîòà ïîñâÿùåíà îáçîðó ñîâðåìåííûõ ðåøåíèé, êàñàþùèõñÿ òåñòèðîâàíèÿ ðàñïðå- äåëåííûõ ñèñòåì, àíàëèçó èõ ïðèìåíèìîñòè â îáëàñòè ìèêðîñåðâèñîâ. Êðîìå òîãî, áóäóò ðàññìîòðåíû îñíîâíûå îñîáåííîñòè òåñòèðîâàíèÿ ìèêðîñåðâèñíûõ ñèñòåì è ïðåäëîæåí ïîä- õîä ê èõ òåñòèðîâàíèþ. àáîòà ïîñòðîåíà ñëåäóþùèì îáðàçîì: â ÷àñòè 2 ðàññìàòðèâàþòñÿ ñîâðåìåííûå ïîäõîäû ê òåñòèðîâàíèþ ðàñïðåäåëåííûõ âû÷èñëèòåëüíûõ ñèñòåì.  ÷àñòè 3 îïèñàíû îòëè÷èòåëüíûå îñîáåííîñòè òåñòèðîâàíèÿ ìèêðîñåðâèñíûõ âû÷èñëèòåëüíûõ ñè- ñòåì è ïðåäëàãàåòñÿ ìåòîäîëîãèÿ òåñòèðîâàíèÿ òàêèõ ñèñòåì.  ÷àñòè 4 ïðåäëîæåí ïîäõîä ê òåñòèðîâàíèþ ìèêðîñåðâèñîâ íà ïðèìåðå ïëàòîðìû Mjolnirr.  ÷àñòè 5 ïîäâåäåíû ðå- çóëüòàòû ðàáîòû. 2. Îáçîð ñîâðåìåííûõ ïîäõîäîâ ê òåñòèðîâàíèþ ðàñïðåäåëåí- íûõ ñèñòåì 2.1. Ìèêðîñåðâèñíûå ñèñòåìû Ìèêðîñåðâèñíûé ïîäõîä ÿâëÿåòñÿ ñðàâíèòåëüíî íîâûì íàïðàâëåíèåì â ìèðå ðàñïðåäå- ëåííûõ âû÷èñëèòåëüíûõ ñèñòåì, ïîòîìó êîëè÷åñòâî ðàáîò â ýòîé îáëàñòè íå î÷åíü âåëèêî. Îñíîâíàÿ èíîðìàöèÿ î ìèêðîñåðâèñíîì ïîäõîäå èçëîæåíà â ñòàòüå Äæåéìñà Ëüþèñà è Ìàðòèíà Ôàóëåðà [14℄.  ýòîé ñòàòüå îïèñûâàåòñÿ êîíöåïöèÿ ìèêðîñåðâèñà, à òàêæå õàðàê- òåðíûå îñîáåííîñòè ìèêðîñåðâèñíîé àðõèòåêòóðû. Òîáè Êëåìñîí â ñâîåé ñòàòüå [6℄ óäåëÿåò îñîáîå âíèìàíèå âîïðîñàì òåñòèðîâàíèÿ ìèêðîñåðâèñîâ, âêëþ÷àÿ êîìïîíåíòíîå òåñòèðîâà- íèå, èíòåãðàöèîííîå òåñòèðîâàíèå è òåñòèðîâàíèå êîíòðàêòà ìèêðîñåðâèñà. Íèë Ôîðä [7℄ òàêæå ðàññìàòðèâàåò ìèêðîñåðâèñíûå àðõèòåêòóðû, îïèñûâàÿ îñíîâíûå èäåè, êàñàþùèåñÿ èõ ðàçðàáîòêè, ìîíèòîðèíãà è òåñòèðîâàíèÿ. Êðîìå òîãî, íåêîòîðûå êîììåð÷åñêèå êîìïà- íèè óñïåøíî ïåðåøëè íà ìèêðîñåðâèñíóþ àðõèòåêòóðó è îïèñàëè ðåçóëüòàòû òàêîãî ïå- ðåõîäà. Íàïðèìåð, â ñòàòüå [15℄ ðàññêàçûâàåòñÿ î ïåðåõîäå êîìïàíèè Netix íà ìèêðîñåð- âèñíóþ àðõèòåêòóðó è î òîì, ÷åãî ýòî ïîòðåáîâàëî è êàêèå ïëþñû ïðèíåñëî.  ïðåäûäó- ùåé ðàáîòå îïèñûâàåòñÿ ñîçäàíèå ïëàòîðìû ðàñïðåäåëåííûõ âû÷èñëåíèé ïîä íàçâàíèåì Mjolnirr [18℄. Ýòà ñèñòåìà ðàáîòàåò ñ èçîëèðîâàííûìè êîìïîíåíòàìè, ïðåäîñòàâëÿÿ âîç- ìîæíîñòü îáìåíèâàòüñÿ ñîîáùåíèÿìè â ñîîòâåòñòâèè ñ ïàòòåðíîì "èçäàòåëü-ïîäïèñ÷èê". Íà áàçå ýòîé ïëàòîðìû áûëè ðåàëèçîâàíû ìåõàíèçìû àâòîìàòè÷åñêîãî ðàñïðåäåëåíèÿ íàãðóçêè ìåæäó íåçàâèñèìûìè è èçîëèðîâàííûìè ïðîãðàììíûìè êîìïîíåíòàìè è ïëàíè- ðîâàíèÿ èõ ðàçìåùåíèÿ íà äîñòóïíûõ âû÷èñëèòåëüíûõ ðåñóðñàõ. [16℄. Íà äàííûé ìîìåíò çàêîí÷åííûõ êîðîáî÷íûõ ïðîäóêòîâ, îäíîçíà÷íî îðèåíòèðîâàííûõ íà ñîçäàíèå ìèêðîñåð- âèñíûõ ïðèëîæåíèé, âñå åùå íå ðàçðàáîòàíî. Ïëàòîðìà Vamp [4℄, êîòîðàÿ äîëæíà áóäåò ñîîòâåòñòâîâàòü âñåì òðåáîâàíèÿì ê ìèêðîñåðâèñíîé ïëàòîðìå, âûäâèíóòûì Ìàðòèíîì Ôàóëåðîì, íà äàííûé ìîìåíò íàõîäèòñÿ â ñòàäèè àëüà-âåðñèè è ïîääåðæèâàåò òîëüêî JVM-îðèåíòèðîâàííûå ìèêðîñåðâèñû. Ñåðèÿ ñòàíäàðòîâ ISO/IEC 25010 Software Produ t Quality [8℄ è ISO/IEC 29119 Software Testing [9℄ ñëóæàò îòïðàâíîé òî÷êîé ýòîé ðàáîòû. Òåñòèðîâàíèå â îáùåì ñëó÷àå îïðåäåëÿåòñÿ êàê ñîâîêóïíîñòü âåðèèêàöèè è âàëèäàöèè [9℄.  ýòîé ðàáîòå òåñòèðîâàíèå ìèêðîñåðâèñîâ áóäåò ðàññìàòðèâàòüñÿ êàê ïðîöåññ âàëèäàöèè, òàê êàê íåâîçìîæíî ïðèìå- íèòü ìåòîäû ñòàòè÷åñêîãî àíàëèçà êîäà ê óæå ñêîìïèëèðîâàííîìó ìèêðîñåðâèñó â îáùåì ñëó÷àå. 247 Суперкомпьютерные дни в России 2015 // Russian Supercomputing Days 2015 // RussianSCDays.org Êàê óïîìÿíóòî âûøå, ìèêðîñåðâèñû ÿâëÿþòñÿ ïîäìíîæåñòâîì ñåðâèñîâ â ñìûñëå ñåðâèñ- îðèåíòèðîâàííîé àðõèòåêòóðû (SOA). Ñëåäîâàòåëüíî, äëÿ òåñòèðîâàíèÿ ìèêðîñåðâèñîâ âîçìîæíî èñïîëüçîâàòü òå æå ïðèåìû, ÷òî è ïðè òåñòèðîâàíèè SOA-ñåðâèñîâ. Íåêîòîðûå èç ñóùåñòâóþùèõ ïîäõîäîâ èñïîëüçóþò BPEL-ìîäåëü äàííûõ ïðåäìåòíîé îáëàñòè äëÿ òåñòè- ðîâàíèÿ íà îñíîâå îãðàíè÷åíèé [11℄, äðóãèå ïðåäëàãàþò òåñòèðîâàíèå íà îñíîâå êîíöåïöèè áåëîãî ÿùèêà [1℄ äëÿ îïðåäåëåíèÿ òåñòîâîãî ïîêðûòèÿ ñåðâèñà. Äëÿ êà÷åñòâåííîãî òåñòèðîâàíèÿ ñåðâèñà íåîáõîäèìî ðåøèòü, êàêàÿ êà÷åñòâåííàÿ õà- ðàêòåðèñòèêà âàæíà äëÿ òåñòèðóåìîãî ïðîäóêòà.  òåðìèíàõ ñòàíäàðòà ISO/IEC 25011 [10℄ êà÷åñòâî îïðåäåëÿåòñÿ êàê ñòåïåíü, â êîòîðîé ñåðâèñ ìîæåò áûòü èñïîëüçîâàí îïðåäåëåííû- ìè ïîëüçîâàòåëÿìè äëÿ ýåêòèâíîãî è áåçðèñêîâîãî óäîâëåòâîðåíèÿ ñâîèõ ïîòðåáíîñòåé è äëÿ äîñòèæåíèÿ êîíêðåòíûõ öåëåé ñ ó÷åòîì ñîãëàøåíèÿ îá óðîâíå óñëóã (SLA) [9℄. Ñòàíäàðò ISO/IEC 25011 äåêëàðèðóåò 8 êà÷åñòâåííûõ õàðàêòåðèñòèê ñåðâèñà: Ïðèìåíèìîñòü ñåðâè- ñà (Servi e Suitability), Óäîáíîñòü ñåðâèñà (Servi e Usability), Áåçîïàñíîñòü ñåðâèñà (Servi e Se urity), Íàäåæíîñòü ñåðâèñà (Servi e Reliability), Ïîíÿòíîñòü ñåðâèñà (Servi e Tangibility), Îòçûâ÷èâîñòü ñåðâèñà (Servi e Responsiveness), Äîñòóïíîñòü ñåðâèñà (Servi e Adaptability) è Ñîïðîâîæäàåìîñòü ñåðâèñà (Servi e Maintainability). Âñå ýòè êà÷åñòâåííûå õàðàêòåðèñòèêè (êðîìå Ïîíÿòíîñòè ñåðâèñà) ìîãóò áûòü ïðèìåíåíû è ê ìèêðîñåðâèñíûì âû÷èñëèòåëüíûì ñèñòåìàì. Êðîìå òîãî, ýòè êà÷åñòâåííûå õàðàêòåðèñòèêè íå ðåãëàìåíòèðóþò ýåêòèâ- íîñòü ðàáîòû ñåðâèñà ýòà çàäà÷à öåëèêîì ëîæèòñÿ íà ðàçðàáîò÷èêà ñåðâèñà. Îäíàêî ñòà- áèëüíîñòü ñèñòåìû, âðåìÿ îòêëèêà, îòñóòñòâèå ðèñêîâ è ñîîòâåòñòâèå SLA ÿâëÿþòñÿ òåìè àêòîðàìè, êîòîðûå äîëæíû áûòü ïðîòåñòèðîâàíû â ðàìêàõ ìèêðîñåðâèñíîé ñèñòåìû. 2.2. Òåñòèðîâàíèå è ðàñïðåäåëåííûå ñèñòåìû Ìèêðîñåðâèñíûå ñèñòåìû, ìóëüòèàãåíòíûå ñèñòåìû è ñèñòåìû àêòîðîâ ðîäíèò åäè- íàÿ ãëîáàëüíàÿ èäåÿ âî âñåõ òðåõ èñïîëüçóåòñÿ íàáîð óñëîâíî íåçàâèñèìûõ ñóùíîñòåé, ñîâìåñòíî ðàáîòàþùèõ íàä ðåøåíèåì îáùåé çàäà÷è. Ñîîòâåòñòâåííî, ìíîãèå ïîäõîäû ê òåñòèðîâàíèþ òàêèõ ñèñòåì ìîãóò îêàçàòüñÿ ïðèìåíèìû è â ñëó÷àå ìèêðîñåðâèñîâ. Íàïðè- ìåð, ïîäõîä, èñïîëüçóþùèé îíòîëîãèè äëÿ ãåíåðàöèè òåñòîâûõ ñëó÷àåâ, ïðèìåíèì è äëÿ ìèêðîñåðâèñíûõ ñèñòåì [22℄. Ïîäõîä ïðåäïîëàãàåò èñïîëüçîâàíèå îíòîëîãèé äëÿ îïèñàíèÿ âõîäíûõ è âûõîäíûõ äàííûõ êàæäîãî àãåíòà (èëè ìèêðîñåðâèñà), à òàêæå äàëüíåéøåé àâòîìàòè÷åñêîé ãåíåðàöèÿ òåñòîâûõ ñëó÷àåâ, ñîîòâåòñòâóþùèõ âõîäíûõ äàííûì è ïðîâå- ðÿþùèõ âñå ãðàíè÷íûå óñëîâèÿ âõîäíûõ è âûõîäíûõ äàííûõ. Îäíàêî íåêîòîðûå àñïåêòû ðàáîòû ýòèõ ñèñòåì îòëè÷àþòñÿ äðóã îò äðóãà. Íàïðèìåð, â ðàáîòå [23℄ òåñòèðîâàíèå ïðîãðàììû, ðàáîòàþùåé â ñîîòâåòñòâèè ñ àêòîðíûì ïîäõîäîì, çà- êëþ÷àåòñÿ â ìîäåëèðîâàíèè ãðàà âçàèìîäåéñòâèé è ïîðîæäåíèÿ îäíèõ àêòîðîâ äðóãèìè. Òàêîé àíàëèç ìîæåò áûòü ïðîâåäåí òîëüêî äëÿ àêòîðíûõ ñèñòåì è íå ìîæåò èñïîëüçîâàòü- ñÿ ïðè òåñòèðîâàíèè ìèêðîñåðâèñîâ, òàê êàê ìèêðîñåðâèñû ìîãóò áûòü ñîçäàíû òîëüêî ìåíåäæåðîì ðåñóðñîâ, è îäíè ìèêðîñåðâèñû íå ìîãóò ïðîèçâîëüíî ïîðîæäàòü äðóãèå. Òàêèì îáðàçîì, íåêîòîðûå èç ñóùåñòâóþùèõ ñèñòåì òåñòèðîâàíèÿ ìóëüòèàãåíòíûõ è àêòîðíûõ ñèñòåì ìîãóò áûòü èñïîëüçîâàíû äëÿ òåñòèðîâàíèÿ ìèêðîñåðâèñíûõ ñèñòåì, îä- íàêî ìèêðîñåðâèñû êîíñòðóêòèâíî îòëè÷àþòñÿ îò àêòîðîâ è àãåíòîâ, ïîýòîìó òå ñïîñîáû òåñòèðîâàíèÿ òàêèõ ñèñòåì, êîòîðûå ó÷èòûâàþò õàðàêòåðíûå îñîáåííîñòè àãåíòîâ è àêòî- ðîâ (íàïðèìåð, âîçìîæíîñòü ïîðîæäåíèÿ îäíèõ àêòîðîâ äðóãèìè), íåïðèìåíèìû â òåñòè- ðîâàíèè ìèêðîñåðâèñíûõ ñèñòåì. Ñîãëàñíî ñòàíäàðòó ISO/IEC 29119-4, ðàçðàáîòêà è ðåàëèçàöèÿ òåñòîâ è òåñòîâûõ ïðî- öåäóð ïðè ðàçðàáîòêå ÏÎ ñîñòîèò èç 6 øàãîâ îïðåäåëåíèå íàáîðà îñîáåííîñòåé (TD1), âûäåëåíèå òåñòîâûõ óñëîâèé (TD2), âûäåëåíèå òåñòîâîãî ïîêðûòèÿ (TD3), âûäåëåíèå òå- ñòîâûõ ñëó÷àåâ (TD4), ñîçäàíèå íàáîðîâ òåñòîâ (TD5) è îïðåäåëåíèå òåñòîâûõ ïðîöåäóð (TD6) (ñì. ðèñ. 2) [9℄. Äëÿ îïèñàíèÿ ïðîöåññà òåñòèðîâàíèÿ ìèêðîñåðâèñîâ áóäóò ðàññìîò- ðåíû ýòàïû TD2, TD3, TD4, TD5 íà TD6. 248 Суперкомпьютерные дни в России 2015 // Russian Supercomputing Days 2015 // RussianSCDays.org èñ. 2: ISO/IEC/IEEE29119-2 àçðàáîòêà è ðåàëèçàöèÿ òåñòîâ 3. Ìåòîäîëîãèÿ òåñòèðîâàíèÿ ìèêðîñåðâèñîâ  ýòîé ñòàòüå ìèêðîñåðâèñ ðàññìàòðèâàåòñÿ êàê ñåðâèñ-îðèåíòèðîâàííóþ ñóùíîñòü, êîòîðàÿ îòâå÷àåò ñëåäóþùèì òðåáîâàíèÿì: • Èçîëèðîâàííîñòü ìèêðîñåðâèñ èçîëèðîâàí â ðàìêàõ îïðåäåëåííîãî êîíòåéíåðà êàê îò äðóãèõ ìèêðîñåðâèñîâ, òàê è îò àïïàðàòíîé ïëàòîðìû; • Àâòîíîìíîñòü ìèêðîñåðâèñ ìîæåò áûòü ðàçâåðíóò, óíè÷òîæåí, ïåðåìåùåí èëè äóá- ëèðîâàí íåçàâèñèìî îò äðóãèõ ìèêðîñåðâèñîâ (ñëåäîâàòåëüíî, ìèêðîñåðâèñû íå ìîãóò íåïîñðåäñòâåííî ññûëàòüñÿ íà ëîêàëüíûå ðåñóðñû ñèñòåìû, íà êîòîðîé ðàçâåðíóòû); • Ìèêðîñåðâèñ äîëæåí ïðåäîñòàâëÿòü îòêðûòûé è ñòàíäàðòèçîâàííûé èíòåðåéñ âçà- èìîäåéñòâèÿ äëÿ âñåõ âàðèàíòîâ èñïîëüçîâàíèÿ (êàê ïðîãðàììíûé èíòåðåéñ òàê, âîçìîæíî, è ãðàè÷åñêèé ïîëüçîâàòåëüñêèé èíòåðåéñ); • Ìèêðîñåðâèñû ìåëüêîìîäóëüíû, òî åñòü êàæäûé ìèêðîñåðâèñ íåñåò ïîëíóþ îòâåò- ñòâåííîñòü çà ñâîþ ÷àñòü ïðîáëåìíîé îáëàñòè îáùåãî ïðèëîæåíèÿ. àññìîòðèì îñíîâíûå øàãè òåñòèðîâàíèÿ, õàðàêòåðíûå êàê äëÿ ÏÎ â öåëîì, òàê è äëÿ ìèêðîñåðâèñíûõ ñèñòåì, è îïðåäåëèì òå èç íèõ, êîòîðûå èìåþò îñîáåííîñòè â ðàìêàõ ìèê- ðîñåðâèñíîé àðõèòåêòóðû. Ïîä êîìïîíåíòíûì òåñòèðîâàíèåì áóäåì ïîíèìàòü òåñòèðîâàíèå îòäåëüíîãî ìèêðîñåðâèñà, ïîä èíòåãðàöèîííûì òåñòèðîâàíèåì òåñòèðîâàíèå âçàèìîäåé- ñòâèÿ ìåæäó îòäåëüíûìè ìèêðîñåðâèñàìè, ïîä ñèñòåìíûì òåñòèðîâàíèåì òåñòèðîâàíèå óíêöèîíèðîâàíèÿ ñèñòåìû â öåëîì (ñì. òàáëèöó 1). 3.1. Êîìïîíåíòíîå òåñòèðîâàíèå ìèêðîñåðâèñîâ Ôóíêöèîíàëüíîå êîìïîíåíòíîå òåñòèðîâàíèå ÿâëÿåòñÿ ïðîâåðêîé îòäåëüíîãî ìèêðî- ñåðâèñà íà ñîîòâåòñòâèå óíêöèîíàëüíûì òðåáîâàíèÿì. Êàæäûé ìèêðîñåðâèñ èìååò íàáîð óíêöèîíàëüíûõ òðåáîâàíèé. Äëÿ òîãî, ÷òîáû ïðîèçâåñòè êîìïîíåíòíîå òåñòèðîâàíèå îò- äåëüíîãî ìèêðîñåðâèñà, ñîâåðøåííî íå îáÿçàòåëüíî çàãðóæàòü åãî â îáëà÷íîå îêðóæåíèå ýòîò òèï òåñòèðîâàíèÿ èìååò äåëî ñ ìèêðîñåðâèñîì êàê ñ èçîëèðîâàííûì êîìïîíåíòîì. àçðàáîòêà ÏÎ â ñîîòâåòñòâèè ñ ìèêðîñåðâèñíûì ïîäõîäîì ýòî ïðîöåññ ðàçðàáîòêè ñèñòåìû êàê íàáîðà íåçàâèñèìûõ ìèêðîñåðâèñîâ, âçàèìîäåéñòâóþùèõ òîëüêî ïóòåì ïåðå- äà÷è ñîîáùåíèé. Ñëåäîâàòåëüíî, êàæäûé ìèêðîñåðâèñ ïðåäñòàâëÿåò ñîáîé íåçàâèñèìûé ïðîãðàììíûé ïðîäóêò, êîòîðûé äîëæåí áûòü ðàçðàáîòàí è ïðîòåñòèðîâàí íåçàâèñèìî îò âñåõ îñòàëüíûõ ìèêðîñåðâèñîâ. Ôóíêöèîíàëüíîå êîìïîíåíòíîå òåñòèðîâàíèå ìèêðîñåðâèñà ìîæåò áûòü ðàçäåëåíà íà äâà ýòàïà: • ñòàíäàðòíîå þíèò-òåñòèðîâàíèå êëàññîâ, âõîäÿùèõ â ìèêðîñåðâèñ (áàçîâûé óðîâåíü); 249 Суперкомпьютерные дни в России 2015 // Russian Supercomputing Days 2015 // RussianSCDays.org Òàáëèöà 1: Òèïû òåñòèðîâàíèÿ, èìåþùèå îñîáåííîñòè ðåàëèçàöèè â ðàìêàõ ìèêðîñåðâèñíîé àðõèòåêòóðû Êîìïîíåíòíîå Èíòåãðàöèîííîå Ñèñòåìíîå Ôóíêöèîíàëüíîå + + - Íàãðóçî÷íîå + + - Áåçîïàñíîñòè + + - òèï òåñòèðîâàíèÿ íå èìååò îñîáåííîñòåé â òåðìèíàõ ìèêðîñåðâèñîâ + òèï òåñòèðîâàíèÿ èìååò îñîáåííîñòè â òåðìèíàõ ìèêðîñåðâèñîâ • ñàìîòåñòèðîâàíèå ìèêðîñåðâèñà, òî åñòü ïðîâåðêà ìèêðîñåðâèñîì ñâîåãî ñîáñòâåííîãî èíòåðåéñà. èñ. 3: Îáùàÿ ñòðóêòóðà ìèêðîñåðâèñà Ìèêðîñåðâèñ ÿâëÿåòñÿ äîñòàòî÷íî ñëîæíîé ñóùíîñòüþ, ñîñòîÿùåé èç íåñêîëüêèõ êîì- ïîíåíòîâ (íàïðèìåð, ëîêàëüíîãî õðàíèëèùà, âåá-ñåðâåðà è ò. ä.), óïàêîâàííîé â êîíòåéíåð (ñì. ðèñ. 3), è äàæå èíòåãðàöèÿ êîðîáî÷íîãî ÏÎ â âèðòóàëüíûé êîíòåéíåð äîëæíà ñî- ïðîâîæäàòüñÿ äîïîëíèòåëüíî ïðîâåðêîé òîãî, íàñêîëüêî êîððåêòíî ðàáîòàåò ïîëó÷åííûé ìèêðîñåðâèñ. Ïîñëå ýòîãî íåîáõîäèìî ïðîâåðèòü èíòåðåéñ ñîáðàííîãî ìèêðîñåðâèñà íà ñîîòâåòñòâèå îðìàëüíûì òðåáîâàíèÿì ê ýòîìó ìèêðîñåðâèñó. Íà ýòîì ýòàïå ìèêðîñåðâèñ ñàìîñòîÿòåëüíî òåñòèðóåò ñîáñòâåííûé âíåøíèé èíòåðåéñ. Ôóíêöèîíàëüíîå òåñòèðîâàíèå äîëæíî ïðîâîäèòüñÿ àâòîìàòè÷åñêè ïðè êàæäîì èçìåíåíèè êîíèãóðàöèè ìèêðîñåðâèñà. Íàãðóçî÷íîå êîìïîíåíòíîå òåñòèðîâàíèå íàïðàâëåíî íà ïðîâåðêó ðàáîòîñïîñîáíîñòè îòäåëüíîãî ìèêðîñåðâèñà ïðè îïðåäåëåííîé íàãðóçêå. Òàêàÿ ïðîâåðêà òàêæå ìîæåò îñó- ùåñòâëÿòüñÿ àâòîìàòè÷åñêè äëÿ êàæäîãî ìèêðîñåðâèñà â îòäåëüíîñòè. Íàãðóçî÷íîå òåñòè- ðîâàíèå ìèêðîñåðâèñà ïîçâîëÿåò íå òîëüêî îòâåòèòü íà âîïðîñ, ïðè êàêîé íàãðóçêå ïðî- èçîéäåò îòêàç ìèêðîñåðâèñà, íî è âûÿâèòü íåîáõîäèìîå êîëè÷åñòâî ðåñóðñîâ äëÿ ðàáîòû ìèêðîñåðâèñà. Êîìïîíåíòíîå òåñòèðîâàíèå áåçîïàñíîñòè íàïðàâëåíî íà òåñòèðîâàíèå áåçîïàñíîñòè è èçîëèðîâàííîñòè îòäåëüíîãî ìèêðîñåðâèñà. Êàê è â ñëó÷àå ñ óíêöèîíàëüíûì òåñòèðîâà- íèåì, áåçîïàñíîñòü ìèêðîñåðâèñà íå çàêàí÷èâàåòñÿ íà áåçîïàñíîñòè îòäåëüíûõ åãî êëàññîâ 250 Суперкомпьютерные дни в России 2015 // Russian Supercomputing Days 2015 // RussianSCDays.org òåñòèðóåòñÿ áåçîïàñíîñòü âñåãî ìèêðîñåðâèñà â êîìïëåêñå (íàïðèìåð, íà ïðåäìåò òèïè÷- íûõ óÿçâèìîñòåé âåá-ñåðâåðîâ, èíúåêöèé è ò.ä.). Ýòîò ýòàï òåñòèðîâàíèÿ ïðîèçâîäèòñÿ áåç ó÷àñòèÿ ïðèêëàäíîãî ïðîãðàììèñòà. 3.2. Èíòåãðàöèîííîå òåñòèðîâàíèå ìèêðîñåðâèñîâ Èíòåãðàöèîííîå òåñòèðîâàíèå ìèêðîñåðâèñíîé ñèñòåìû âêëþ÷àåò â ñåáÿ òåñòèðîâàíèå âñåõ êîììóíèêàöèé ìåæäó ìèêðîñåðâèñàìè, òî åñòü òåñòèðîâàíèå ïðîòîêîëîâ êîììóíè- êàöèè, îðìàòîâ îáìåíà, ðàçðåøåíèÿ âçàèìíûõ áëîêèðîâîê, èñïîëüçîâàíèÿ ðàçäåëÿåìûõ ðåñóðñîâ è ïîñëåäîâàòåëüíîñòè ïåðåäà÷è ñîîáùåíèé. Äëÿ ðåàëèçàöèè âñåõ ïåðå÷èñëåííûõ âîçìîæíîñòåé íàì íåîáõîäèìî îòñëåæèâàòü âñå ñîîáùåíèÿ, ïåðåäàþùèåñÿ îò ìèêðîñåðâèñà ê ìèêðîñåðâèñó, è õðàíèòü ïóòè èõ ïåðåäà÷è, à òàêæå çíàòü âñåõ âîçìîæíûõ ïîëó÷àòå- ëåé òîãî èëè èíîãî ñîîáùåíèÿ. Ýòà èíîðìàöèÿ äîëæíà áûòü ïðåäñòàâëåíà â êîíòðàêòå ìèêðîñåðâèñà. Ôóíêöèîíàëüíîå èíòåãðàöèîííîå òåñòèðîâàíèå íàïðàâëåíà íà ïðîâåðêó êîððåêòíîñòè îòïðàâêè è ïîëó÷åíèÿ ñîîáùåíèé îòäåëüíûì ìèêðîñåðâèñîì, ïîñëåäîâàòåëüíîñòè âçàèìî- äåéñòâèÿ, à òàêæå îðêåñòðàöèè ìèêðîñåðâèñîâ. Çíàÿ ïîñëåäîâàòåëüíîñòü âçàèìîäåéñòâèÿ, ìû ìîæåì ãåíåðèðîâàòü òåñòîâûå ñëó÷àè àâòîìàòè÷åñêè, íî ýòà èíîðìàöèÿ äîëæíà áûòü ïðåäîñòàâëåíà ðàçðàáîò÷èêîì ìèêðîñåðâèñà. Èñïîëüçóÿ ýòó èíîðìàöèþ, ìû ìîæåì çàðà- íåå ïîñòðîèòü ãðà âçàèìîäåéñòâèÿ è òåñòèðîâàòü ñèñòåìó ñ åãî ïîìîùüþ. Íàãðóçî÷íîå èíòåãðàöèîííîå òåñòèðîâàíèå íàïðàâëåíî íà ïðîâåðêó êîððåêòíîñòè ðà- áîòû ìèêðîñåðâèñîâ â óñëîâèÿõ àâòîìàòè÷åñêîãî ðàçâåðòûâàíèÿ, äóáëèðîâàíèÿ è ïåðåíîñà èõ, à òàêæå îðêåñòðàöèÿ è õîðåîãðàèÿ ìèêðîñåðâèñîâ. Èíòåãðàöèîííîå òåñòèðîâàíèå áåçîïàñíîñòè íàïðàâëåíî íà òåñòèðîâàíèå áåçîïàñíîñòè êîììóíèêàöèé ìåæäó ìèêðîñåðâèñàìè, à òàêæå ïðîâåðêó íà âîçìîæíîñòü ïåðåõâàòà ñî- îáùåíèé èçâíå èëè âíóòðè ñèñòåìû êåì-ëèáî, ïîìèìî ïîëó÷àòåëÿ ñîîáùåíèÿ. Ìèêðîñåð- âèñíàÿ ñïåöèèêà ýòîãî óðîâíÿ òåñòèðîâàíèÿ òî÷íî òàêæå äîëæíà ó÷èòûâàòü îñîáåííîñòè ñðåäû, â êîòîðîé ðàáîòàþò ìèêðîñåðâèñû. 3.3. Îáùàÿ ìåòîäîëîãèÿ òåñòèðîâàíèÿ ìèêðîñåðâèñíûõ ñèñòåì Èñïîëüçóÿ ïîëó÷åííûå äàííûå, âîçìîæíî ïðåäëîæèòü ìåòîäîëîãèþ òåñòèðîâàíèÿ ìèê- ðîñåðâèñíîé ñèñòåìû, ïîçâîëÿþùåé ãàðàíòèðîâàòü ñòàáèëüíîñòü ñèñòåìû ïðè ëþáîì èçìå- íåíèè â îòäåëüíîì ìèêðîñåðâèñå (ñì. ðèñ. 4). Ïîñëå òîãî, êàê çàâåðøàåòñÿ êîäèðîâàíèå ìèêðîñåðâèñà, åãî èñõîäíûå êîäû äîëæíû áûòü ïîäâåðãíóòû þíèò-òåñòèðîâàíèþ äëÿ òîãî, ÷òîáû óáåäèòüñÿ â ñîîòâåòñòâèè íàïèñàí- íîãî êîäà óíêöèîíàëüíûì òðåáîâàíèÿì ê ðàçðàáàòûâàåìîìó ìèêðîñåðâèñó. Åñëè þíèò- òåñòèðîâàíèå ïðîøëî óñïåøíî, òî ìèêðîñåðâèñ óïàêîâûâàåòñÿ â êîíòåéíåð, ïîñëå ÷åãî âûïîëíÿåòñÿ ñàìîòåñòèðîâàíèå ñêîìïèëèðîâàííîãî ìèêðîñåðâèñà. Åñëè ñàìîòåñòèðîâàíèå ïðîøëî óñïåøíî, òî ïðîèçâîäèòñÿ íàãðóçî÷íîå þíèò-òåñòèðîâàíèå è êîìïîíåíòíîå òåñòè- ðîâàíèå áåçîïàñíîñòè. Ýòè äâà ýòàïà ìîãóò âûïîëíÿòüñÿ îäíîâðåìåííî. Åñëè îíè âûïîë- íÿþòñÿ óñïåøíî, òî ìèêðîñåðâèñ ðàçâîðà÷èâàåòñÿ â òåñòîâîì îêðóæåíèè, ãäå ïðîèçâîäÿòñÿ óíêöèîíàëüíîå èíòåãðàöèîííîå òåñòèðîâàíèå, èíòåãðàöèîííîå íàãðóçî÷íîå òåñòèðîâàíèå è èíòåãðàöèîííîå òåñòèðîâàíèå áåçîïàñíîñòè. Åñëè ýòîò ýòàï ïðîõîäèò óñïåøíî, òî ìèêðî- ñåðâèñ ðàçâîðà÷èâàåòñÿ â ðàáî÷åì îêðóæåíèè, ãäå ïðîèñõîäèò íåïðåðûâíîå òåñòèðîâàíèå ñòàáèëüíîñòè â ñîîòâåòñòâèè ñ ìåòîäîëîãèåé íàìåðåííîãî ïðîâîöèðîâàíèÿ ñëó÷àéíûõ ñáîåâ ðàáîòû ñèñòåìû (ðåàëèçóåìîãî, íàïðèìåð, ñåðâèñîì Chaos Monkey [5℄). 4. Òåñòèðîâàíèå ìèêðîñåðâèñîâ â ïëàòîðìå Mjolnirr  ñòàòüÿõ [16, 18℄ áûëà îïèñàíà ðàçðàáîòêà ïðîòîòèïà ìèêðîñåðâèñíîé ïëàòîðìû Mjolnirr. Ýòà ïëàòîðìà ïîääåðæèâàåò ìèêðîñåðâèñû, ðàçðàáîòàííûå íà áàçå JVM. Èí- 251 Суперкомпьютерные дни в России 2015 // Russian Supercomputing Days 2015 // RussianSCDays.org èñ. 4: Ìåòîäîëîãèÿ òåñòèðîâàíèÿ ìèêðîñåðâèñíîé ñèñòåìû òåãðàöèÿ ñ Mjolnirr áóäåò ïåðâûì øàãîì ðåàëèçàöèè ñèñòåìû äëÿ òåñòèðîâàíèÿ ìèêðîñåð- âèñîâ. Íà ýòîì ýòàïå áóäóò èñïîëüçîâàòüñÿ ñòàíäàðòíûå èíñòðóìåíòû òåñòèðîâàíèÿ äëÿ ïëàòîðìû Java (íàïðèìåð, jUnit äëÿ þíèò-òåñòèðîâàíèÿ). Îïèøåì òî, êàê äîëæåí áûòü ðåàëèçîâàíà òàêàÿ ñèñòåìà, îñíîâûâàÿñü íà ìåòîäîëîãèè, ïðåäëîæåííîé â ðàçäåëå 3. Îïè- ñàíèå áóäåì ñòðîèòü â ñîîòâåòñòâèè ñ øàãàìè ðàçðàáîòêè è ðåàëèçàöèè òåñòîâ è òåñòîâûõ ïðîöåäóð, ðåãëàìåíòèðîâàííûìè ñòàíäàðòîì ISO/IEC 29119-4 (ñì. ðàçäåë 2). TD2 (Âûäåëåíèå òåñòîâûõ óñëîâèé) îïèñûâàåò òî, êàêèå àñïåêòû ìèêðîñåðâèñîâ ïîä- ëåæèò òåñòèðîâàíèþ.  ñëó÷àå ïëàòîðìû Mjolnirr îòäåëüíûå ìèêðîñåðâèñû è îáðàùåíèÿ ê íèì ìîãóò ðàññìàòðèâàòüñÿ êàê òåñòîâûå ñëó÷àè. Êàê ñêàçàíî â ãëàâå 3, êàæäûé ìèêðî- ñåðâèñ ÿâëÿåòñÿ èçîëèðîâàííîé è íåçàâèñèìîé ñóùíîñòüþ, è, ñëåäîâàòåëüíî, åãî òåñòèðî- âàíèå ìîæåò áûòü ïðîâåäåíî â îòäåëüíîé JVM. Ìèêðîñåðâèñû îáìåíèâàþòñÿ èíîðìàöèåé ïðè ïîìîùè ñîîáùåíèé, ñëåäîâàòåëüíî, ìû ìîæåì âûäåëèòü ñëåäóþùèå óñëîâèÿ ðàáîòû ìèêðîñåðâèñíîé ñèñòåìû: ïîëíàÿ èçîëÿöèÿ íà êîìïîíåíòíîì óðîâíå, îáìåí ñîîáùåíèÿìè è èíêàïñóëÿöèÿ ëîãèêè. TD3 (Âûäåëåíèå òåñòîâîãî ïîêðûòèÿ) îïèñûâàåò àòðèáóòû, âûäåëåííûå èç óñëîâèé òåñòèðîâàíèÿ. Òåñòîâûìè óñëîâèÿìè ÿâëÿþòñÿ ìèêðîñåðâèñû è ñîîáùåíèÿ ìåæäó íèìè, ñëåäîâàòåëüíî, ýëåìåíòàìè òåñòîâîãî ïîêðûòèÿ áóäóò ìåòîäû è ñîîáùåíèÿ. Êàæäûé ìå- òîä ìèêðîñåðâèñà è êàæäûé êàíàë êîììóíèêàöèè ñ äðóãèìè ìèêðîñåðâèñàìè äîëæåí áûòü ïîêðûò òåñòàìè, ñãåíåðèðîâàííûìè àâòîìàòè÷åñêè ëèáî íàïèñàííûìè ðàçðàáîò÷èêîì ïðè- ëîæåíèÿ. TD4 (Âûäåëåíèå òåñòîâûõ ñëó÷àåâ) îïèñûâàåò ïðîöåññ ãåíåðàöèè òåñòîâûõ ñëó÷àåâ. Èñõîäÿ èç âûáðàííûõ õàðàêòåðèñòèê êà÷åñòâà è ñòàíäàðòà ISO/IEC 29119-4, ìîæíî ðå- øèòü, êàêèå ñïîñîáû ðàçðàáîòêè òåñòîâ ìû äîëæíû èñïîëüçîâàòü. Äëÿ òåñòèðîâàíèÿ íà êîìïîíåíòíîì óðîâíå âîçìîæíî èñïîëüçîâàòü òîëüêî ìåòîäû, îñíîâàííûå íà ñïåöèèêàöèè ìèêðîñåðâèñà (íàïðèìåð, àíàëèç ãðàíè÷íûõ çíà÷åíèé, ýêâèâàëåíòíîå ðàçáèåíèå, òåñòèðî- 252 Суперкомпьютерные дни в России 2015 // Russian Supercomputing Days 2015 // RussianSCDays.org âàíèå íà îñíîâå âàðèàíòîâ èñïîëüçîâàíèÿ è ò. ä.). Êðîìå òîãî, íà êîìïîíåíòíîì óðîâíå âîçìîæíî àíàëèçèðîâàòü ìèêðîñåðâèñ íà ïðåäìåò òèïè÷íûõ óÿçâèìîñòåé íà îñíîâå çíàíèé îá èñïîëüçóåìîì ÏÎ. TD6 (Îïðåäåëåíèå òåñòîâûõ ïðîöåäóð) îïèñûâàåò ïðîöåäóðû ïðîâåäåíèÿ òåñòèðîâà- íèÿ.  ñëó÷àå Mjolnirr èñïîëüçóþòñÿ êàê àâòîìàòè÷åñêèå, òàê è íàïèñàííûå âðó÷íóþ òå- ñòîâûå ñëó÷àè, ñëåäîâàòåëüíî, íåîáõîäèìî ïîêðûòü âñå ýëåìåíòû ïîêðûòèÿ ìèêðîñåðâèñà. Òåñòîâûå ñëó÷àè ìîãóò ìîäèèöèðîâàòü ñîñòîÿíèå ìèêðîñåðâèñà è åãî îêðóæåíèå, ñëåäî- âàòåëüíî, òåñòèðîâàíèå ìèêðîñåðâèñà äîëæíî ïðîèñõîäèòü â èçîëèðîâàííîì îêðóæåíèè, ñîñòîÿíèå êîòîðîãî ëåãêî ìîæíî âåðíóòü ê ïåðâîíà÷àëüíîìó. Êàê ïîêàçàíî íà ðèñóíêå 5, èñ. 5: àçìåùåíèå êîìïîíåíòîâ ñèñòåìû òåñòèðîâàíèÿ íà ïëàòîðìå Mjolnirr Mjolnirr èìååò 3 âàðèàíòà îêðóæåíèÿ ñïåöèàëüíûé èçîëèðîâàííûé êîíòåéíåð äëÿ òåñòè- ðîâàíèÿ íà êîìïîíåíòíîì óðîâíå, òåñòîâîå îêðóæåíèå äëÿ òåñòèðîâàíèÿ íà èíòåãðàöèîííîì óðîâíå è ðàáî÷åå îêðóæåíèå äëÿ êîíå÷íûõ ïîëüçîâàòåëåé. Òåñòîâîå è ðàáî÷åå îêðóæåíèÿ èìåþò âñòðîåííûé ñåðâèñ Chaos Monkey [5℄ äëÿ ïîñòîÿííîé ïðîâåðêè ñòàáèëüíîñòè ñèñòå- ìû. Êàæäûé ìèêðîñåðâèñ äîëæåí ïîñëåäîâàòåëüíî ïðîõîäèòü ÷åðåç ýòè 3 òèïà îêðóæåíèé ïåðåä òåì, êàê áûòü ðàçâåðíóòûì â ðàáî÷åì îêðóæåíèè. Äëÿ òîãî, ÷òîáû èñïîëüçîâàòü âûøåïåðå÷èñëåííûå òåõíèêè, íåîáõîäèìî èìåòü äåòàëü- íîå îïèñàíèå èíòåðåéñà ìèêðîñåðâèñà, âêëþ÷àÿ åãî âõîäíûå è âûõîäíûå äàííûå, èõ îãðà- íè÷åíèÿ è ñèíòàêñèñ. Èñïîëüçóÿ ýòó èíîðìàöèþ, ìû ìîæåì ïðîèçâîäèòü òåñòèðîâàíèå êàæäîãî ìèêðîñåðâèñà ïî ìåòîäó ÷åðíîãî ÿùèêà â äîïîëíåíèå ê þíèò-òåñòàì, íàïèñàííûì ðàçðàáîò÷èêîì. Ïðèìåð èíòåðåéñà ìèêðîñåðâèñà ïðåäñòàâëåí íà ðèñóíêå 6.  ñëó÷àå èíòåãðàöèîííîãî òåñòèðîâàíèÿ èçâåñòíà âíóòðåííÿÿ ñòðóêòóðà òåñòèðóåìîé ñèñòåìû. Ñëåäîâàòåëüíî, â äîïîëíåíèå â âûøåîïèñàííûì òåõíèêàì íàïèñàíèÿ òåñòîâ, âîç- ìîæíî èñïîëüçîâàòü ñòðóêòóðíûå òåõíèêè, íàïðèìåð, òåñòèðîâàíèå ïî ïîòîêó äàííûõ è ò.ä. Êàê ïîêàçàíî íà ðèñóíêå, èíòåðåéñ ìèêðîñåðâèñà òàêæå îïèñûâàåò îðìàò âõîäíûõ è âûõîäíûõ ñîîáùåíèé, ñëåäîâàòåëüíî, ñèñòåìà ìîæåò ïîñòðîèòü ãðà, âåðøèíàìè êîòî- ðîãî áóäóò ÿâëÿòüñÿ ìèêðîñåðâèñû, à ðåáðàìè ïóòè ïåðåäà÷è ñîîáùåíèé ìåæäó äâóìÿ îòäåëüíûìè ìèêðîñåðâèñàìè, è òåñòèðîâàòü ñèñòåìó â ñîîòâåòñòâèè ñ ïîñòðîåííûì ãðà- îì. Òåñòèðîâàíèå íà èíòåãðàöèîííîì óðîâíå íå ìîæåò áûòü ðåàëèçîâàí íà óðîâíå êîíòåéíå- ðà, ïîýòîìó â ïëàòîðìå Mjolnirr ýòà çàäà÷à ðåøàåòñÿ íà óðîâíå âñåé ïëàòîðìû ìîäóëåì Proxy. Proxy õðàíèò ãðà âûçîâîâ è ñðàâíèâàåò åãî ñ ãðàîì, ïîñòðîåííûì íà îñíîâå èíòåð- åéñîâ ìèêðîñåðâèñîâ. Êðîìå òîãî, Proxy ìîæåò èñïîëüçîâàòü ðàçëè÷íûå äîïîëíèòåëüíûå òåõíèêè èíòåãðàöèîííîãî òåñòèðîâàíèÿ íàïðèìåð, Chaos Monkey è äîñòàâêó ñëó÷àéíîãî ñîîáùåíèÿ ñëó÷àéíîìó ïîëó÷àòåëþ. 253 Суперкомпьютерные дни в России 2015 // Russian Supercomputing Days 2015 // RussianSCDays.org èñ. 6: Èíòåðåéñ ìèêðîñåðâèñà 5. Çàêëþ÷åíèå  ýòîé ñòàòüå áûëè îïèñàíû îñîáåííîñòè òåñòèðîâàíèÿ ìèêðîñåðâèñîâ è òåõíèêè, ïðè- ìåíèìûå äëÿ ðåøåíèÿ ýòîé çàäà÷è. Áûëà ïðåäñòàâëåíà ìåòîäîëîãèÿ òåñòèðîâàíèÿ ìèêðî- ñåðâèñíûõ ïëàòîðì, ðàçðàáîòàííàÿ íà îñíîâå ñåðèè ñòàíäàðòîâ ISO/IEC 25010. Äàííàÿ ìåòîäîëîãèÿ ïîêðûâàåò ïðîöåññ ðàçðàáîòêè ìèêðîñåðâèñíîé ñèñòåìû, íà÷èíàÿ ñ êîäèðîâà- íèÿ îòäåëüíîãî ìèêðîñåðâèñà è çàêàí÷èâàÿ íåïðåðûâíûì òåñòèðîâàíèåì ñòàáèëüíîñòè ðà- áî÷åãî îêðóæåíèÿ. Íà îñíîâå ðàçðàáîòàííîé ìåòîäîëîãèè íàìè áûëî ïðåäëîæåíî ðåøåíèå, îáåñïå÷èâàþùåå òåñòèðîâàíèå ìèêðîñåðâèñíûõ ñèñòåì, ðàçâåðíóòûõ íà áàçå ïëàòîðìû Mjolnirr. Äàëüíåéøèì íàïðàâëåíèåì ðàçâèòèÿ äàííîãî ïðîåêòà áóäåò ÿâëÿòüñÿ ïðîåêòèðîâàíèå è ðåàëèçàöèÿ ïðîãðàììíûõ êîìïîíåíòîâ, îáåñïå÷èâàþùèõ ïîääåðæêó ïðåäëîæåííîé ìåòîäî- ëîãèè òåñòèðîâàíèÿ ìèêðîñåðâèñíûõ ñèñòåì â âèäå àâòîìàòèçèðîâàííûõ ñåðâèñîâ. Äàííûå ñåðâèñû îáåñïå÷àò ïðîöåññ àâòîìàòèçèðîâàííîãî òåñòèðîâàíèÿ ðàçðàáàòûâàåìûõ ìèêðîñåð- âèñîâ è ïîääåðæêó íåïðåðûâíîé èíòåãðàöèè ìèêðîñåðâèñíûõ ñèñòåì. Ëèòåðàòóðà 1. Bartolini C., Bertolino A., Elbaum S., Mar hetti E. Whitening SOA testing Pro eedings of the the 7th joint meeting of the European software engineering onferen e and the ACM SIGSOFT symposium on The foundations of software engineering. 161170. 2. Brooks F.P. No Silver Bullet. Essen e and a idents of software engineering IEEE omputer 20(4); 1987: 10-19. 3. Cal hado P. Building Produ ts at SoundCloudPart III: Mi roservi es in S ala and Finagle [Online℄ Available at: https:developers.sound loud. omblogbuilding-produ ts-at- sound loud-part-3-mi roservi es-in-s ala-and-nagle [a essed 01.05.2015℄. 4. VAMP [Online℄ Available at: https:github. ommagneti iovamp [a essed 12.06.2015℄ 5. Chaos Monkey [Online℄ Available at: https:github. omNetixSimianArmywikiChaos-Monkey [a essed 12.01.2015℄ 254 Суперкомпьютерные дни в России 2015 // Russian Supercomputing Days 2015 // RussianSCDays.org 6. Clemson, T. Testing Strategies in a Mi roservi e Ar hite ture. 2014. [Online℄ Available at: http:martinfowler. omarti lesmi roservi e-testing [A essed 10.01.2015℄. 7. Ford N. Building Mi roservi e Ar hite tures. [Online℄ Available from: http:nealford. omdownloadsBuilding_mi roservi e_Ar hite tures(Neal_Ford).pdf [a essed 13.02.2015℄ 8. International Organization for Standardization (2014) 25010. Servi e Quality Requirements and Evaluation (SquaRE) System and software Quality Model, 2014, Canada. 9. International Organization for Standardization (2014) 29119. Software Testing, 2014, Canada. 10. International Organization for Standardization (2015) 25011. Servi e Quality Requirements and Evaluation (SquaRE) Servi e Quality Model, 2015, China. 11. Jehan S., Pill I., Wotawa F. Fun tional SOA Testing Based on Constraints. Pro eedings of the 8th International Workshop on Automation of Software Test. 3339. 12. Jones S. Mi roservi es is SOA, for those who know what SOA is, 2014. [Online℄. Available at: http:servi e-ar hite ture.blogspot.ru201403mi roservi es-is-soa-for-those-who-know.html. [A essed: 17.11.2014℄. 13. Kant N., Tonse T. Karyon: The nu leus of a Composable Web Servi e. [Online℄ Available at: http:te hblog.netix. om201303karyon-nu leus-of- omposable-web-servi e.html [a essed 17.11.2014℄. 14. Lewis J., Fowler M. Mi roservi es. [Online℄ Available at: http:martinfowler. omarti lesmi roservi es.html [a essed 17.11.2014℄. 15. Prana: A Side ar for your Netix PaaS based Appli ations and Servi es. [Online℄ Available from: http:te hblog.netix. om201411prana-side ar-for-your-netix-paas.html [a essed 13.02.2015℄ 16. Rad henko G., Mikhailov P., Sav henko D., Shamakina A., Sokolinsky L. Component-based development of loud appli ations: a ase study of the Mjolnirr platform. Pro eedings of the 10th Central and Eastern European Software Engineering Conferen e in Russia (CEE-SECR '14). Arti le 6, 10 pages. 17. Rhoton J, Haukioja R. Cloud omputing ar hite ted. [Tunbridge Wells, Kent℄: Re ursive Press; 2011. 18. Sav henko D., Rad henko G. Mjolnirr: A Hybrid Approa h to Distributed Computing Ar hite ture and Implementation CLOSER 2014. Pro eedings of the 4th International Conferen e on Cloud Computing and Servi es S ien e (Bar elona, Spain 3-5 April, 2014), 2014. P. 445-450. 19. Thones J. Mi roservi es. Software, IEEE, Volume 24 Issue 3, 2015. P. 116-116. 20. Tonse S. Mi roservi es at Netix. [Online℄ Available from: http:www.slideshare.netstonsemi roservi es-at-netix [a essed 6.02.2015℄. 21. Varia J. Cloud ar hite tures. White Paper of Amazon Web Servi es, 2008. [Online℄ Available at: https:media.amazonwebservi es. omAWS_Cloud_Ar hite tures.pdf [a essed 17.11.2014℄. 255 Суперкомпьютерные дни в России 2015 // Russian Supercomputing Days 2015 // RussianSCDays.org 22. Nguyen C.D., Perini A., Tonella P. Ontology-based Test Generation for MultiAgent Systems (Short Paper) Pro eedings of the 7th international joint onferen e on Autonomous agents and multiagent systems - Volume 3. P. 1315-1320. 23. Tasharo S., Karmani R.K., Lauterburg S., Legay A., Marinov D., Agha G. TransDPOR: A Novel Dynami Partial-Order Redu tion Te hnique for Testing A tor Programs. In FMOODS/FORTE, volume 7273 of Le ture Notes in Computer S ien e, 219234. Springer, 2012. 256 Суперкомпьютерные дни в России 2015 // Russian Supercomputing Days 2015 // RussianSCDays.org 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.