The best way to get ready for an interview is to take the time to review the most common interview questions you will most likely be asked. Got an interview coming up? Continuing on our Interview Questions and Answers series for Software Testing,
Interview Questions 51 to 60
Question-51. What are the advantages of Automated Mobile App Testing? Or in what cases Automation Testing is more effective than Manual testing?
- Regression Testing: The existence of a suite of regression test cases can save critical time and can be the difference between releasing an app in a timely fashion.
- Save Time: This is one of the biggest benefits, especially when it comes to regression testing. Due to time constraints we may not run all tests associated to the change which may result in undiscovered defects. These issues can be overcome by setting up automated tests to run over night or after each deployment.
- Load & Performance Testing: Automated mobile application testing is also the best way to complete the testing efficiently when it comes to load & performance testing which requires the simulation of thousands of concurrent users.
- Technical Learning & Collaboration: Automated mobile application testing also keeps developer minds more intrigued. It’s tedious work typing in the same information into the same forms over and over again in manual testing. The process of setting up test cases in automated testing takes a technical mind, and keeps you on your feet.
- Complex tests: Complex tests have multiple components that need to be tested at once. After testers familiarize themselves with the app’s functionality, an automated test script can help them run through a variety of tests quickly to speed the testing process.
- Availability: Test automation is available 24/7 – Automation will reduce the time it takes to test new features and even the app itself by running 24/7.
- Re-usability & Repeat-ability: The automated tests can be reused on different versions of the software, even if the interface changes. The same tests can be re-run in exactly the same manner eliminating the risk of human errors.
- Reliable: Manual testing is not accurate at all times due to human error, hence it is less reliable. Automated testing is more reliable, as it is performed by tools and/or scripts.
Question-52. What are the main components of a Bug tracking or a Defect Management system?
As the name suggests Bug tracking is a process of managing the status transition of identified defects, mainly via an effective Bug Tracking Software.
- First & Foremost: Ability to log & progress defects through its life cycle statuses using a unique defect ID
- Provides a centralized repository for tracking defects across projects.
- Maintenance of all the related info like environment, module, severity, priority, screenshots, release cycle, etc.
- People collaboration: A defect passes through multiple hands before being ‘closed’. It should be easy to assign a defect to people and comment on the progress (maintaining the history as well)
- Reporting – internal or client reporting covering relevant fields, either pictorial (graphs & charts) or simple extraction
- Customizable: Most of the popular Bug Tracking software can be customized according to the project needs (statuses, reporting structure, people’s role, etc.)
Apart from the above features, there can be multiple user-friendly features in different Bug Tracking software to ease the process.
Question-53. What is Regression Testing? What’s the main purpose of it?
Regression testing is a type of testing that is carried out to make sure that any changes to the software product didn’t result in any additional defects (side-effects) in the existing functionality that was working perfectly fine earlier. In other words – to identify the defects in related functionalities that creep in after the code changes to an already tested functionality.
As you might have guessed, Regression testing is usually performed at the end of functional testing cycle when all the required changes and defect fixes have been completed and no further change is expected.
Question-54. What do you mean by ‘Beta Testing’?
No matter how carefully you test your app, there’s nothing like the real-world test of having other people use it. An App’s Beta release means rolling out not-so-perfect copy of the software to a larger set of Users before you actually ‘Go Live’. Beta testers try your app, use it consistently for a specific period of time and report back any issues, bugs or feedback about the app. The main goal of beta testing apps is to get real-world exposure, know how the app will feel in the hands of actual users and what needs fixing and what needs ditching!
Question-55. What’s the difference between a Defect Severity and Priority?
- The Defect Severity (Technical) – In simple words, how severe is the defect for the application’s quality? Say you click on the ‘Help’ link and the application crashes. Whoaa! Bing-Bang Craaaashh..! Quite a severe defect, right?
- The Defect Priority (Business) – In simple words, what is the precedence, importance or urgency to fix a defect? Say you click on the ‘Help’ link and the application crashes. Whoaa! Bing-Bang Craaaashh..! Quite a severe defect, right? But how many of us really click the ‘Help’ link? Business usage statistics show less than 2%. Now what do you think should be the urgency to fix a defect that impacts just the 2% of the end-users? Yeah! Not ‘High’ obviously. There would be other urgent defects to fix prior to this. Defect Priority defines the order in which defects should be fixed, i.e. its impact to the end-users, the business perspective.
Question-56. Any idea what is Alpha Testing?
Alpha Testing: Before moving to Beta phase, Alpha testing is performed at the developer’s site by an independent team of testers (can be from client side). As it is performed at developer’s side – it is done in a testing environment and not the actual real-time production environment.
Question-57. What do you mean by White-box and Black-box Testing?
- Black-box method treats the AUT as a black-box (no knowledge about its internal structure). Result – We are not bothered about how the internal structure of the application is maintained/changed until the outside functionality is working as expected (as per requirements).
- White-box: Since it’s a White-box >> we can see what’s in it, i.e. the internal structure, and use that knowledge to expand the coverage to test every possible flow at code-level. For example – Statement coverage, Branch coverage or Path coverage.
Question-58. Can you explain Defect Severity and Priority via examples?
- High Priority + Critical Severity: A show-stopper! User is unable to login to the system (E.g. Net Banking)
- High Priority + Low Severity: Company Name (the Brand) is misspelled at the website homepage
- Low Priority + High Severity: End-users using outdated browsers (< 2%) cannot make a purchase
- Low Priority + Low Severity: Any small cosmetic issue in the appearance
Question-59. What are the two broad classifications for Software Testing Types?
- Functional: The most-essential Test type, Functional testing focuses on testing the software against design document, use cases and requirements document – that it correctly performs all its required functions.
- Non-functional: Here, you are not testing the software for any functionality. Instead the focus is on non-functional aspects like performance, load, accessibility, localization, security, reliability, recovery, etc.
Question-60. What’s the difference between Internationalization and Localization?
“To run a global business, the product needs to be local to that specific geography.”
Internationalization: What if your software is hard-coded to support just one language? Say English. How will you target German (or any other local-language) end-users into using your software? Nah! You don’t have a chance. The way out – Internationalize your software, i.e. remove the hard-coding and make the design generic such that it can support any number of languages and other geography-based features like currency, date format, etc. Officially “Internationalization is the process of designing a software application so that it can potentially be adapted to various languages and regions without engineering changes.”
Localization: Now that you have internationalized the software, you need to add region-specific details for your target geographies. Say you want to add text-translations for Portuguese, German, French but not Chinese. I.e. though it’s internationalized, but your software is localized for Portugal, Germany and France but not for China. Officially “Localization is the process of adapting internationalized software for a specific region or language by adding locale-specific components and translating text.”
Fast Forward to more interview questions & answers…