A Case Study of Black-Box Testing for Embedded Software using Test Automation Tool

: This research shows a case study of the Black-Box testing for Temperature Controller (TC) which is one of the typical embedded systems. A test automation tool, TEST, was developed and some kinds of TCs were tested using the tool. We presented statistical analysis for the test results of the automated testing and defined the properties of the software bugs for the embedded system. The main result of the study were the following: (a) test case prioritization technique was needed because the review phase, in the test process, takes long time; (b) there are three types of software defects for the embedded software; (c) the complexity of the system configuration have an effect on the software defect; (d) the software defect was distributed in vulnerable points of the software; and (e) testing activities reduce the number of the software defects. The result can be useful in the asymptotic study of test case prioritization.


INTRODUCTION
As a scale of market for the embedded software has grown up, product's quality and reliability hold a key post in the software development process. In 2004, one of the world famous mobile companies did additional after service because of some kinds of software defects. Like this, there have been many cases of defects of the embedded system as software with short product life cycle recently. For this, more effort for the quality assurance of embedded software has been required [1] . Each enterprise or companies have tried to reduce defects on software development process, moreover, to describe requirements and to verify that it is satisfied, between in each process. To use the test automation tools is one of good approaches. They are skillfully devised for convenient use and give testers the testing environment which is more correct than the manual testing. The conventional test automation tool for the embedded software usually was used for Unit Test. Also, many times of modification and adaptable periods were required to apply to specific system. These problems caused impossibility for the testing. Generally, embedded system's configuration of hardware is very various and there would be a difficulty for generalization of testing environment, so the conventional test automation tool for the embedded software testing couldn't be applied to various systems [2][3][4] . Because of this situation or restriction the conventional development of embedded system company has not used the existing automation tool for the testing, or tested in limited situation. It had to develop new testing automation tool for the testing fitted on a developing system as well [5][6][7] .
In this study, we developed the test automation tool, Testing stand for Embedded Software Testing (TEST), which is dedicated to the embedded system, introduced the annual testing results and presented properties of the software defects for the embedded software.
Temperature controllers: Temperature Controller (TC) is one of the typical embedded systems that gets input variables by environmental factors of outside and is controlled by switch input by user. TC operates with ambient sensor, in-car sensor, humidity sensor and photo sensor on environmental factor of outside. As a user inputs each switch, it decides indicator's on/off. Embedded software inside of TC carries out decision of intention like indicator, display and actuator by environmental condition and user's input. Fig. 1 shows a hardware configuration of the TC. TC is classified with FATC (Full Automatic Temp. Controller) and MTC (Manual Temp.Controller). In FATC, internal software's function is complicated so every possible cases' testing is required.

Test Case Generation Test Execution
Test Report Ge ne ration

Test automation tool:
The main reason to use the automation tool for testing is to overcome the demerits of the existing manual test. The time cost can be reduced for framing Defect Record, documentation and writing report. The exactness of test result can be also guaranteed in previous studies which compare the manual test and the automation test, the manual test requires more than two times of expense and time as well [8] .
Testing software's maximizing of the automation on every procedure on testing can be a standard to ability of tool. How much the developed testware supports to test procedure like test script generation, test execution and test report generation, there would be ability as an automation tool. A study for the realization of the automation tool like test case's operation of automation or automated comparison between actual result and expected result has been in progress. Also, a study of organization of test report template for embedded software has begun [9][10][11] .
TEST (Testing-stand for Embedded Software Test) includes 5 functions for verification of embedded software [12] . 'product modeling' which reflects FSM and product specification on Microsoft Excel, 'model verification' which verifies exactness of input by user [13][14][15] , 'Test script generation' which creates test cases automatically based on product specification, 'test execution and comparison' which executes test cases and 'test report generation' which reports test result that is used as data of defect verification [16,17] . TEST embodied in Microsoft Visual Basic.Net, VBA Macro and many DLL based on C.
Test accomplishments: Now as it introduced earlier, it shows the result of test accomplishments about total 7 tests for TC by using TEST. As it explained earlier, TC is divided by two types. In MTC, however, functions of SW are simple and the outbreak of defect was not reported, so we ruled out all test results which is from testing MTC. Accordingly, only 7 results of ATC are introduced next. Fig. 3 shows the primitive data of test result. One software defect is classified by some criterions to find its properties.  In each phase, it was realized that the time for executing test cases, reviewing and adjusting the found out defect, takes too long. During test process, the time for carrying out of the test case takes more than 35% of the whole process. In 'reviewing and adjusting defect' phase which is directly related to this, during executing test cases, it starts from where the defect happens, so if a software defect is found out, the test period should be longer. In consequence, a study that test case can be operated in preferred order to find out such software defect quickly during the test process, has been going on. Specification Misunderstanding means that a developer misunderstands the given specification and defect happens. A developer analyzes by his or her own, however, between multitudinous and complicated logics are mentioned on specification, so defect happens. These kinds of problems are almost 14% of the whole.
Specification Defect is when a specification of product development includes defect by a developer. In this case, test automation tool reported there was a defect on SUT, but, in fact, there was a problem in specification that used by test automation tool and it takes 12% of the whole.   Fig. 7 shows number of software defect about number of actuator or sensor connected in one unit TC. Through the 7 each of system it can get the result that as much as complicated organization of hardware has given, more and more software defect can be lied. When the number of organization factor of hardware which are connected in system, are getting more, it means there are many things to control inside of embedded software, also it can cause compilation by software's increasing. These result means when embedded software is measured, the complexity of hardware configuration can be used as a factor, like using lines of program was for existing traditional software's complexity.
We can predict the number of software defect which are in the given software using these results. Fig.  7 shows that N SoftwareFault (the number of software fault) would be increased linearly as N EndItem (the number of End Item) have been increased. This fact could be used to decide the time to stop software testing. Fig. 7  Output variable and software defect: Fig. 9 is the result of mapping with software defect and output variable. Those test objects, 7 TC have similar hardware organization and depending on system, additional input has existed. Therefore from black-box test which verifies software through in/output, result of output defect is considered as software defect. As shown on the Fig. 9, specific output defect is centralized. In the Fig.,   O21 and O35, were assigned as that value through the many different conditions and then more software defect was caused by comparing with other input. Fig. 10 is about distribution of internal logic. In Fig. 9, it takes a look at the relationship between defect and specific output. Similarly with this, in Fig. 10 it is about a relationship between defect and specific internal logic. These results can be used as prediction of confidence of embedded software. It tells framing specific logic or system related with a specific variable should be clear. Reorganizing complicated formation of specific logic in simple system is needed.
These results could be used to order the test cases as a test case prioritization technique. For example, we should change the execution order between the test cases to find out the software defect more quickly. As we mentioned earlier, the review phase require much time to decide whether test result is the software defect or not. For that reason, recently various test case prioritization techniques are researched. identifying the severe defects earlier and minimizing the cost of test case prioritization. They proposed the prioritization scheme based on customer-assigned priority and requirement complexity [18] . This scheme has a restriction that prioritization is done by expert although it is impossible to collect talented expert in a small or middle enterprise. Sebastian Elbaum et al. orders the test cases based on the number of function calls and proposes the scheme that modification parts of the software have higher priority than others when testers want to test the software in the passion of the regression testing [19] . This method could be applied to the black-box testing because its ideas are on the basis of the white-box testing. Fig. 11 shows number of software defect of TC delivered by two same companies. They are different types of system, but basic organization of HW/SW is similar. After development of test automation tool, 13 software defect were found out at initial applied model, however only 3 defect were discovered at fourth model. This shows as one company which orders an embedded system applies test automation tool, a positive manner for quality verification has an effect on product developer, so operation from development step to increasing of product's quality is progressing. Also it can be analyzed as applying test automation tool, it can be guaranteed of verification ability and discussion about developer's product.

CONCLUSION AND FUTURE WORKS
In this study, TC which is one of the embedded systems was introduced as the automation tool for black-box test. Through the results of the several TC test, additionally using test automation tool to embedded software which has taken manual test already, so it can take apart more fallacies. Accordingly, it confirms this would work on positive side of increasing product's quality. In the future, in the future, as in a view of rate between timing of test accomplishment and discovering defect, study which is for increasing of utility factor for test, formatting of superior quality of test case and organizing test case in ranking with new techniques, will be advance. In this part as it introduced in part 3, it shows the result of test accomplishment about total 7 tests of TC by using test automation tool. As it explained in part 2, TC is divided by two types. In MTC, however, function of SW is simple and the outbreak of defect was not reported, so it was excepted from the test result. Accordingly, only 7 results of ATC are introduced in this part.