Archived:Unit test on S60 Part2
5 Benefits of using unit test on S60
Well designed test cases make sure that requirements are implemented correctly.Test cases can be designed before writing code.In this stage, people responsible for requirement can co-work with developers to make sure every requirement will be interpreted into one or several test-cases.Because test-cases will be tested on S60 phone,all these requirements will be verified on target hardware.
Designing test cases will help to seperate s60 application's UI part from engine part. A good designed S60 application should seperate its UI from engine. Unit test can efficiently to test engine part however testing UI is not very efficient. For this reason, when application is designed, logical part which need to be tested should be moved into engine.
Unit tests detect regression bugs at early stage. Normally,development plan will be divided into different stage and regression bug is a very common problem. Because Unit-test will be run continuely,it can detect regression bugs at early stage.
Live documentation: maintaining documents need extra time and extra effort. Bad documents lack enough sample code and do not cover detail conditions. Unit test can avoid these problems. Well-designed unit-tests are live sample codes for most possible conditions. All these codes are good examples to help people to understand codes context.
Detect potential problems on different s60 phones: In most cases,phones based on same S60 release should can support same common feature sets. However,occasionally, some mode or some system version can has some problems on these common features.for example, it is possible that a phone can not handle some advanced features which correctly are supported by other phones based on same s60 release. If application is based on such advanced common feature set, Unit-tests can be run on all target phones to verify whether these advanced feature are available.
6 limitation of using unit test on S60
Unit test is a very useful tool to ensure software quality, however, there are still some issues need to be noticed.
Designing test cases need extra time and effort. Test-cases should cover most typical conditions. For example, there is one function whose pre-condition depends on a TBool variable.So, at least two test-cases which test this variable one ETure and EFalse are needed.
Because test-cases represent requirement, test-case need to be updated, when requirements change.This update work need extra time and effort
Unit-test can not replace human test completely. One reason is that currently, S60’s unit-test tools can not test UI conveniently. Another reason is that unit-test can not catch all error, especially integration errors, or system level errors.