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
22 answers
Gabriel Fernández
Gabriel’s Answer
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:
Shweta’s Answer
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.
Aditya’s Answer
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.
pranab’s Answer
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
Judi’s Answer
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.
David’s Answer
Chanchal’s Answer
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.
Andrew’s Answer
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.
Patricia’s Answer
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.
Nikita’s Answer
Madhuri’s Answer
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.
Harsimran’s Answer
Gary’s Answer
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.
Tester’s Answer
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/
Faten’s Answer
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).
Ravindranath’s Answer
They are the Quality Assurance experts who test new digital products thoroughly to ensure they have no bugs, eliminate poor performance, and get rid of interface issues. To do this, testers perform various tests at different stages of the software lifecycle.
Some examples of such tests are stress, performance, functional, scalability, or user acceptance.
Since software testing is so critical to the quality and usability of the final product, testers are usually brought in at the early stages, such as planning and design. They remain involved throughout the process and later during support as well. Most testers work in development teams. Today, many software products are created following the DevOps methodology, which combines development and operations. In this methodology, development, testing, and delivery work in a continuous loop with the help of agile, lean, or Scrum frameworks and approaches. All in all, software testers make sure that the software looks good in the eyes of customers and works just as advertised.
To my knowledge, Technical skills every software tester need
1. Basic knowledge of Linux commands
2. Hands-on experience with test management tools
3. Knowledge and experience in defect tracking tools
4. Experience with automation tools
Don’s Answer
A tester and and software developer need similar soft skills. They need to be organized, methodical and they need the ability to think through scenarios to identify where problems (bugs) might exist. Generally QA engineers are better at that last one, that's why they find so many bugs ;)
To answer your specific questions...
Q: 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.
A: Think of a service as a small computer program that does something specific, like sending an email. A service can be setup to start when your computer starts and will run in the background performing its general task. For example, whenever your application needs to send an email, instead of the application doing it directly, the application would hand the email to the email service to perform the work. This keeps the main application from having to do too many things that could end up slowing down that main application.
AWS stands for "Amazon Web Services" and Kubernetes is a platform that helps manage things running in AWS.
Q: 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.
A: "REST calls" are a type of API (Application Programming Interface). Most computer programs have APIs. An API allows computers to talk with each other instead of having to go through the application user interface (UI). For example, if I want to create an account on Career Village for 100 people, I can go to the login screen and type in information 100 times or, I can call the Career Village API and create 100 accounts in seconds.
Q: 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.
A: The Test engineer is going to use tools to manually test that API. The engineer will work with the development team throughout the product to test the APIs from the beginning (alpha phase) through release. The engineer will also validate the data is correct by looking in the database directly.
In short, you would be working on a small computer program that will run as a service. You will be testing that API calls made into the service work correctly and that the information is saved in the database as expected. You will also need to be run scale and performance tests against the service to be sure it can handle millions of requests per day.
Hope this helps!
Sony’s Answer
if you are a detailed oriented person, this is definitely an option you should consider. QA tester job needs lot of patience, flexibility and replanning skills
There are different types of SDLC cycles. Agile is one of them. Testing in Agile environment begins at the start of the project with continuous integration between development and testing teams.
Shak’s Answer
Krishna Chaitanya’s Answer
All the fancy tools that you see in the market help you to reduce the manual effort in running the regression test cases. However, the ultimate objective of uncovering the defects and making sure that the software is stable does not change.
Domain knowledge, attention to detail and good eye for catching the errors play key role in becoming a succesful software quality analyst.
Delete Comment
Flag Comment