這篇文章算是尋找新工作機會的技能盤點,主要是有關於自動測試的東西。如果沒有用上,也算是自己技能上的一個 review,畢竟這些年來對於測試/開發上方面自行開發的一些程式,我覺得還是相當不錯。因為目前的 Target 是一家外商公司,所以就是以英文說明,如果哪天打槍了,announce 出來,也不算白費了我這番心力準備這些內容。
Abstract
Years in current occupation, things are built to optimize the development and testing process to reduce working time on routine jobs and improve the qualities for both me and colleagues.
Auto Build Server
Auto build server may be common around most of companies which have a standard release procedure. Since I’m working in a Taiwanese grassroots company, these operations are not deployed.
Before my presence, the software release is built by individuals. As you can imagine, some catastrophic events occurred due to personal causes of improper build process.
The auto build server not only guarantees the same build process for release but it also provide quick retention bug testing infrastructure, images of recent versions are kept for testing.
Programming Language used is Linux shell scripts.
QEMU Simulation
My current work is related to make communication radio devices, which priced thousands or millions of TW dollars for each device. As one can expect, there won’t have enough devices for each one to run his job on physical target machine.
Once again, I devote my time to setup a whole system simulation except physical layer. So that each layer, application layer, middleware, and MAC can do their jobs in this simulation environment without a precious target machine.
Physical Network Simulator on Windows
Okay, we have the standalone device simulation, but that is far from the real radio communication. A standalone radio can’t run protocol testing and its status is always idle.
Therefore, a network simulation program becomes a must. This QT program can pass packets between each simulator and make it like a real radio network except it has almost zero response time.
Case by case, user can implement radio physical characteristics in per-project simulated physical layer. But in most of cases, it can simulates most practical cases, like link setup and performance testing.
QT + Python-Based auto test program
This program is designed to test communication between two real machines. If necessary, it can test simulated machine.
The program is a QT based controller to run test scripts written in Python. A testing script sends CLI commands, which QT controller as relay to pass commands, to testing peers. So that , they can run various testing by scripts.
Even more, if you want to run testing between far remotes, an open source called ‘hubcom’ can simulate telnet as comport. So, you can run testing like locally.
Uanalyzer – Visualzation Tool
This “Univeral Visualization Analysis Tool” is recent developed to show .csv data in a visualized way by QT as well. It is not best in the class, like matlab. But it provides a quick way to visualize the whole condition overtime for RD to focus on key problem.
Code and API auto generation
Maybe, this is the best work in this job. It saves lots of time, improving quality and generate look-alike APIs.
Code and APIs can be auto-generated from a SNMP MIB file. CLI, middleware API, and external interfaces are generated automatically. If required, it should be no problem to generate more various uniform code. Of courses, it is not perfectly matched customer’s requirement. An override mechanism is also included to replace auto generated functions.
This auto generation tool is an outcome of different programming language. Java (sorry, no my work), Linux shell script, C, and Python.
Moreover
There are more works done in current job. It maybe not about automation, but after all, it saves time, mine or colleague’s.
- remote LCM: show LCM screen locally, for physical or simulated target.
- Excel VBA testing Scripts: Sometimes, automation combines various programming languages to achieve. This VBA program is designed as a UI for normal people to run testing in a generalized style so that they can generate commands to pass to remote for testing.
Part Time Job
A moment in current job, I would like to experience more challenge and earn some extra cash. So, I post “接案” information on PTT. Luckily, people contact me and achieve some works
- Excel VBA automation: Process local file and generate some fields.
- Internet crawler: Uses simple tools such as wget or curl to get data. Advanced, Python selenium package is used to to get web data containing JavaScript.
結語
目前的這個工作也是8年多了,算是從事最長的一個工作了。也多虧了這麼長的時間,才能產出這麼多自動化的東西。對我個人而言的確省下了不少時間,工作上效率也有驚人的提高,但僅管分享了這些成果給同事,但大部份的人還是沒用採用。當然,有部份的人是的確用不上,但有些是難以改變的習慣…這時也只能想說至少我可以早點下班….