When I accepted the opportunity to work for HCSS as a Quality Assurance Automation Intern, I really had no idea what to expect. I originally wanted to work in software development, but all of the positions were already taken. I knew a little about Quality Assurance (QA) from my previous job but nothing about test automation, so I was all for learning something new. Luckily my supervisor sent me some links, so I was able to do a little research before jumping in. The team was also very helpful if I had any questions.
HCSS also has a very in-depth training program for just about everything, including automation. The training is similar to a classroom setting, with a lecture, some practical application, assignments, and a follow-up meeting to go over what we have learned and how we applied it to our work.
I was slightly concerned about going into QA instead of development because I was worried I wouldn’t get much coding practice in — and for a Computer Science major, this is important. Fortunately I can code my own test scripts in C# or use the software tools. I didn’t have background knowledge in C#, but, like most programming languages, the main difference is syntax. This was awesome because I was learning a new language and a new skill.
Let’s Get Technical
What I learned about QA
We don’t learn about QA in school, which is unfortunate because it is important to know and not many programmers or developers like testing (unless you’re testing out a friend’s program and he dares you to break it). We would all like our code to be perfect, but it almost never is, and even on development teams there is a lot of code review to help with good coding practices. I knew there was testing done prior to releasing an application or some new software, but I didn’t realize the extent of the testing or the amount of planning that goes into it.
After a few weeks I realized just how wrong my perception was. QA is a process used in every phase of development for new software or existing software with new features. It consists of reviewing product requirements, collaborating with developers, functional testing, documenting and reproducing defects, and much more. It is one of the main processes that gives the go or no-go with a software release. In short, QA develops and executes test strategies for software before it is even software and continues to test features after release. There are many things we don’t learn in school as Computer Science majors, and QA is one of them.
Automation
For the few months I have been at HCSS, my knowledge of QA has grown, and I have realized just how important it is in the development process. But now let’s get into Automation.
One of the main differences between QA and automation is how the testing is actually performed. For starters, automation does not require anyone at the driver seat while testing is being done. You can write scripts that will test features you specifically have chosen. This makes automation a very efficient way to find bugs since it can be run at any time. It also helps by reducing man hours spent on testing, giving QA leads more time to focus on more pressing matters, like reproducing and fixing a known issue or testing around a known issue prior to release. It can also help with smoke testing after a release to ensure the product features are working properly. If an issue is found, the automation software lets you know when and where the failure occurred so it can be investigated. Automation essentially helps by testing features that testers and users work with on a day-to-day basis and narrows down failures.
Cultural Experience
HCSS has a lot of cool things going on each day, which was something I wasn’t really used to. They have a gym, a track, a slide, a game room, and we even have a game night after hours, which is pretty awesome. HCSS also provides lunch every Friday, and members of the QA department provide breakfast for the team every Wednesday. When the QA department hired a lot of new people, they decided to have a meet-and-greet BBQ, which gave a lot of us the opportunity to meet each other. Each team also has a “Team Building Budget” that allows team members to go out and do activities together. Automation went to go see War for the Planet of the Apes. There is always something fun going on, and that’s just some of the things that makes HCSS culture amazing.
My Experience With HCSS And The Automation Team
My experience here at HCSS and on the automation team has been very positive, and it has a lot to do with the culture. I don’t know if I would have enjoyed myself as much if I had taken a job somewhere else. HCSS genuinely cares about their employees, their families, and the community. It is literally the best place I have ever worked. The automation team has helped me develop new skills and a new outlook on development. I am truly grateful for the experience and I am glad that I will continue to be a part of HCSS for the fall semester. I will share more experiences in the future, and I hope you come by to check them out.