As you all know, test development or development testing is very wide. The energy of a person and your current project experience determine the specific test development work that you belong to a certain field. Here, I don't struggle with the difference between test development and development testing. There is a name. Today I want to discuss how to be a more qualified test development engineer on the
DevOps pipeline. To be honest, I only have three months of test development experience in the DevOps environment. This article is just a summary of my personal perspective. It mainly tells those students who want to do test development under the DevOps product line an entry way or a learning. route. Not necessarily all right, not necessarily good, just look at yourself. Those who are interested can communicate, and I have been working hard to transform and learn how to adapt to a role like this.
1. DevOps is culture and trend
DevOps has been upgraded in the agile software development model, and currently major companies are using this software interaction culture or technology. What is DevOps, not discussed here, my blog has a series of articles on DevOps basic literacy, a quick read, there is a concept. DevOps can be divided into two parts,
CI and CD, that is, continuous integration and continuous delivery, it can be said that CD contains CI. The word DevOps is composed of development and operation and maintenance, but currently it has formed a culture of software development and delivery. Traditional software development includes development testing and operation and maintenance, and testing is still inseparable in
DevOps. In this article, I will stand from a testing perspective, how to integrate into DevOps. It can be said that if you want to test in DevOps, you should technically need a lot of requirements, mainly reflected in the basic skills of the code. DevOps is currently very hot, so whether it is testing, development or operation and maintenance, you need to move closer to DevOps, and your career development path can be extended as much as possible.
2. A standard technology stack for test development in DevOps
As mentioned above, DevOps is divided into two parts, CI and CD. We mainly discuss CI because CI is a necessary prerequisite for CD. CI means continuous integration. Integration testing is familiar to everyone. Here, CI refers not only to testing, including development, integration of software and various services. Using my three-month project experience to describe the technical stack involved in a CI development and testing engineer.
We know that the traditional software engineer technology stack has code, database, Linux and so on. In CI, I don’t want to put in the database. This depends on the project. Some projects need to use the database, so you have to master the basic operations of the database. Some projects don’t need it. This database is not a necessary skill.
2.1 Programming language
Because of
continuous integration, everything needs to be coded in series for automation. Programming languages are the most important cornerstone, and without code capabilities, we will not discuss test development. For three months, I have used Java, Python, groovy, perl, shell. I wrote the sort order in this way to illustrate the frequency of using programming languages. The first one, many people will care about the question, choose Java or python, my answer is yes, because, in the future, you can not escape, you have to learn and use them.
Below, I write code for printing hello word in three languages (Java python groovy).
//java print hello world
public static void main(String[], args) {
System.out.println "Hello World!";
}
# python 3
print "Hello World!"
# python 2
print ("Hello World!")
// groovy
println "Hello World!"
Someone read the code of Python and Java in the front, and chose Python decisively. The reason is that Python is simple. So, after reading the code of groovy, are you still so determined to choose python. I plan and plan to learn a series of Groovy study notes. To learn Groovy, you must first learn Java, which is a must.
2.2 Linux master
Here Linux contains the basic operation and simple management of the
Linux operating system, certainly not the kind of Linux with a graphical interface. The simplest, common commands of the shell, these are used when we manually debug, and view the log. The second level of Linux requires learning shell programming. The shell can also be programmed to complete complex tasks and be automated. For example, you need to use the knowledge of Linux in the more specific code, complete with the code, log in to the machine with ssh, copy the file, replace the content of the file, how to write the log to the file, and so on.
2.3 The ability to use the tool chain
We have been talking about CI, CI tool chain has many powerful tools that can assist us to complete some tasks. The first one I want to talk about is the Jenkins platform. Jenkins is a CI build server platform developed in Java. There are many CI tools on the market, and Jenkins is the most popular tool. Nine and a half of 10 companies choose Jenkins because of his open source, free access, and powerful plug-in support. This blog has an introduction to the basic part of Jenkins. Next, I will mainly introduce the advanced part of Jenkins. Pipeline is the core function of the code. I should write a series of articles to get you started.
There are other technology stacks, I just listed the most common functions. For example, there are Docker, k8, ant, gradle, maven, etc.
3. Learning route (how to start)
For the second part, the technology stack I mentioned, I will give a learning route, just refer to it
I will not write the programming language and linux. This is a qualitative breakthrough in learning through long-term accumulation. Below, the main introduction, the learning and practice path of jenkins and groovy and docker. Jenkins mainly learns the surface function, the basic part, my blog already, here focuses on learning the pipeline part of Jenkins. Here is groovy, because pipeline is a script written in groovy language, so learning groovy is very important. Here, learning py, it is a pity not to learn java, at least you need more time to master groovy. Docker has been on fire since 2013, and it has been on fire. At least, you have to learn the basic docker technology, and learn to be as good as the basic use of the Linux system to be considered the basics of entry.
3.1 Learn groovy first
Learn groovy first, before you can write pipeline code, and then go to Jenkins for integration testing.
3.2 Learning Jenkins pipeline
Pipeline is code, this is the slogan promoted by jenkins. If you come to DevOps, you will often hear about the CI CD pipeline, and our QA or test development focus is here. In my upcoming article, I will introduce how to do the unit testing and debugging of Pipeline on Jenkins.
3.3 Learning Docker and others
At present, I also learn the basics of docker, and I don’t use it for a while, and I often forget it. The containerization technology solves the delivery and software deployment in DevOps, and accelerates the implementation of DevOps.
Here, we ignore the basic use of git or svn tools. At present, git should be more mastered, such as how to install git plugins on eclipse, how to pull and push code, how to resolve submission conflicts and merge requests and conflicts, and so on.
In general, there are many techniques, one by one to learn, slowly learn, or master quickly, it does require actual project support to exercise learning to make progress. At this point, I still want to swear, the starting point of everything is still the programming language, right. Java or Python is really not important for beginners. The important thing is your own interest, whether you can continue to study for a long time.