Header Ads

  • Breaking News

    Difference between Unit, Integration and System test

    In the software testing world, different kind of testing is done to improve the quality of the product. So we have different testing terms like unit testing, integration testing, functional testing, non-functional testing, system testing, acceptance testing, etc. So when product development starts and the first module is ready one should start thinking about the quality of that module. In the agile world with Dev oops SDET engineers start testing and automation from the first day which includes white box testing as well as black box testing. 

    In the software testing interview, it is common to ask "difference between Unit, Integration, and system testing". In the below video I have explained the concept of unit test, integration test, and system test along with their differences. Also talked about who performs each testing and when should we perform this testing in agile.  Don't forget to subscribe to the channel.



    Unit Testing - 

    The testing of the smaller possible modules is called Unit testing. This is the 100% Whitebox testing done by the developers.  Developers integrate JUnit, Mockito, TestNG to their framework and write the unit test which tests the actual function they have written. Most commonly they pass the arguments to the function and verify the response if it is expected or not. Ideally, 100% unit testing is expected. 

    Integration Testing -

    Integration testing is the concept of testing a combination of modules. When modules are ready and getting integrated with each other they should be tested. In the above video, we have discussed how car steering wheel and wheels should be tested after the integration. Sometimes it is possible that individual modules work fine but after integration, it doesn’t serve the purpose. Integration testing should be also automated by SDET or developers and integrated into the CI/CD pipeline for continuous delivery. 

    System Testing

    System testing is the testing of the entire finished product. Once all the modules are integrated and ready to use one needs to test the entire product. Most Software testers do system testing only. This testing includes functional testing like black box testing, exploratory testing, and functional testing as well as non-functional testing like performance testing, security testing, and load testing. We will talk about all these testing types in future articles. 

    System testing is performed after the Unit and Integration testing is done. Once system testing is done, product is ready for acceptance testing which is mostly alpha and beta testing. 

    unit vs integration vs system testing


    If you see the coverage matrix, the Unit test should have the highest coverage than the integration test and then system test. 

    If you have any doubts or suggestions feel free to reach out on social media. Follow Us on Reddit, Facebook, and Twitter. Don't forget to subscribe to the channel -> Youtube channel. Thank You.

    No comments

    Post Top Ad

    Post Bottom Ad