Skip to main content
22 answers
25
Asked 1714 views

What does a software testing engineer do and how do you become one?

I'm learning html, css and javascript on my own and starting to look at job postings to see which areas of technology most interest me. I thought I'd be going the route of web development but I came across a post for a Manual Automation Tester and it sounds so interesting.

Here's the description: "The team is looking for a test engineer that can help ensure the team produces quality deliveries. The services that this team creates will be in a microservice architecture, running in Kubernetes on AWS. The services will handle millions of REST calls per day. The service work will be primarily greenfield (created from the ground-up). The project management style is Agile, with elements of both Kanban and Scrum. The role of the Test engineer is to perform black box testing of the REST services, with a focus on functional testing. This includes alpha testing, acceptance testing, ad-hoc testing, and back-end validate of databases. The Test engineer will work closely with developers on a daily basis."

Can someone please tell me in plain English what this job actually is? I'm a really detail oriented person and I might like this field, but I barely know what they're talking about, lol. I've heard of Agile but not clear on what it is.

Many thanks!
#computers #software #engineering #testing #Agile #databases

Thank you comment icon A really great comprehensive article that answers all your questions on testing and how to approach it inclu what they do, the various types of testing, tools etc. https://www.guru99.com/software-testing-career-complete-guide.html Nihar Sharma

+25 Karma if successful
From: You
To: Friend
Subject: Career question for you

25

22 answers


6
Updated
Share a link to this answer
Share a link to this answer

Gabriel’s Answer

A Software Testing Engineer is an integral member of any software development team who follows a set of methods and activities designed to ensure that the software component/application/system/product is as per known standards and corresponds to all the specifications.

The general responsibilities of a software testing engineer job include:
• Work with the development team to learn and understand the functionality, design test plans, write test cases/scenarios/use cases, organize them into suites and capture them in version control with the other source code.
• Keep the test case suites updated to match the evolving functionality.
• Compare the test case suite to a functionality matrix to make sure that the right areas of the functionality are being tested at the right time, including the amount of coverage the tests provide.
• Set up test environments and provide automated solutions to execute test case suites or execute them manually to generate defect reports showing the team exactly what is broken and why, so that developers can take prompt action.
• Provide feedback on usability and serviceability, trace the result to quality risk and report it to concerned people.

Other skills and competencies include:
• An understanding of the software development life cycle as well as the business approach for the software
• Experience with the programming languages used by the development team to provide the right test solutions
• Analytical skills
• Decision making ability
• Attention to details
• Ability to work in a team as well as an individual
• Ability to work under pressure and maintain deadlines

As for the job description, there are several things being asked.
• Microservices - Very common software architecture nowadays.
• Kubernetes - A common platform to run stand-alone containers, generally consisting of microservices.
• AWS - Amazon Web Services, a cloud platform (similar to Google Cloud or Microsoft Azure).
• REST - REpresentational State Transfer, a common software architectural style for Web service with a known set of design constraints.
• Greenfield - A greenfield project is one that starts from scratch without any existing baseline. Good in cases where you want to define new frameworks or solutions without dealing with legacy implementations or constraints imposed by prior work. However, it can be a challenge if everything is new.
• Agile - A group of software development methodologies based on iterative development, where requirements and solutions evolve through collaboration between self-organizing cross-functional teams. Kanban and Scrum are subset process frameworks of Agile. Kanban is based on a continued pipeline of work where the team picks from the top of the queue. Scrum is based on time-boxed iterations where the team plans ahead for the work to be doing within each iteration.
• Black Box Testing - Behavioral Testing, a software testing method in which the internal structure/design/implementation of the item being tested is not known to the tester. These tests can be functional or non-functional, although usually functional.
• Alpha Testing - A type of software testing usually performed by internal employees of the organization to identify bugs before releasing the product to real users or to the public.
• Acceptance Testing - A type of formal software testing to determine whether or not the software satisfies the acceptance criteria and to enable the user, customers or other authorized entity to accept or not the implementation.
• Ad-hoc Testing - A type of informal software testing performed without planning or documentation, e.g., buddy, pair or monkey testing.
• Back-end Validation - Modern software applications are traditionally built in three layers: presentation, business logic, database. Back-end validation refers to the tests performed on the database to confirm "referential integrity", i.e., that all the queries work as expected and that table operations (e.g., deleting rows) do not leave any orphans or corrupt the remaining data.

In essence, the microservices offer REST APIs (Application Programming Interfaces) that can be called multiple times a day using known endpoints (URLs). Millions of times a day, according to the description. They want to be able to test the functionality of those services in a cloud environment including the transactions and data used by them.

Software test engineering is an exciting and critical area of any software project. It can make or break the software release, if not taken seriously.

There are some references below to get more details about the topics mentioned above.

I hope this helps.

Gabriel recommends the following next steps:

Go to https://microservices.io/ to get familiar with microservices
Go to https://kubernetes.io/docs/concepts/overview/what-is-kubernetes/ to get familiar with Kubernetes
Go to https://aws.amazon.com/what-is-aws/ to get familiar with AWS
Go to https://restfulapi.net/ to get familiar with REST
Go to the Agile manifesto at http://agilemanifesto.org/ and https://www.atlassian.com/agile to get familiar with Agile
Thank you comment icon Gabriel, thanks! I appreciate this thorough answer; it gives me a lot to explore. And thanks for taking the time to add links, that's really helpful. Kathy
Thank you comment icon This answer contains all the things which a software tester requires. Vinit Goyal
6
2
Updated
Share a link to this answer
Share a link to this answer

Shweta’s Answer

Software Testing is the very important part of software engineering. You might find multiple job opening with the terms software test engineer or QA (quality assurance ) Engineer. In earlier days most of the testing was happening as manual testing but it need more time and manual resources. Now a days automaton testing is preferred by many companies. It would be really beneficial to learn new and upcoming technologies. Python is very strong scripting language and getting adopted by many QA teams.

The main role and responsibility of test engineers are as below -

1. Go through the product documents to understand the functionalities of the software which needs to be tested.
2. Create the test cases to verify that written functionalities are working as expected.
3. Create the test cases in such a way that software should be able to handle the unexpected scenarios as well and respond accordingly.
4. Execute the test cases on the software and log the results.
5. If some discrepancy is observed in the behavior then issue should be reported to the development team that is why close interaction is needed between test and development engineer.

There are different kind of testing like functional testing in which software functionalities are tested, Performance testing in which software is loaded with multiple calls to test its performance. This helps to stabilize the software for high load.
Thank you comment icon Thanks Shweta! I appreciate the details in your response. Kathy
2
2
Updated
Share a link to this answer
Share a link to this answer

Aditya’s Answer

A test engineer is someone who understands what problem a piece of software is solving, develop in detail test cases both positive and negative which can help in validation of the piece of code/software system developed by another engineer

These days a test engineer not only helps with the test cases but also writes automation (selenium, integration testing) which would need some programming skills good understanding of object oriented programming.

Coming to your question about Agile - It is a software development methodology. You may have heard of waterfall methodology in the past. https://en.wikipedia.org/wiki/Agile_software_development link gives you an idea of what agile is. Most of the companies these days are trying to adopt some sort of agile methodology, so reading about it will help. This is something you will gain experience on your job if this is the first one.

Also the job description talks about AWS (Amazon web services), REST, Kubernetes - These are some of the modern tech and would fall under cloud software development.
Thank you comment icon Hi Aditya, Thanks for your reply! Kathy
2
2
Updated
Share a link to this answer
Share a link to this answer

pranab’s Answer

Testers job will be creating test cases and will likely be testing different APIs that are used and validating that data is correctly being sent to a database and other tasks of a similar nature.

There are two types of testing - Manual and automation.

Now a days most of testing is done through Automation.

Knowledge of programming language like Python , R will help you

You can choose online certification for this great career choice
2
2
Updated
Share a link to this answer
Share a link to this answer

Judi’s Answer

Working in Agile as a test engineer can be very appealing and different than other development frameworks. However, there are some important things you should consider about Agile before you interview. My below information helps give you insight to the Test Engineer’s role from an Agile Development Framework Perspective.

There are different types of Agile. You can find great information about SAFe Agile here https://www.scaledagileframework.com/. Find out what type of Agile they follow. My below comments are related to SAFe. SAFe is becoming more prevalent in medium to large companies.

Agile is all about working as a team, and that the team is empowered to help make development decisions as they learn more about what they are developing. Testers play a key role on the team. And can easily move to other roles on the team as they are the most likely to become subject matter experts on the product they are testing.

Agile development teams (made up of 5-15 people) break down their work into smaller manageable segments of work delivered in Sprints. They build, test and deliver their planned work within 1-4 weeks depending on the company. So the goal is to be accurate, fast and decisive as the team rinses and repeats, being measured on their steady delivery until their product is done.

Agile teams are made up of a product owner, developers, testers, business analysts and supporting roles like architects and DBAs who are not team members but provide support. A lot of Agile teams are moving away from having specific testing roles and instead expect the Business Systems Analysts to test hence keeping yourself flexible is good. Technically everyone on an Agile Team should be able to backfill each other.

Depending on the assignment, a Tester can be focused on “Verification“ (confirming the engineering team delivered to specifications - typically a more technical process, more time spent in the database, development tools and backend) or “Validation” (confirming the design solves the customers problem - typically a little less technical, more time spent in the user interface, data, and can be customer facing).

To work on an Agile team as a tester you need to be comfortable breaking down development stories into test scenarios that are agreed to by the team, and being held accountable to the testing you agree to complete for each sprint. Testers often ask the difficult questions the architects or developers forgot to think about.

There is often an agreed- upon ratio of testers-to-developers that varies per company and even per team. It is a good idea for you to ask about their ratio when you interview. You may not want to work for a firm with only 1 tester to 10 developers unless they have lots of automation.

Hope this helps you understand the role of a test engineer on an Agile team.
Thank you comment icon Thank you Judi! Your answer is really helpful and so thorough. I'll look further into Agile; thanks for the link and for taking the time. Kathy
2
2
Updated
Share a link to this answer
Share a link to this answer

David’s Answer

Software testing is a very enjoyable career choice. You will likely need more than just html, css and javascript, try learning languages such as C#. The job will be creating test cases and will likely be testing different APIs that are used and validating that data is correctly being sent to a database and other tasks of a similar nature. The Kanban board will be a board with many tickets on it with different things that need to be developed and tested. There are many online courses you can take to learn more about this line of work. Software testing is a great career choice.
Thank you comment icon Hi David, Many thanks for your answer. I'll keep C# in mind as a next language as I continue learning more about software testing. Glad to hear it's something that people find enjoyable. Thanks! Kathy
2
2
Updated
Share a link to this answer
Share a link to this answer

Chanchal’s Answer

In very simple terms - Software Test Engineer job is to test the software and certify that it is fit for the purpose it is built for. It is a very big responsibility considering that software is used in every field of life and you might be certifying the software of medical purpose where some life is dependent on software you are testing and certifying fit to use.

Software testing is a science and an art as well. It is a science because you need to understand and aware of the technologies to test the software in test. It is an art because a tester sometimes also drive testing based on instincts as to where most of the bugs can reside in software.

In your day to day job as a tester you will study the requirements documents, software designs and try to get your head around that why , how and to whom this software is built for. Then based on the documentation you have with you; you plan to create the test scenarios which can be exercised in real life when this software in question will be used by the end users. And then you elaborate these scenarios into test steps which are more detailed like how to click the button or enter the name in the text box etc. After writing the test cases, you will execute them in the test environment and record the results, raise defects if any, and interact with the stakeholders to get them fix and test. You will love your job more when you find anomalies that could have resulted in big issues when software is launched in the market.

Now above is the most simplistic approach I have provided. There are several types of software testing but for the sake of keeping my response simple to understand, I will quote only few important one's here. Functional Testing, Performance testing, Security testing, Operational Acceptance testing are few of the important ones.

The career path of software tester is very interesting, Now think that you have been testing banking softwares from quite a while and now gained knowledge of the system and business domain. You can easily grow your career then to Business Analysis based on the Business Knowledge you have gained, can grow your career to Software Developer because of the technical skills, can be a Manager in Software testing or a Test Architect and provide consultancy in automation.
2
1
Updated
Share a link to this answer
Share a link to this answer

Andrew’s Answer

Test engineers need to be methodical and have patience to go through and document test cases and results. It is definitely valuable and can be rewarding if that suits your personality. (plus opportunity to work remotely since it's software)

Test engineers need basic software skills. You can get yourself familiarized with basic software tools, like Linux, git, etc, which are people tend to use these days. What language to use depends on company and projects. You can get some basic understanding of building, compiling and running software. Because that would be something that you would you every day as a test engineer.

Without going into a particular job, test engineers comes up with test cases and test the software to make sure it is doing what we think it should do. A lot of times, when a developer changes something in the software, it has unintended consequence that he/she didn't foresee. The job of test engineer is to make sure that (1) new function works as designed and (2) nothing else breaks. As you can imagine, there's are lots of opportunity to automate many of the tests since you will testing those cases again and again for each iteration of the software.
Thank you comment icon Andrew, many thanks! Your explanation in normal, everyday language really helps me understand what a test engineer actually does and why it's important. Sounds interesting! Thanks again. Kathy
1
1
Updated
Share a link to this answer
Share a link to this answer

Patricia’s Answer

Hi I work with a lot of test engineers, I hope the following can help you:

A Testing Engineer is required to fully test the product or system to ensure it functions properly and meets the business needs.

The project management style is Agile, this means that the team works for short periods of time (no more than four weeks per sprint) to increase the product being delivered (the system)

A Kanban Board is a visual tool that gives an overview of the current work status and simplifies team communication.
Thank you comment icon Hi Patricia, thanks for your answer! Kathy
1
1
Updated
Share a link to this answer
Share a link to this answer

Nikita’s Answer

All these answers are great and provide amazing insights into a career in Software testing. Just something to research and think about is, software testing is becoming the responsibility of software developers in more and more companies. A lot of companies are eliminating this role (specifically application testing) and tasking software developers with manual and automation testing. Having said that, there will always be some roles in testing that won't be eliminated. My advise would be to do a little more research on the future of software testing and wish you all the best!
Thank you comment icon Thanks Nikita! Your information on what's happening right now with software testing is really helpful and good to know. I'll keep it in mind as I learn more. Kathy
1
0
Updated
Share a link to this answer
Share a link to this answer

Madhuri’s Answer

It's great to see the detailed roles and responsibilities of a Software Testing Engineer being laid out in previous threads. Software Testing is an inseparable part of Software Development Life Cycle. Software Testing Engineer is responsible for the overall quality of a product/application and ensure that the failures are detected beforehand and rectified before the code is migrated to production.
The industry is leaning towards automation testing and encourages software test engineers to develop automated tests. This certainly needs some programming language knowledge like Java/Python, etc.
I would recommend learning software testing principles, testing, tools , a programming language if you want to try out the option of automation test engineer. Having said that, there are still some companies who need manual test engineers where programming knowledge may not be needed.
0
0
Updated
Share a link to this answer
Share a link to this answer

Harsimran’s Answer

An intermediate-level software testing position usually requires at least three to six years of software testing experience or a combination of experience and education.There are certain skills that are critical if you are considering becoming a software tester. You should have thorough knowledge of several testing tools, be a multi-tasker, and be fluent in Windows, Linux, and/or UNIX as well as command-line and scripting tools. Excellent communication skills are a must, particularly in terms of customer service, product management, operations, and development. You should be able to understand environments or platforms as well as different development methodologies such as Scrum and Agile, and you will need to perform software testing in all phases of the software life cycle. Finally, knowledge of programming languages such as Ruby on Rails, PHP, Python, SQL, C# or C++, JavaScript, and Java is important for success in this career.
Thank you comment icon Thanks Harsimran! I appreciate your detailed list of skills someone would need for software testing, that helps paint a complete picture. Many thanks. Kathy
0
0
Updated
Share a link to this answer
Share a link to this answer

Gary’s Answer

Great answers to this question! I'll try to answer with a little different slant. All of these skills that were mentioned are valuable and necessary if you want a career in QA but in and of themselves they are not enough. In all the hiring I have done for QA engineers, there are two intangible that I will normally put ahead of all the technical knowledge and they are passion and inquisitiveness. Any good candidate can learn technical skills but great testers are usually those that need to understand what they are working on in great detail. A lot of times they were the people that took stuff apart when they were younger just to figure out how it worked.

I always joke that QA engineers have their heads on 180 degrees backward because our brains work differently. We want to figure out how to break something, not how to make it work. You end up doing it without even realizing it, going to websites and noticing issues or looking at plans and pointing out 2-5 things that could potentially go wrong. All of these show a natural inclination towards this profession.

So what questions should you ask yourself if you are interested in a QA career?
- Do you seem to be the person that people come to when they need something reviewed?
- Do you love to figure out problems and unique ways of addressing them?
- Do you want to push the red button even though there is a sign that says "don't push the red button"?
- Do you get satisfaction in finding issues and addressing them before they are a problem?

Lastly, to address the career future, as some have pointed out, the role of a tester is absolutely changing. A lot of people in the field are already transitioning their skillset to adapt to those changes. The other truth is there will always be a need for manual testers. Not every company is going to invest in Automation or AI testing. It will still be a good place to get in the door and build your experience and no automation can beat out a human mind to come up with off the wall scenarios to test. If you have the aptitude, absolutely go after an automation entry-level role. An AI system can write thousands of tests in a short time and even self heals themselves base on changes to the code, but they will still need people to monitor, tweak and adapt those tests, to build suites for specific purposes and work more tightly with development to build quality into the code from the start.

So QA is not going away, It's changed drastically in the past 20 years and will change more in the next 20 so don't be afraid of the career, but be adaptable when that change comes.

0
0
Updated
Share a link to this answer
Share a link to this answer

Tester’s Answer

Are you ready to dive into the dynamic world of software testing and secure a prosperous career in the tech industry? Look no further – our Software Testing Training Program is your gateway to success!

Why Choose Our Software Testing Training?

Expert Guidance: Learn from industry experts with years of hands-on experience who will mentor you through every step of your journey.

Practical Experience: Gain real-world exposure with hands-on projects and simulations, making you job-ready from day one.

Recognized Certification: Receive a prestigious certification upon course completion, giving your resume the edge it needs in the competitive job market.

Flexible Learning: Tailor your learning experience to your schedule with options for both in-person and online classes.

Career Support: Our commitment to your success doesn't end with training. We offer career support services, including job placement assistance and interview preparation.

Affordable Tuition: High-quality education doesn't have to come with a high price tag. We offer competitive tuition rates and financial aid options for eligible students.

Alumni Network: Join a thriving community of successful software testers who have kickstarted their careers with us. Networking opportunities abound!

Cutting-Edge Curriculum: Stay ahead of the curve with a curriculum that evolves with industry trends and emerging technologies.

Proven Success: Our graduates are in high demand across the industry, thanks to our rigorous training programs.

Ready to embark on a journey that will transform your career prospects? Join our Software Testing Training Academy and pave the way for a bright future in the tech industry.

Don't miss this opportunity to step into the exciting world of software testing. Your future begins here!
Visit - https://testeracademy.com/
0
0
Updated
Share a link to this answer
Share a link to this answer

Faten’s Answer

Testing is a crucial part for the success of a delivery. It is an integral part of the SDLC (software development life cycle) whether you are working in Agile or Waterfall.

Your role is to guarantee that the application (web, mobile, API ...) behaves exactly as written in the requirements. Purpose is to write tests that will run automatically and in case of success, delivery can be done automatically too (aka CI/CD).
0
0
Updated
Share a link to this answer