Continuing on our Software Testing Interview Questions and Answers series, let’s get started…
Software Testing Interview Questions and Answers
Once the code changes are done & verified in the development environment – the assigned-to developer changes the status to ‘Fixed’. What’s next? The fixed code needs to be deployed in the Test environment post which it will be verified by the Test team.
What’s the difference from ‘Fixed’? The Environment. Once the rectified code is deployed in the Test environment – it is available for the Test team to verify, i.e. retest. Post deployment, the developer changes the status to ‘Ready for Test’ and assign it back to the tester (who logged it). Tester verifies that the fixed code is working fine and the defect is no more reproducible.
A virtual device is not the real phone but software which gives same functionality as the real phone (except few functionality like the camera). Mobile Emulator or simulator is a software program that mimic a device’s features. These are virtual devices that act like real smartphones, tablets or other mobile devices. This allows us to see how our mobile application looks and functions without having an actual mobile device.
It is a powerful tool for developing mobile applications and are widely used for both manual and automated mobile application testing. They facilitate the testers and developers to a great extent, but they also have their limitations.
As the term goes, Risk-based testing is nothing but mitigating the risks or threats to software product. One of the popular Test strategy or approach, risk-based testing prioritize the testing effort based on the risk analysis. It is getting more popular now-a-days since there might not be sufficient time to test all the functionality, i.e. prioritize & test the functionality in order which has the highest impact and probability of failure. It involves prioritizing the features, modules and functions to be tested based on impact and likelihood of failures, i.e. assessing the risk based on the complexity, business criticality, usage frequency, visible areas, defect prone areas, etc.
Many Software development methodologies evolved over the years, but why do you think Agile development stuck? What made it so popular? Yeah, the Foundation! The Agile Manifesto defines four Agile values and twelve principles which forms the foundation of the agile movement.
- Individuals and interactions over processes and tools
- Working software over comprehensive documentation
- Customer collaboration over contract negotiation
- Responding to change over following a plan
- Firstly, it prioritizes tests against deadlines i.e. higher priority areas / critical functions of the application are tested first thus leading to improved quality.
- In case of limited cost, time and resources – Risk-based testing is a better way to accelerate the testing effort while still managing the risk.
- Testing becomes a much more targeted and organized activity
- Improved Market opportunity (Time to market) and on time delivery.
- Continuous risk monitoring and assessment throughout the project’s entire lifecycle
- Problem areas are discovered early.
- It also helps reduce schedule slippage
- Risk-based testing is a great tool for prioritizing test execution and selecting candidates for regression and automation.
Question-46. Keeping in mind numerous devices, can we just test Mobile Apps on Emulator / Simulator and ensure quality?
Real device testing is an indispensable part of the app development process, and should never be ignored, no matter how many improvements are made to mobile emulator. Keep in mind: the public will not be accessing your product via an mobile emulator! Do not be daunted by the number of devices out there, because even with a limited range of devices, you will get a better app than without testing physical devices.
Mobile emulator (or simulator) facilitate the testers and developers to a great extent, but they also have their limitations. Since mobile applications are used on real handsets and not mobile emulator, testing on real devices during the QA process is required to ensure the highest level of application quality.
- Mitigate – How do you alleviate or lessen the risk? I.e. taking steps to reduce the likelihood of risk outcome or adverse effects by accepting or avoiding or controlling or transferring the risk.
- Contingency – Say a particular risk cannot be mitigated. What now? We can at least prepare for it, right? I.e. identify work-around or back-up plan to risks or missed defects in order to minimize the impact.
Question-48. What are the advantages of Manual Mobile App Testing? Or in what cases Manual Testing is more effective than Automation?
- Agility: In the Agile world, the completion of incremental function needs quick and early validation that the code behaves the way the developer and designer intends. A tester can use a real mobile device to make a quick check of the code.
- Usability: Manual mobile application testing may also be handy for validating the externals and the appearance of the app.
- New functionality / One Function: When you’re testing new functionality or a single function, manual mobile application testing is often the way to go. With new functionality, testers won’t know what type of automated test script to write prior to performing a manual test.
- Test Coverage: It is often impractical to automate 100% of test cases due to various constraints such as functionality that implicitly will have to be tested manually (E.g. Captcha), tool restrictions, complex technology, support to technology by tool, etc.
- Human Judgement: Manual mobile application testing is a sapient activity which requires human judgement. As a QA team tests an application, they use implicit knowledge to judge whether or not something is working as expected. This enables them to find extra bugs that automated tests would never find.
- Specific Mobile Features: Some mobile apps or hardware features can require manual testing. For example you may want to integrate with a camera function such as barcode scanning. Since there really isn’t a way to simulate this function, manual testing is the best way to go.
- Exploratory Testing: This type of testing requires the tester’s knowledge, experience, analytical/logical skills, creativity, and intuition. It is a totally unplanned method of testing where the understanding and insight of the tester is the only important factor.
Question-49. What’s the change that you can no longer directly launch Mozilla Firefox browser from Selenium 3.0.0 beta?
Starting Selenium 3.0.0 Beta and Firefox browser version > 48.0, you will no longer be able to use the legacy FirefoxDriver provided by the Selenium project. Why? Mozilla has introduced two new features in Firefox browser that has disabled the legacy FirefoxDriver. The most important being – all browser extensions must be signed by Mozilla before the browser will allow them to load. The Selenium WebDriver Firefox extension introduces several valid security concerns for the browser, and as such, will not be signed by Mozilla’s security team. This, in turn, renders the extension inoperable, and thus Selenium can no longer communicate with Firefox using this legacy FirefoxDriver.
Parameterization via Data Table – Parameterization is nothing but telling UFT to how & from where to fetch the Test Data for running the Test cases. One of the simplest method for parameterization is using the “Data Tables”! Data Table is just like Microsoft Excel file, viewable in UFT. Parameterize your test so that it run ten times, each time using a different set of data (row by row).