I have been working for three years. It is a special period for most people, and it is no exception for me. I often think about what my own positioning is, what I want to do in the future, and how I should choose to realize my own values and dreams.
My thoughts go back three years ago ......
I graduated from Central South University, which ranked around 14 in the country at that time. I studied civil engineering, which is second only to Tongji Tsinghua. Like most people, I chose to go to design institutes, railway bureaus, and engineering bureaus. I chose Kingsoft Software without hesitation. At that time, I almost did not hesitate. Because I believe that this is the path I will take in the future.
Kingsoft Software is the place I dreamed of. A long time ago, John was my idol. In the high school era, I used Kingsoft WPS, drug overlord, and swordsman series. In my opinion, Kingsoft Software is a proud company. It is even more proud that I can join Kingsoft Software.
I started to study QB in junior high school and participated in the Olympics, but I did not take any rankings. Now I want to think about it. At that time, I often won several award-winning students who are not engaged in computer science, and I just insisted on it. It is this persistence that gives me the opportunity to come to Kingsoft.
I am engaged in automated testing, that is, preparing automated testing cases or testing tools for WPS products. At that time, when I joined, the product's automated testing level was not very high. Later, we wrote a large number of Automated Testing Cases Using qtp, and then created a box automated testing platform, A Distributed automated testing platform that includes task release, machine allocation, Environment preparation, case execution, report collection, and result display.
At that time, I also wrote many test tools. The most proud tool is the dialog box Check Tool written in C # (dialogcheck), which automatically opens all WPS dialogs, check whether the window is correctly displayed. At that time, I carefully designed this tool. Later I discovered that myCodeSome design patterns are used, such as the template method and reflection factory. Then, I became very interested in the design model, from "big talk design model", "head first design model" to "design model-reusable basis for Object-Oriented Software". I have benefited a lot.
Later, I began to realize that, as I graduated from a non-computer Major, my basic knowledge naturally became a weak link, such as data structure,AlgorithmAnd compilation principles. I can't just stay at the level of C. So I started to learn by myself. To prove my learning achievements, I took the National Software Designer examination. After several months of preparation, I successfully passed the examination. Software Designer formerly seniorProgramThis is a great incentive for a non-staff member.
My company's organizational structure has been adjusted several times. Till now, I belong to Kingsoft Internet security company, which is responsible for testing Kingsoft drug overlord and other security products. As a test engineer, I am most proud of my experience in all aspects of software testing. From the interface layer's qtp integration test, the interface test based on the C ++ underlying interface, the development of testing tools and platforms, to the performance test, and then to the security test. Every change has greatly improved for me. Previously, no one in the company specialized in performance testing and security testing. I got this task and started an interesting exploration. For example, the performance testing tool LoadRunner, silkperformer, opensta, jmeter, and so on, and even I was eager to implement a Performance Testing Tool myself. In the security test, we have studied various attack methods and security threats, and various security scanning tools: findbugs, PMD, lapse, and fortify SCA. My (original) attack method learning XXX series was also completed at that time.
Later, the performance test was on the right track. I started to take charge of the Interface Test of the C ++ module of the drug overlord, which is a white box test. We all call it a module test. At that time, when I joined, the module test had been done for a long time. At that time, we used the cpptestframework developed by ourselves. After using it for a few weeks, cpptestframework is found to be quite unsatisfactory, and sometimes there will be bugs, so I have to stop writing the case to fix the cpptestframework bug. So I want to see if I can use some existing testing frameworks, such as cppunit. Later, I found Google test, gtest for short. This made me very excited. gtest is concise and easy to use, so I did not hesitate to choose it. So you will see the "play to gtest series"Article.
Zhanyong. Wan, the author of gtest, quickly discovered that, with his encouragement, I completed the entire series in a very short time. On the Right of the current gtest official homepage, my article links are retained. This link brings me considerable traffic and greater confidence.
Next, we need to persuade everyone in the team to switch the test framework to gtest. As a result, I held several technical exchanges on gtest to introduce them to the features and advantages of gtest, and to introduce the usage of gtest from the beginning, as well as some things that can attract their attention, for example, parameterization testing, death testing, and case distribution execution. Gradually, everyone accepted gtest, so I spent 1 or 2 days writing a script to automatically upgrade all the previous test case code based on cpptestframework to gtest cases.
The main task of the module test is to call the export function of the drug bully DLL, try various inputs, and then check whether the expected results are met. Sometimes, we also perform unit tests on the product code. Directly remove the code of the drug overlord product for reading and testing, so that I have a deeper understanding of the product. I have high requirements on my own code and cannot tolerate flaws in other people's code. So, I like to pick a thorn. I cannot tolerate the abbreviations used by developers when naming them. I will report a variable naming bug to developers, just because developers write the client as a clien. Although the number of buckets is not within the scope of our assessment indicators, I searched for the number of bugs that I found to be at the forefront of the entire testing team (including manual testing, although there are many bugs, the priority is not very high.
I am a perfect person. I have provided a little bug for development. Although it is not an immediate one, it has a long-term positive effect on development code. When I find a bug, instead of immediately recording it into the bug library and submitting it to development, I directly compile and debug the development code to find the root cause of the bug. Therefore, the bug I submitted will basically point out the file where the code that caused the bug is located, the first line, and the method to fix the bug. Maybe developers do not like testers who are too strong. I found that many developers have to use another method to fix them after reading my repair suggestions. This is indeed very interesting.
Now ......
I have been thinking about my future development direction. I am a person who likes to deal with code and a person who is willing to write code until the age of 60. Therefore, architects have always been my dream. Over the past three years in the field of testing, I have learned a lot about software testing. I am also wondering if I need to continue to develop in the testing field.
With a dream, I develop an excellent software that will benefit the world. Software testing is always testing other people's code and cannot create their own products. So my spare time became my happy time. I am crazy about learning, reading, writing blogs, and coding. In this regard, I am a real girl, but I have a girlfriend who likes to stay with me. I have been touched by her encouragement and support. I wrote a lot of things and named them by her name, such as nancytetris, nancyblog, and nancyglines.
Python is something I like in my spare time.Programming Language. I like its simplicity and beauty. Many of my projects are written in Python, and the code is hosted in Google Code and provided in open source mode. I like this philosophy. I am very excited if I am a professional Python programmer.
I also wanted to be a freelancer. In this way, I have a lot of time to do what I like and research my favorite technologies on the premise that something can bring me a stable income to sustain my livelihood. Of course, I can choose to start a business. I have some ideas, but I have never insisted on implementing them.
I think it's good to make a consultant. It is said that this is a hot job abroad. Consultant will encounter various environments. In the face of various difficulties, he is engaged in a very challenging job and needs to have a strong ability to solve problems.
Maybe the research institute will be more suitable for me. I have an endless desire to learn about those unknown fields, and I am very happy to be immersed in research. At the same time, this also allows me to find my own specialization direction, and make a technology research deeper and more transparent.
It takes 10 thousand hours for a person to become a master in a certain aspect. I hope I can find my own direction and stick to it.