Pagsusuri ng integrasyon sa pagpapaunlad ng mobile — esensya, mga uri at kung paano ito ginagawa

May-akda: IT Sectr Nai-publish: 2026-04-06 Oras ng pagbabasa: 8 min

Sinusuri ng pagsusuri ng integrasyon ang tamang interaksyon sa pagitan ng mga bahagi ng mobile application — mga modyul, serbisyo, database at panlabas na API. Hindi tulad ng mga unit test na naghihiwalay sa bawat bahagi, natutuklasan ng mga integrasyon test ang mga error sa mga dugtungan: hindi pagkakatugma ng mga format ng datos, pagkasira sa pagpapadala ng parameter at hindi tamang pagproseso ng mga tugon mula sa server. Ayon sa datos ng Martin Fowler, 2018, ang mga integrasyon test ay sumasaklaw hanggang 40% ng mga kritikal na depekto na hindi natuklasan ng mga unit test at nagbibigay ng katiyakan sa katatagan ng sistema bago ilabas.

Mga pangunahing punto

  • Pagsusuri ng integrasyon — ang proseso ng pagsusuri ng interaksyon sa pagitan ng mga bahagi ng sistema: mga database, serbisyo sa network at panloob na modyul.
  • Big Bang — approach kung saan ang lahat ng bahagi ay ikinokonekta at sinusuri nang sabay-sabay, angkop para sa maliliit na proyekto.
  • Bottom-Up — estratehiya kung saan unang sinusuri ang mga bahaging mababa ang antas, pagkatapos ay unti-unting idinaragdag ang mas mataas.
  • Top-Down — approach na nagsisimula sa pagsusuri ng mga interface ng mataas na antas gamit ang mga stub para sa mga modyul na mas mababa.
  • MockWebServer — aklatan para sa pag-emula ng HTTP server sa mga Android test, na nagpapahintulot sa pagsusuri ng mga network request nang walang tunay na backend.

Ano ang pagsusuri ng integrasyon?

Pagsusuri ng integrasyon — ay ang yugto ng pagpapatunay ng software kung saan sinusuri ang tamang interaksyon sa pagitan ng mga indibidwal na modyul o subsystem ng application. Habang sinusuri ng mga unit test ang bawat bahagi nang nakahiwalay, pinagsasama-sama ng mga integrasyon test ang mga bahaging ito at sinusuri kung paano gumagana ang mga ito nang magkakasama. Kasama sa mga tipikal na senaryo ang paglilipat ng datos sa pagitan ng network layer at repository, pagsulat sa database sa pamamagitan ng ORM at pagproseso ng mga tugon mula sa mga third-party na API.

Sa konteksto ng pagpapaunlad ng mobile, sinasaklaw ng mga integrasyon test ang interaksyon sa pagitan ng UI layer, lohika ng negosyo at mga pinagmumulan ng datos. Halimbawa, maaaring suriin ng isang test na pagkatapos pindutin ang buton “Login”, ang application ay nagpapadala ng request sa server, tumatanggap ng token at iniimbak ito sa lokal na imbakan. Kinukumpirma ng ganitong pagsusuri na ang kadena ng mga bahagi ay gumagana nang walang pagkasira.

Ayon sa ulat ng World Quality Report 2023, ang mga kumpanyang regular na naglalapat ng pagsusuri ng integrasyon ay nagbabawas ng bilang ng mga insidente sa produksyon ng 35% kumpara sa mga proyektong umaasa lamang sa mga unit test. Ginagawa nitong mandatoryong elemento ng estratehiya sa pagtiyak ng kalidad sa komersyal na pagpapaunlad ang mga pagsusuri ng integrasyon.

Bakit kailangan ang pagsusuri ng integrasyon sa mga mobile application

Ang mga mobile application ay binubuo ng maraming magkakaugnay na bahagi: mga network request, lokal na database, push notification, serbisyo ng sistema at third-party na SDK. Bawat isa sa mga bahaging ito ay binuo nang hiwalay, ngunit sa runtime sila ay nagpapalitan ng datos sa real-time. Natutuklasan ng pagsusuri ng integrasyon ang mga depekto na hindi matatagpuan sa nakahiwalay na pagsusuri ng mga modyul.

Sa mga tipikal na problemang natutuklasan ng mga integrasyon test ay ang hindi pagkakatugma ng uri ng datos sa pagitan ng API at modelo ng application, mga error sa serialization ng JSON, hindi tamang pagproseso ng mga network timeout at pagkasira sa parallel na pag-access sa database sa pamamagitan ng Room o Core Data. Kung walang mga pagsusuri ng integrasyon, ang mga ganitong depekto ay napupunta sa produksyon at lumalabas lamang sa mga tunay na gumagamit.

Ang pananaliksik ng Google Testing Blog (2021) ay nagpapakita na ang gastos sa pag-aayos ng depektong natuklasan sa yugto ng pagsusuri ng integrasyon ay 5 beses na mas mababa kaysa pagkatapos ilabas. Ito ay dahil sa mga naunang yugto, ang developer ay may kumpletong konteksto ng error at maaaring ayusin ito nang walang apurahang hotfix cycle. Ang pamumuhunan ng oras sa pagsulat ng mga integrasyon test ay nagbabayad sa pamamagitan ng pagbawas ng gastos sa pagpapanatili at pagtaas ng tiwala ng gumagamit.

Mga approach sa pagsusuri ng integrasyon

May tatlong pangunahing approach sa pag-oorganisa ng mga integrasyon test: Big Bang, Bottom-Up at Top-Down. Ang pagpili ng estratehiya ay nakadepende sa laki ng proyekto, arkitektura ng application at pagkakaroon ng mga bahagi sa oras ng pagsulat ng mga test. Bawat approach ay may mga kalamangan at limitasyon na mahalagang isaalang-alang sa pagpaplano ng saklaw ng test.

Big Bang

Big Bang — approach kung saan ang lahat ng bahagi ng sistema ay ikinokonekta nang sabay-sabay, pagkatapos ay isinasagawa ang pangkalahatang pagtakbo ng test. Ang pamamaraang ito ay simple sa implementasyon: hindi nangangailangan ng pagsulat ng mga stub o pag-emula ng mga indibidwal na modyul. Gayunpaman, kapag natuklasan ang isang error, mahirap matukoy kung aling bahagi ang pinagmulan nito. Ang Big Bang ay makatwiran sa maliliit na proyekto na may simpleng arkitektura, kung saan ang bilang ng mga modyul ay hindi hihigit sa lima.

Bottom-Up

Bottom-Up — estratehiya kung saan ang pagsusuri ng integrasyon ay nagsisimula sa mga bahaging mababa ang antas: database, network layer, mga serbisyo ng sistema. Pagkatapos suriin ang bawat antas, unti-unting ikinokonekta ng mga test ang mas mataas na modyul — mga repository, Use Case class at ViewModel. Ang pangunahing bentahe ay maagang pagtuklas ng mga depekto sa pundasyonal na mga layer ng application, na nagbabawas ng panganib ng mga cascading error sa mga huling yugto ng pagpapaunlad.

Top-Down

Top-Down — approach kung saan nagsisimula ang pagsusuri sa mga bahaging mataas ang antas — mga screen ng UI at nabigasyon, habang ang mga modyul na mas mababa ay ginagaya gamit ang mga stub o mock. Ito ay nagpapahintulot sa pagsusuri ng mga senaryo ng gumagamit bago pa ganap na maipatupad ang bahagi ng server o database. Ang Top-Down ay lalong kapaki-pakinabang sa parallel na pagpapaunlad ng client at server na bahagi, kapag ang backend ay hindi pa handa para sa tunay na integrasyon.

Mga kasangkapan para sa pagsusuri ng integrasyon

Para sa pagsusuri ng integrasyon ng mga mobile application, ginagamit ang isang hanay ng mga espesyalisadong kasangkapan na nahahati sa tatlong kategorya: mga aklatan para sa pag-emula ng server, mga framework para sa pagtatrabaho sa database at mga kasangkapan para sa pagsusuri ng mga serbisyo ng sistema. Ang pagpili ng partikular na kasangkapan ay nakadepende sa platform — Android o iOS — at sa teknolohiya stack ng proyekto.

  • MockWebServer — aklatan ng Square para sa Android na nag-e-emula ng HTTP server sa kapaligiran ng test. Nagbibigay-daan sa pagtatakda ng inaasahang tugon, pagsusuri ng body at header ng mga request, pag-simula ng mga error sa network.
  • OHHTTPStubs — aklatan para sa iOS na humaharang ng mga network request sa antas ng NSURLProtocol at nagbabalik ng mga inihandang tugon. Sinusuportahan ang mga pagkaantala at error sa koneksyon.
  • Room Testing — mekanismong nakapaloob sa Android para sa pagsusuri ng database: paggawa ng in-memory Room instance, pagsasagawa ng mga operasyon ng pagsulat at pagbasa, pagsusuri ng mga migration at trigger.
  • Core Data Testing — approach para sa iOS kung saan ginagawa ang in-memory Core Data container, na nagpapahintulot sa pagsusuri ng mga query, relasyon sa pagitan ng mga entity at pag-imbak ng datos nang walang permanenteng imbakan.

Mga halimbawa ng code para sa mga integrasyon test

Tingnan natin ang mga praktikal na halimbawa ng mga integrasyon test para sa Android at iOS. Para sa Android platform ginagamit natin ang MockWebServer kasama ng JUnit, para sa iOS — XCTest na may aklatan ng OHHTTPStubs. Parehong halimbawa ay sumusuri sa senaryo ng pagkuha ng datos mula sa API at pag-imbak nito sa lokal na repository.

Android: pagsusuri ng network layer gamit ang MockWebServer

Sinusuri ng test na ito na ang Retrofit request sa emulated server ay nagbabalik ng tamang JSON, at ang repository ay nagko-convert ng tugon sa isang domain model. MockWebServer ay humaharang ng request at nagbabalik ng itinakdang JSON, pagkatapos ay inihahambing ng test ang inaasahang resulta sa aktwal na resulta.

kotlin
class UserRepositoryTest {
    private val mockServer = MockWebServer()

    @Before
    fun setup() {
        mockServer.start()
    }

    @Test
    fun fetchUser_returnsCorrectData() {
        val json = "{ \`"id\`": 1, \`"name\`": \`"Alice\`" }"
        mockServer.enqueue(MockResponse()
            .setBody(json)
            .setResponseCode(200))

        val repository = UserRepository(
            createRetrofit(mockServer.url("/").toString()))
        val user = repository.fetchUser(1)

        assertEquals(1, user.id)
        assertEquals("Alice", user.name)
    }

    @After
    fun tearDown() {
        mockServer.shutdown()
    }
}

iOS: pagsusuri ng mga API request gamit ang OHHTTPStubs

Para sa iOS, ang katulad na test ay gumagamit ng OHHTTPStubs para sa pagharang ng mga URL request. Pinapalitan ng aklatan ang tugon ng server sa antas ng system framework URL Loading System, na nagpapahintulot sa pagsusuri ng anumang network library — URLSession, Alamofire o Moya.

swift
import XCTest
import OHHTTPStubs
import OHHTTPStubsSwift

class UserRepositoryTests: XCTestCase {
    func testFetchUser_returnsCorrectData() {
        stub(condition: isPath("/users/1")) { _ in
            return HTTPStubsResponse(
                jsonObject: ["id": 1, "name": "Alice"],
                statusCode: 200,
                headers: nil
            )
        }

        let repository = UserRepository()
        let expectation = expectation(description: "fetch user")

        repository.fetchUser(id: 1) { user in
            XCTAssertEqual(user.id, 1)
            XCTAssertEqual(user.name, "Alice")
            expectation.fulfill()
        }

        waitForExpectations(timeout: 2.0)
    }
}

Mga pinakamahusay na kasanayan sa pagsusuri ng integrasyon

Ang epektibong pagsusuri ng integrasyon ay nangangailangan ng pagsunod sa isang hanay ng mga kasanayan na nagpapataas ng katatagan ng mga test at nagbabawas ng gastos sa pagpapanatili nito. Ihiwalay ang mga panlabas na dependensiya: gumamit ng in-memory database sa halip na mga production instance at i-emula ang mga panlabas na API sa pamamagitan ng test stub library. Inaalis nito ang mga non-deterministic na pagkasira na dulot ng pagkakaroon ng network o estado ng mga panlabas na serbisyo.

Panatilihin ang kalayaan ng mga test: bawat integrasyon test ay dapat gumana nang nakahiwalay, walang depende sa resulta ng ibang mga test. Gamitin ang @Before at @After na annotation sa JUnit o setUp at tearDown sa XCTest para sa paghahanda at paglilinis ng kapaligiran ng test. Pinipigilan nito ang mutual na impluwensya ng mga test at pinapasimple ang diagnostiko ng error.

Saklawin ang mga boundary case: ang mga integrasyon test ay dapat sumuri hindi lamang sa mga senaryo ng tagumpay (happy path), kundi pati na rin sa paghawak ng error — mga timeout, HTTP code 4xx at 5xx, walang laman na tugon, sira na JSON. Ayon sa datos ng Google Testing Blog (2022), 60% ng mga insidente sa produksyon ay nauugnay sa hindi tamang paghawak ng mga boundary case na hindi nasaklaw ng mga test.

Mga madalas itanong

Ano ang pagkakaiba ng pagsusuri ng integrasyon at pagsusuri ng unit?

Sinusuri ng mga unit test ang isang klase o function nang nakahiwalay, pinapalitan ang mga dependensiya ng mga stub. Sinusuri ng mga integrasyon test ang interaksyon ng ilang tunay na bahagi — halimbawa, ang koneksyon sa network at database nang sabay-sabay.

Gaano katagal ang pagpapatakbo ng mga integrasyon test?

Ang pagpapatakbo ng mga integrasyon test ay karaniwang tumatagal ng 2 hanggang 15 minuto depende sa bilang ng mga test at pagiging kumplikado ng kapaligiran. Para sa malalaking proyekto, inirerekomenda na hatiin ang mga test sa parallel na job sa sistema ng CI upang bawasan ang kabuuang oras ng pagsusuri bago ang merge.

Aling mga bahagi ang dapat sapilitang saklawin ng mga integrasyon test?

Sa unang pagkakataon, ang mga integrasyon test ay isinusulat para sa network layer, database at mga serbisyo ng sistema — mga notipikasyon, kamera, geolokasyon. Ang mga request ng API sa backend at mga operasyon sa lokal na imbakan ay nagbibigay ng pinakamataas na ROI, dahil ang mga bahaging ito ay kadalasang nagiging pinagmulan ng mga regression.

Kailangan ba ang mga integrasyon test para sa isang screen?

Para sa isang screen, sapat na ang mga unit test ng ViewModel at mga UI test. Ang mga integrasyon test para sa isang screen ay makatwiran lamang kung ang screen ay nakikipag-ugnayan sa maraming pinagmumulan ng datos — halimbawa, pinagsasama ang mga tugon mula sa dalawang magkaibang API o nagsusulat ng datos nang sabay-sabay sa network at lokal na database.

Gaano kadalas dapat patakbuhin ang mga integrasyon test?

Ang mga integrasyon test ay pinapatakbo sa bawat pull request sa CI pipeline at bago ang mga pangunahing release. Inirerekomenda din na patakbuhin ang buong hanay ng mga integrasyon test sa gabi (nightly build) upang matuklasan ang mga depekto na may kaugnayan sa mga pagbabago sa dependensiya o kapaligiran ng test.

Buod

  • Pagsusuri ng integrasyon sinusuri ang interaksyon sa pagitan ng mga bahagi ng application — network layer, database at mga serbisyo.
  • Big Bang ay angkop para sa maliliit na proyekto, Bottom-Up at Top-Down — para sa mga sistemang may komplikadong arkitektura.
  • MockWebServer at OHHTTPStubs ang pangunahing mga kasangkapan sa pag-emula ng server para sa Android at iOS ayon sa pagkakasunod.
  • Mga integrasyon test ay natutuklasan hanggang 40% ng mga depekto na hindi natuklasan ng mga unit test, ayon kay Martin Fowler.
  • Pag-iisa ng mga dependensiya sa pamamagitan ng in-memory database at stub ay nagpapataas ng katatagan ng mga test at inaalis ang non-deterministic na pagkasira.
  • Gastos sa pag-aayos sa yugto ng pagsusuri ng integrasyon ay 5 beses na mas mababa kaysa pagkatapos pumasok ang depekto sa produksyon.
  • Isama ang mga integrasyon test sa CI pipeline sa bawat pull request at sa mga nightly run para sa buong saklaw.

Gagawa kami ng mobile application na turnkey

Gumagawa ang IT Sectr ng mga iOS at Android application para sa mga startup at negosyo mula noong 2017. Magpapayo kami sa iyo at magmumungkahi ng pinakamahusay na solusyon.

Pag-usapan ang proyekto

Basahin din