Software Testing Technical Interview Questions

What is Software Testing?

In the simplest words, software testing is the process of testing the software. It is the process of ensuring that the program or application runs smoothly and does not have any bugs in it. In order to do this, software testing primarily consists of executing the program over and over again, to ensure that it executes flawlessly. The program must also be executed in a variety of different scenarios to ensure that it performs in those conditions.

In case it doesn’t. The second aspect of software testing is to report the bugs that may pop up and affect the functionality of the program or application. In fact, software testing has the following functions:

  • To ensure that the program works and get the desired result
  • To ensure that it meets the business and technical requirements
  • To ensure that it can be implemented with the same characteristic
  • To ensure that responds correctly to all kinds of inputs
  • To ensure that performs its functions within an acceptable time
  • To ensure that it is usable
  • To ensure that it can be installed and run in its intended environments

What is Exploratory Testing and when should it be performed?

Exploratory Testing is a type of software testing. Exploratory testing is described as an approach that involves simultaneous learning, test design and test execution.

As its name suggests, exploratory testing is all about exploring the software, finding out its limits, what it does or doesn’t do, etc. It is a type of testing in which there is near to no planning, and it is completely hands-on, where the tester has to think on their feet, and try to push the program to its limits. Each test is often designed on the basis of the result of the previous test, however the testing is completely in the tester’s control. The tester decides which test to do first and then which test to do next.

Exploratory Testing is beneficial and should be performed when there is no requirement or testing document or if there are minimal documents to conduct the testing. It also takes less time to conduct, hence it useful to finish the testing fast and accurately. This testing should also be done in the early stages of the systems development life cycle (SDLC).

What Test Techniques are there and what is their purpose?

Test Techniques are nothing more than techniques or approaches that can be utilized to conduct the testing. The primary purpose of test techniques is to help identify defects and to reduce the number of test cases.

There are two main types of testing techniques, each with their own sub-types:

Black Box testing techniques:

  • Equivalence Partitioning
  • Boundary Value Analysis
  • Cause-Effect Graphing
  • Error-Guessing
  • Decision Tables

White-Box testing techniques:

  • Statement coverage
  • Decision coverage
  • Condition coverage        
  • Decision-condition coverage
  • Multiple condition coverage
  • Basis Path Testing
  • Loop testing
  • Data flow testing
How do you test the login feature of a web application?

There are no specific guidelines about how to checking the login feature of a web application. The testing can be done solely on how the tester wants to. However, here are certain things that should be checked for.

Start with the basis. Check the input fields with positive and negative values, invalid email, valid email but incorrect password, SQL injection, etc.

Check login and logout, by logging in and then logging out, then checking if you are truly logged off or not.

Also, sign in with a valid login, close the browser and reopen it to see whether you are still logged it or not.

Sign in and then go back to the same page to see whether you see the login screen again.

Also sign in from one browser, then open another browser to see if you need to sign in again.

Check password management, by logging in, changing the password, and trying to login again with the old password.

Check the session management, such as how does the application keep track of logged in users, whether it does so via cookies or web sessions.

What Types of Testing is Specifically Important for Web Testing?

Web Testing is an important aspect of developing any web application. It is responsible for checking for any potential bugs  

There are many different types of web testing, including:

Functionality Testing – To check the functionality of all the links in web pages, database connection, the forms for submitting or getting information from user in the web pages, cookies, etc.

Usability testing – To check that all the navigations, such as web pages, as well as controls like buttons and boxes and how the user uses the links on the pages to surf different pages. Also, to check the content for spelling, grammar, and even for color and layout. Also checks for search option, sitemap, help files, etc.

Interface testing – Primarily to check if all the all the servers are executed and errors are handled properly, including for web server and application server interface, as well as Application server and Database server interface.

Compatibility testing – To check for browser compatibility, operating system compatibility, mobile browsing, printing options, performance testing, and security testing.

Performance testing – To check that the web application performs well and is able to handle the heavy load. Includes Web Load Testing and Web Stress Testing

Security testing – To check that the web application is secure and as it the data that it collects and stores.

Of these Performance Testing and Security Testing are of specific importance for web testing. This is because, unlike desktop applications, web applications are open to the world and will be simultaneously used by thousands of people. Hence, load testing and stress testing are important. It is also important that the web application have adequate security in order to survive the all forms of attacks, mostly DDOS that it may be faced with.

How do you verify the results of your search on search results page?

There are times when the search query will provide with results. However, these results should be verified to ensure that the search option functions as it should.

In order to verify the results of the search on search results page, one must first know where the data is coming from. Is it from a database, or from some XML files from 3rd party websites? Depending on this, the search results can then just be cross referenced with the original source, i.e. the database or XML files.

Another option is to use mocks to generate the data. Hence, the tester can fully be in control of the data that is visible on the search results page.

What is Acceptance Testing?

Acceptance Testing is a type of software testing. It is also commonly known as User Acceptance Testing (UAT).

Acceptance Testing defines a level of testing where a system is tested for acceptability. Basically, it tests to see whether or not the system is compliant with the business requirements and whether or not it will be accepted by the general public in the current form.

It tests the system to see whether or not it is compliant for user needs and requirements, because if it does not, then the users might just reject the product.

There are various forms of acceptance testing:

  • User acceptance Testing
  • Business acceptance Testing
  • Alpha Testing
  • Beta Testing
What is Accessibility Testing?

Accessibility Testing is a type of software testing. It is a subset of usability testing.

The primarily function of Accessibility Testing is to check the system’s accessibility. This basically means that the system is check to ensure that it is usable by people with disabilities like hearing, color blindness, old age and other disadvantaged groups.

The tester must make sure that the system is usable with the following four different types of assistive technology that people with disabilities primarily use. These include:

  • Speech Recognition Software – which converts spoken word to text
  • Screen reader software – Reads out the text that is displayed on the screen
  • Screen Magnification Software – Enlarges the monitor and make reading easier for vision-impaired users.
  • Special keyboard – Makes typing easier who have motor control difficulties
What is Adhoc Testing?

Adhoc Testing is a type of testing method where the testing is done without any planning or implementation. It is a random type of testing that tries to find defects in the system. Adhoc Testing is done without any documentation and is typically run only one unless a defect is found.

Ad hoc testing is considered to be the least formal test method and is hence not primarily dependent upon. As the testing method is not structured, it is criticized as any defects found through this testing method will be difficult to replicate. However, the benefit of Adhoc Testing is that defect can be found quite quickly.

Adhoc testing is usually achieved with the testing technique called Error Guessing, which can be done by the people who have enough experience on the system to "guess" the most likely source of errors.

Agile Testing is a type of software testing that is conducted as part of the principles of agile software development. Basically, Agile Testing is the practice of testing software for bugs or performance issues within the context of an agile workflow.

Agile Testing refers to the approach of testing the software keeping in mind that the customer needs keep changing and evolving. Hence, in agile testing the software is conducted in a dynamic environment where the testing requirements keep changing in order to keep up with the customer needs. This testing is done in parallel to the development activity where the testing team receives frequent small codes from the development team for testing.

In agile testing, the testing is not considered to be a separate phase, but is rather taken to be a part of the development process in itself as coding.

An Application Programming Interface (API) is exactly what it sounds like. It is a type of interface where an application is programmed. Specifically speaking, an API is a set of subroutine definitions, protocols, and tools, all of which are used for building application software. An API may be for a web-based system, operating system, database system, computer hardware or software library.

The primary purpose of an API is to help developed use certain technologies to build applications. These APIs contain various components that make it easier for the developer to create programs.

Automated Testing is a type of testing that is conducted automatically. Automated testing tools are capable of running tests, reporting outcomes and comparing results with earlier test runs all by itself.

The primary purpose of automated testing is to simplify as much of the testing effort as possible with a minimum set of scripts. Automated testing in only utilized once it is noted that the manual testing program is not meeting expectations but it is also not possible to bring in more human testers.

The benefit of automated testing is that test can be run at any time of the day and without a person or tester to run them. This saves on time and money, and is much more efficient. However, automating tests with commercial off-the-shelf (COTS) or open source software can be complicated, however, because they almost always require customization.

Black box testing is a specific type of software testing in which the software and its functionality are checked but without peering into its internal structures or workings. It does not look at the at the internal code structure, implementation details and knowledge of internal paths of the software, which is why it is called black box testing, as you cannot see within a black box.

Black box testing can be applied virtually to every level of software testing: unit, integration, system and acceptance. It focuses on inputs and output of the software system and is based on the software’s requirements and specifications.

Beta testing is a type of testing in which the software is given to potential customers to test out. Beta testing is somewhat similar to a limited release in which people can sign up to get a copy of the software before its actual release, and in case they face any bugs or issues, they can report it so that they may be fixed before the release of the actual version.

The benefit of beta testing is that it tests the product in real like scenarios and in the hand of real clients. It gives a feel for how the software will function in the real world, which is why it is also commonly known as field testing or pre-release testing. It allows the real used to validate the usability, functionality, compatibility, and reliability testing of the software.

Beta testing is often considered to be the second phase of testing, as beta is the second letter in the Greek alphabet. The first letter is the alpha which equates to alpha testing being the primary phase of testing in a software development process.

Add new comment

Plain text

  • No HTML tags allowed.
  • Web page addresses and e-mail addresses turn into links automatically.
  • Lines and paragraphs break automatically.