Article Preview
Top1. Introduction
The Component-Based Software Development (CBSD) approach aims at delivering quality in large software system by selecting and integrating already existing reusable and testable component. Rather than development from scratch it gathers the existing components which results in low development and maintenance cost. Component based software development is a branch of software engineering which is also called component based software development. It focusses on the reusability of loosely coupled components in software (Sen, & Mall, 2012). Components can be discovered, selected and composed using different techniques to form a new component or a complete application. These components are the back bone of service oriented computing. In service oriented architecture (SOA), components are converted to services and then they can be reused for further.
Component-Based Software Testing (CBST) of component is maturing as a new sub-discipline of Component-Based Software Engineering (CBSE). CBST is a mechanism used to identify the correctness, completeness, quality and documentation of developed components (Sen, & Mall, 2012).
1.1 Software Test Processes
Quality assurance and productivity can be achieved through software testing process. With the advancement of technology and increase in appetite to get more, the complexity of software development is increased. This advancement has made distributed development of applications an important concern for the focus of the developers. Quality is one of the most important concerns during development of an application (Malaiya, Li, Bieman, & Karcich, 2002).
To achieve the quality in distributed applications, developed using components, a highly efficient and resourceful component–based testing is required. Different facets of the components like reusability, security, reliability, truthfulness, and safety etc. are required to be tested effectively. Study demonstrates that more than half of the development cost is a result of testing performed. As the complexity of the software step up, there is augmentation in the cost. In CBS, development process follows component-based approach that mainly consists of encapsulated data and functions within the modules as unit of testable components. These components are configured at run time through parameter passing (Voas, Payne, Mills, & McManus, 1995). Our first main concern in this work is to improve component-based test processes documentation while considering two factors viz. requirement in CBST and test case process documentation; and second is testable component construction through a new and novel process.
1.2. Component-Based Software Testing Requirements
Component-Based Software Testing (CBST) requirements improve and enhance the process of testing of software component in CBSD if these requirements are specifying at the right time. The test cases in CBST are designed and planned based upon the properties of reusable components. The availability of source code with White-Box Testing and Black-Box Testing, compatibility and functionality of component, middleware of software component, interfaces among testable and reusable component, component specification are the basic requirements for CBST (Schieferdecker, I., 2012).
1.3. Availability of Source Code with White Box and Black Box
White-box testing approach in software testing inspects the internal structure of the program and uses program logics to develop test data whereas black-box testing approach deals with the input and output domain of the test without concerning the internal logic and working of the item being tested(Tang, M., Dai, X., Liu, J., & Chen, J., 2016). Black Box testing and White Box Testing are utilized to test the main component. The main component is first unit tested for the logical test data generated based on the source code, and second, using test cases designed based on its specification. When some components are deprived of source code then, Black Box testing of components is consider sufficient because earlier often there is less requirement for low-level source based testing techniques (Harrold, 2000).