=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)== https://ceur-ws.org/Vol-1482/245.pdf
      Суперкомпьютерные дни в России 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.