Software component testing is performed on each individual component of the system separately without integrating with other components. Static analysis of code as well as data flow analysis shall be used to detect poor and potentially incorrect program structures or specifications failures.
Boundary and structure-based tests are to be executed to detect specific software errors. Depending on the Hardware/Software design, unit testing might be taken into account, too, with several different classes of testing, such as equivalence class and input partition, model-based test case generation and so on. The latter testing class that will be performed is the performance testing (stress tests, response timings, etc.), to ensure that the working capacity of the system is sufficient to meet the specified requirements
Enabler of Continuous Integration
Enable Regression Tests
Design and implementation faults detection
Avoids poor coding related unexpected behaviours
Code overhead
Time consuming
Test personnel must be different from develop
Kim HK., Kwon OH. (2005) SCTE: Software Component Testing Environments. In: Gervasi O. et al. (eds) Computational Science and Its Applications – ICCSA 2005. ICCSA 2005. Lecture Notes in Computer Science, vol 3481. Springer, Berlin, Heidelberg. https://doi.org/10.1007/11424826_15
Franz F. (2008) Experiences with Evolutionary Timing Test of Automotive Software Components. In: Margaria T., Steffen B. (eds) Leveraging Applications of Formal Methods, Verification and Validation. ISoLA 2008. Communications in Computer and Information Science, vol 17. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-88479-8_29
Gao J.Z., Wu Y. (2004) Testing Component-Based Software – Issues, Challenges, and Solutions. In: Kazman R., Port D. (eds) COTS-Based Software Systems. ICCBSS 2004. Lecture Notes in Computer Science, vol 2959. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-24645-9_2