SDLC/AGILE/PROJECT AND FRAMEWORK QUESTIONS Flashcards
What would you say, when cannot answer interview question?
To be honest I researched it. But I don’t remember it right now. That’s why I don’t want to say anything wrong. But I will check it out right after the interview.
What is regression testing and how do you run it in your project? How many test cases are there and how often do you perform regression testing? How long your regression suite runs?
Regression testing is a key part of checking if software still works well after changes. We do this in different situations, like fixing bugs to make sure the problem is solved without creating new ones, adding new features without messing up existing ones, modifying existing features without causing unexpected issues, and fixing performance problems to keep everything stable. In our project, we have around 500 test cases, taking about 3-4 hours, with 75%-80% automated. We release updates every other sprint in our agile process. Automation involves tagging scenarios like @Regression in Cucumber and running them through the Regression runner class using Jenkins. I also handle manual tests and do ad hoc testing. After testing, I analyze results, find reasons for failures (like environment or application issues), and retest to confirm. If it’s an app issue, I reproduce the bug, check against requirements, and log it in Jira with details like severity, priority, steps to reproduce, and screenshots.
Tell us one challenge while running the regression suite?
We don’t really face challenges running the regression suite because I always try to maintain my regression suite periodically, but sometimes it’s because of the server, or the system we can get some unexpected errors like synchronization issues.
What is smoke testing and how do you run it in your project? How many test cases are there and how often do you perform smoke testing?
Smoke testing is a crucial phase in software testing that focuses on checking the basic functionality and stability of software build. In our project, we run smoke testing by deploying the build to the QA environment and verifying critical functionali-ties. If successful, the build continues to detailed testing; else, it’s rejected or reverted. We’ve start the smoke test process using Jenkins, a web-based tool. Our smoke test includes around 15 to 20 test cases that cover crucial features of the software. Jenkins triggers the smoke test automatically for each code change, providing quick feedback within minutes. we perform smoke testing every time there’s a code push. This make sure always checking and quickly find problems, helping to develop efficiently and solve issues on time.
What is Automation Testing? What are the benefits of Automation Testing?
Automation testing is when special tools run tests on software. It has benefits, like faster feedback and faster results, making the development process more efficient. Although there are higher costs at the start, it saves money in the long run by reducing the need for fixes after release. Automation testing also improves efficiency, it needs less observation and covers more features. The tests can be reused, making assessment easy and reducing testing time and costs.
What type of tests have you automated? When do you do automation in your sprint? How many test cases have you automated per day?
Mostly I have automated functional regression tests (including smoke and regression, database, and API testing) and we do in-sprint automation for user stories. How about you how do you do automation in your company? When devs are done with their part, When code is deployed to QA/test environment. When testing framework is set up,When all manual tests are done When Smoke tests are passing It all depends on the functionali-ty and complexity of the scenario. I always follow coding standards and focus on the quality of my scripts no quantity. Sometimes just find a right locator and specify dynamic xpath takes time, Since I work in an Agile environment some days will be spent attending sprint meetings. When developers fix any bugs, I start on retesting that bug based on its priority and severity. and when some of the team members have any challenges and need my help, I always try to help them.
Why does manual testing still exist, even though automation has been proven to be more efficient?
So, when adding a new feature, it’s important to start with manual testing to make sure it meets the acceptance criteria. Manual testing is cost-effective for simpler applications and provides flexibility. Yes, automation testing, is very useful, and involves writing test cases, but it can take longer for small changes. Manual testing adds a human touch to making sure user-friendliness, especially in identifying unexpected bugs and reproducing issues found by customers. In agile environments, manual testing adapts easily without extra work. While automation is good, manual testing stays critical for finding issues automation might miss.
Let’s say you’re given some test cases; how do you decide them to automate or not? Can you tell me any specific factors?
Before I start automation, I do automation feasibility. There are multiple factors that I decide the test cases to automate such as Features that are critical to the application and if they fail cause important damage to the business, Tests that need to be run against every release of the application, such as smoke test and regression test, tests that are running more than once, tests that need to run against different OS & Browser combinations, tests that execute the same workflow but use different data for its inputs for each test run.
Automation challenges and how did you solve them? What are the challenges you face when running automation scripts? Overall challenges?
I had a challenge overall on Selenium about switching frames a couple of times; in some applications for better visibility, developers use the frame concept in web pages, and in this case, if the element exists in frames, then we have to switch to that frame first by doing switchTo().frame() then once we are inside the frame, we can perform tasks on the elements within it using standard Selenium WebDriver commands (like find elements, send keys, click, etc.) once we are done with the frame we need to switch back To the parent window: and to do that, we use driv-er.switchTo.defaultContent();
What challenges have you had in an agile environment?
Changing Requirements, Not Enough Information on the Story, Estimating Time for Completing Task, Waiting on Development to be completed before testing
Tell us some key challenges you face in the Testing industry?
Requirements changing, when the application is not stable, rush testing to meet the deadline, Unclear requirements, Domain knowledge and business user perspective understanding, lack of Regression testing or not enough, lack of skilled testers, lack of resources, tools, and training.
Tell me about your challenges?
As an Automation tester, I had several challenges during projects I have worked on. so sometimes it can be tough when requirements are not clear or keep changing. This can affect how we test things, it’s important to communicate well and make sure we’re testing what’s needed. Being clear about what we’re testing helps us find and fix problems early. This and other challenges (such as miscommunication, limited time, last-minute changes, etc.), I see these challenges as opportunities for my growth and improvement. Overcoming these difficulties requires a combination of technical knowledge, effective communication, and a hands-on approach to problem-solving. Continuous learning and adaptation are key to navigating the developing landscape of software development and QA. Technical: As a QA Engineer, I often deal with technical challenges when testing software. One big task is staying updated on different technologies and tools, so I make sure to learn continuously through training and exploring resources. This helps me adapt to changes and keep our automated tests effective for finding issues. Another challenge is making sure the software works well on various devices and browsers. Even though it’s tough, I focus on thorough testing and solving problems, contributing to delivering good-quality software that users like. Overall, my active learning and problem-solving approach help me handle technical challenges in my role as a QA Engineer.
How did you conduct Batch Testing in your project? ( groups (batches)
When we run multiple scripts, with Automation Tool, that is called batch testing. We performing Batch Testing in Cucumber using the @Tags options for running the batch of test cases. But when I was using the TestNG Testing Framework I was using @groups.
What drivers do you use in your framework?
I use ChromeDriver, InternetExplorerDriver and GeckoDriver. also according to our reports most of our users are using Chrome or Internet Explorer therefore we mostly perform our execution in the Chrome browser and ie. But we also try to utilize Firefox with Gecko driver in order to achieve compatibility within all browsers
How would you handle test data in your framework? How do you run tests using excel data?
In my Cucumber framework, I use Scenario Outline, DataTable, and Excel with Apache POI for managing test data, while in my TestNG framework, I choose Excel with Apache POI and DataProvider for handling data effectively.
Tell me about your reporting systems? Where do you store the test results/reports?
We are using Cucumber Reports, Reporting plays a very important role in any project because at the end of the day everyone is interested in seeing the reports, not the code. So, Cucumber provides a default HTML report and, in my project, we are using the Maven Cucumber plugin which is showing the percentage of passed and failed tests. It also offers a view with detailed execution status in numbers, it will also help the user to analyze and debug the issue. Users can also access the test data and Test evidence from reports, which are the most important aspects while fixing the bugs. And in the Testng reports, once we execute the tests, TestNG generates a test output folder at the project. It combines two kinds of reports. Detailed Report - report in the <index.html> file. It combines detailed information like the errors, test groups, execution time, step-by-step logs, and TestNG XML file. Summary Report - it is the trimmed version and informs about the no. of “Passed”/” Failed”/” Skipped” cases. You can see it from the <emailable-report.html> file. Extend Report - Extent Report is an HTML reporting library for Selenium WebDriver for Java. It is a great tool we can use within our automation framework to make excellent execution reports.</emailable-report.html></index.html>
Walk me through the decision process of deciding which tests to automate;
I prioritize automating test cases that need to be run frequently, like regression, smoke, and sanity tests. Before deciding which ones to automate, I make sure the application is stable. I avoid automating tests for frequently changing features or those that run rarely or only once. I choose usability and exploratory testing for these scenarios.
What are the advantages and disadvantages of automation testing?
The advantages of automation testing is needs less people, can be reused, covers more tests, it’s reliable, it’s runs tests at the same time, and it’s fast, for the disadvantages it takes more time to develop and maintain, there’s costs for tools, it requires skilled people, setup is complex and debugging test scripts can be challenging.
Tell us about your experience with different testing methodolo-gies. How do you decide which one to use for a specific project?
I’ve worked with various testing methodologies, including black box testing, white box testing, regression testing, exploratory testing, and acceptance testing. My choice of methodology depends on the project’s needs, development approach, and available resources. For example, in Agile projects, I typically select exploratory testing to adapt to that growing application. If this is a project with several test cases, I prioritize automation testing to save time. Before choosing the methodology, I carefully analyze project requirements to identify crucial testing features. My decision is then based on what is best fit for the project.
If I hire you and ask you to come and start automation, how would you do it?
I start by checking if automation is a good fit for the application. If it is, I use tools like Selenium. First, I manually explore the app, find tests to automate, and do a quick smoke test for the basics. Then, I set up an automation framework for organized scripting, making sure the scripts are simple, reusable, and well-explained. I do regular checks and fix any issues. Before jumping into automation, I make sure it makes sense for the app, considering tests, tools, team size, and budget. Planning involves choosing a framework, scheduling, and communicating with the team. When writing test scripts, I focus on reusability and clarity. During execution, I aim for good coverage, stability, and efficiency. If there are any app-related issues, I report them. I analyze results using reporting tools and share findings with the team or client. So, this process involves checking, scripting, testing, and reporting for effective automation.
Describe what you might like and dislike about the work?
I really like working on challenging projects where I can use my skills. I also like being part of a team where we share ideas and work together. On the not-so-good side, when things are unclear, like not knowing what’s expected, it makes the job harder for me. Also, not getting recognized for my work is something I don’t like much.
Conflict management: “Describe a conflict you’ve had with other staff members and how you resolved it
in my previous job, our team had a tough project with a tight deadline. There was a disagreement between the development and testing teams about fixing bugs. I organized a meeting to talk about the issues, encouraging open communication and teamwork. We decided to focus on the most important bugs and setting up a better way for the teams to communicate. This improved how well the teams worked together, kept the project on track, and met quality standards. Resolving the conflict made the team more efficient and contributed to the project’s success.
Please tell me about a time when you saw room for improvement in some area of your work environment or a process that could be more efficient. What would be your action towards it?
Once, I noticed that the bug reporting process was causing delays in fixing issues. The current system was unclear, causing misunderstandings between the development and testing teams and slowing down the project. Seeing the need for improvement, my task was to make the bug-reporting process smoother for better communication and faster issue resolution. To address this, I started by reviewing the current bug-reporting workflow. I worked with the team to understand their challenges, and we found that there were inconsistencies in the information provided, making it hard for developers to understand and fix reported issues. In response, I suggested using a standardized bug-reporting template. This template included important details like steps to reproduce, expected and actual results, and system configurations. I also encouraged the use of screenshots and screen recordings to give a clearer picture of each reported bug. To make sure everyone could use the new template effectively, I managed training sessions for the team. I also set up regular feedback sessions to make any necessary improvements. The introduction of the standardized bug reporting template significantly improved the efficiency of the bug resolution process. Clear bug reports led to faster issue fixing by the development team, and communication between the teams got better, reducing the time spent on clarifications. As a result, we kept better track of project timelines, and the quality of the software we delivered improved. This experience confirmed my ability to identify problems, suggest practical solutions, and make changes that positively affected the team’s efficiency and project outcomes.
Describe a time when your supervisor or a co-worker asked you to help out and doing so required extra work outside your established responsibilities or staying later than you anticipated. What did you do, and how did you feel?
So, one time when my co-worker immediately needed assistance with our project. Although it fell outside my regular responsibilities, I knew the importance of the task and I happily accepted to help. This involved putting in extra hours and working beyond my usual schedule to meet the project deadline. I quickly reviewed the requirements, prioritized my tasks, and reorganized my schedule to adapt to the additional workload. While it required personal sacrifices and extra effort, I understood the importance of supporting the team and ensuring the project’s success. Throughout the process, I maintained open communication with my supervisor and kept them informed about the task and the steps I was taking to manage the workload. Despite the initial challenges and added pressure, the successful completion of the project brought a sense of accomplishment and strengthened the value of teamwork and flexibility in achieving common goals.