Quality Assurance is one of the most significant aspects of software development process. Testers and developers have therefore identified the need for cultivating QA and testing practices that can empower the technology of the future. Either it is enterprise-based applications or software meant to serve the masses, a well-defined test process is mandate to compliment the release lifecycle.
When it comes to the implementation, the testers need to align with changing perspectives that only comes from discussions and communication with QA enthusiasts. And to make the process more convenient, We at BugRaptors constantly work with influencers from different origins, cultures, values, and ideologies to understand anything and everything that could drive the change.
This time, we had an interview with K Sandeep Dinesh, a seasoned software development engineer at Test from Waterloo, Ontario, Canada. He is a master of Continuous Integration/ Delivery/ Monitoring, Test Automation, Automated Non-Functional Testing (NFT) practices.
With all of the aforementioned expertise, we found it extremely necessary to communicate with K Sandeep and therefore our in-house expert, Kanika Vatsyayan, Vice President, Delivery & Operations, BugRaptors approached him for the detailed interview talking about the automation testing practices, the distractions faced by testers, and the changing QA practices.
So, without taking much of your time, let us quickly jump on exploring our expert K Sandeep’s take on all the queries of the tester’s community out there.
Kanika Vatsayan: How do you defeat distraction?
K Sandeep Dinesh: The biggest cause of distraction, in my view, in the QA automation track is the idle time we wait for a test to execute and then do the next step, say write a new test or do documentation of the existing test. While I admit some amount of anxiety/ excitement about how the test is doing is required and helps in the focus to get the job done, in the long run, there is a good chunk of productive work hours lost just “waiting” for the test to run. This idling of mind may cause distractions and loss of appetite for the job at hand. Here are a few tips which I try on my end to ensure I spend less time “waiting”
Make your test infrastructure faster
Batch together tests and execute
Instead of waiting for test results of each new test, run a bunch of new tests together so that you have enough time to let the test run in the background and you can work on the previous failures or documentation or formatting of your test code.
If I am distracted about repetitive tasks, I usually timebox the activity, and allot remaining time to automate parts of the tasks or find better efficiency in the activity through better test data, strategy or process.
It’s also possible that certain distractions are due to the connected social and business climate in which we are living in. In terms of stability of the job and skill set concerns - one has to understand that any company wants your time to do a job, for which they pay you for; how valuable you are to the company is decided by how much efficiency you bring to it and how competent you are in dealing with newer technical challenges. Upskilling has to be our own responsibility, there is no other way of doing this. The same cognizance has to be there about the business model of your company, it's very important to read between the lines of managerial talks you would listen to, and gauge where the wind is flowing, and steer the sail of your career boat.
Social media - At the workplace, it's very important to keep these away for better quality time spent at work than wasting attention on responding to notifications. Apart from yours, you waste a friend's quality time at work too. Also, unlike your social media feeds which are curated by tech giants based on our online activity; do know that a workspace is filled with real people with diverse experiences, and viewpoints. So, in my view, mixing business, teamwork, or friendships with political viewpoints is not a good idea.
Kanika Vatsayan: What do you think about changing QA practices?
K Sandeep Dinesh: Every now and then a new buzzword in Software practice arrives, here I am not even limited to QA as a function or department and most often everyone wants to jump on to that gravy train. It’s important to understand why the existing QA practices were set in place, and constantly evaluating how to improve the same. Yet, it is crucial that we don’t bury our heads in sand, and not listen to new ideas. Evaluate how the new practice or methodology adds value to your existing test strategy with an open mind - be it a training workshop or team brainstorming, also validating your findings with others experts in this field. Incorporating any new practice should be like moving your grains from one barn to another; ensure the existing stock you have doesn't wilt and neither does it get lost in a fire!
Kanika Vatsayan: What kind of input do we need from the end user to begin proper testing?
K Sandeep Dinesh Understanding the features of the application under test like what customer problem does it solve, the usage scenarios, and the clarity on technical specifications of the application are a must before starting a testing cycle properly. All the assumptions and understandings should be discussed and signed off with the stakeholders like the development team - at the engineer level and architect level, product manager and/ or business analyst. Don’t just rely on informal settings like word of mouth, test cases documentation & sign offs, emails, instant messaging in team channels all go a long way in mitigating unknown risks and ensuring we are testing the right way.
Kanika Vatsayan: If you were sitting next to a leading expert in your field, what would you ask them?
K Sandeep Dinesh I would be talking about shifting quality left into the development cycle, and ways to evangelize quality in the organization. Also, I would be keen on reviews about new tools and technologies for test automation and continuous testing.
Kanika Vatsayan: What’s something everybody in your industry should stop or start doing?
K Sandeep Dinesh:
Talk more with your teammates - developers, product managers, business analysts, about ways to improve product quality on topics like use cases, business logic, technology & tools, etc., and implement in day-to-day testing
Understanding limitations of test automation - while it is good to a certain degree, it is never a replacement for manual testing. The tools & technologies will continue to evolve and be time & cost wise efficient one day, but don’t count all your eggs in the automation basket! Do not over-sell test automation, what it is not.
Write efficient and test reusable code - Take time to design your utility files, parent and child structures in your page objects, test files; use data tables, keywords - whichever suits you. Take it a given, that tests will change as features are updated in the application under test, and the idea should be a minimum time spent on fixing the breaking test code.
Audit production errors and project scheduling issues - root cause why a particular issue was not found in-house and device ways to prevent it for future
Pinpoint scheduling errors and delays at upstream functions - requirements, design, or development, so that preventable pressure on QA who comes in late are avoided. Also, device ways to be efficient from the QA side like preparing test data, test environment and test code while development is still in progress.
Underselling quality - Don’t get siloed in the overall scheme of product development, actively learn, brainstorm and contribute in technical and product use case discussions. If not, you would always end up as the also rans in the product development
Running failed tests due to test code or test setup issues - Your continuous testing should be a measure of your product’s quality. The more REDs your developers and management see due to non-developer code, the less serious they are going to take about your test code. Fix your setups so that stray events do not hamper it, use retries and re-runs judiciously in your test framework to ensure your test code has the best chance to succeed.
“Waiting” - for test runs, upskilling, improving test processes, job changes - I have already covered this before, do not take the QA job for granted. Take charge and move forward. You would be surprised at yourself. Trust Me.
Kanika Vatsayan: How do you prepare test plans? What’s the approach or process?
K Sandeep Dinesh: I usually go about preparing test plans by going through existing documentations like product requirements, design & architecture, and then do research on my end for any existing tools & technologies, as well as test data. Once I have an estimate on the tech debt, I have discussions with the stakeholders - developers, architect, product manager, business analyst, and arrive at the overall test strategy, tooling & test data requirements, and scheduling. Finally, I incorporate all the learnings from the previous steps and document my test plan with the test strategy, timelines, assumptions and expected outcomes
Kanika Vatsayan: Can you share the ways to improve your test automation?
K Sandeep Dinesh:
- Improve your programming skills - It helps to write efficient code, which goes a long way in making your life easy as we deal with an increased number of lines in your test code base.
Improve your system architecture, design and algorithm skills - It helps in understanding your application’s inner workings, and gain maximum insights during your discussions with developers & architects.
Learn new tools & technologies - The landscape of tools and technologies are ever-changing. Signup for free trials, learn something new and implement them, have a working GitHub account to showcase, and refer to. Who knows, you might find the right tool for your application somewhere!
Improve your analytical skills - Do logic puzzles, programming questions etc. to recharge your batteries. It might also help in dealing with challenges at work.
Kanika Vatsayan: What’s Your Main Piece of Advice for Testers in 2022?
K Sandeep Dinesh I have discussed a lot already - the only advice I can offer is don’t wait - take charge of your career, don’t just go through the motions; use the time to upskill yourself and prioritize where you want to take your career journey to. Like I said, you would surprise yourself! Stay Safe & Take Care.BugRaptors for years have been known to bring extraordinary services to the users in need. Besides, we have identified the need to foster the software testing practices and techniques from the QA experts from diverse backgrounds to help development companies and our users meet the highest standards of Quality Assurance with software, application, and website.
For more queries, feel free to connect K Sandeep through his LinkedIn profile.
Or just in case, you need some expert hand to help you with your software testing services, feel free to reach our team through firstname.lastname@example.org
Stay tuned for more such interesting updates.