1.How does quality control differ from quality assurance?
Quality Control: Quality control is basically a product-oriented approach which is a “part of quality management focused on fulfilling quality requirements”. It also runs a program to detect if there are any defects and as well it assures that the software meets all of the requirements put forth by the stakeholders
Quality Assurance: Quality assurance is defined as a process-oriented approach that is a “part of quality management and focused on providing confidence that quality requirement will be fulfilled”. It mainly focuses on assuring that the methods, techniques, and processes used to create quality deliverables are applied correctly.
2.What is Software Testing?
Software Testing is a process used to verifying the correctness, identifying errors, completeness, missing requirements versus the actual requirements and quality of developed software. For that, it contains a series of activities that are conducted with an intention of finding errors in software and make them corrected before the product is released to the market. It basically checks all the requirements are working fine and available in it.
3.Why is Software Testing Required?
Software testing is a very important and mandatory process. Software testing makes sure that the software product is safe and have all that which it should have, basically it checks does the product fulfils the needs and requirements of the users and make sure that the product is good enough to be released to the market. Following are some reason which proves that software testing is important:
- It checks whether if there any defects and errors that were made during the development phases.
- It reduces the time for coding cycles by identifying issues at the initial stage of the development.
- Software testing makes sure that software application requires low maintenance and results in a more accurate, consistent and reliable manner.
- Testing ensures that the customer finds the organization reliable and satisfactory in the application performance and maintenance.
- Makes sure that software is bug-free and fulfils all the requirements and makes sure quality matches the market standards.
- Ensures that the application doesn’t stop working or face any failures in working.
4.State the difference between manual testing and automation testing?
|Manual Testing||Automation Testing|
|The accuracy & reliability of test cases is low in manual testing, as they are performed by humans so they are more likely to have errors in it.||Automated testing, on the other hand, is more reliable as automated tools are used to perform tests.|
|Manual testing is time-consuming as human resources perform all the tasks.||The execution in automation testing is faster than the manual as software tool execute the tests|
|Investment in manual testing is low, but Return of Investment(ROI) is low as well.||Both the Investment cost and Return of Investment, are high in automation testing.|
|Manual testing is generally preferred when the test cases run once or twice. It is also suitable for Exploratory, Usability and Adhoc Testing.||Automation testing is generally used for Regression Testing, Performance Testing, Load Testing or highly repeatable functional test cases|
|Manual testing requires human observation to find out any issues. Therefore manual testing is better in improving the customer experience.||In automation testing, there is no human observation required, that’s why there is no guarantee of a positive customer experience.|
5.Write the two main categories of software testing?
Software testing is a huge domain. It can be broadly categorized into two main categories of software testing such as:
- Manual Testing – This is a software testing process. The test cases are tested manually without any automated tool. It is the oldest type of software testing that can find both hidden and visible defects of the software. In this testing, the software application is tested manually by QA testers.
- Automation Testing – In this software testing process the test cases are tested using a special automated testing software tool. In this automation testing assistance of tools, scripts and software are used to perform test cases by repeating pre-defined actions. Automation testing focuses on replacing manual testing which includes human activities with the systems or devices that enhance efficiency.
6.What is quality control?
Quality control is a product-oriented approach of running a program to ensure the quality of the product is maintained or improved if it has any defects, they fix them as well as making sure that the software meets all of the requirements needed by the users.
7.What makes a human a good test engineer?
A software test engineer is any professional who ensures that the product meets all the expectations and fulfil all the requirements. A software test engineer basically creates a process that would test a particular product in the software industry.
- A good test engineer should understand the priorities and should have the ability to take the point of view of the customer
- Should be passionate for quality and attention to minute details
- A good test engineer should have the ability to assert his ideas or opinions to maintain a cooperative relationship with developers
- Ability to communicate in a manner via which he can report negative things in a positive way with both technical (developers) and non-technical (customers, management) people
- Prior experience and flexibility to support whenever it is required in the software development industry is always a plus point
- Ability to take a risk whenever it is required at the time of application by judging the situations and make important decisions
8.What different types of manual testing are there?
There are six types of manual testing:
- Black Box Testing: In this level of testing, testing is done without interfering with any of its internal structure and workings.
- White Box Testing: In this level of testing the internal structure and working is tested.
- Unit Testing: In this level of testing the individual units or parts are tested.
- System Testing: In this level of testing the software product is completely tested
- Integration Testing: In this level of testing the individual units and components are combined together and are tested
- Acceptance Testing: In this level of testing the software product is tested whether it has met all requirements or not.
9.What’s the role of documentation in Manual Testing?
Documentation plays a crucial role in achieving effective software testing. All the Details like requirement specifications, designs, configurations, code changes, test plans, business rules, inspection reports, test cases, user manuals, bug reports, etc. should be documented.
Documenting the test cases will make it easier for developers to assess the testing effort developer will need along with test coverage, tracking and tracing requirement. Some commonly applied to investigate procedures of the documentation associated with software testing are:
- Test Plan
- Test Scenario
- Test Case
- Traceability Matrix
10.What are the phases involved in Software Testing Life Cycle?
The different phases of the software testing life cycle are:
|Requirement Analysis||QA team first learn the requirement in terms of what they will be testing & calculate the testable requirements.|
|Test Planning||In this phase, the test strategy is made. The objective & the scope of the project is defined.|
|Test Case Development||In this phase, detailed test cases are defined and evolved. For testing the data is prepared by the team.|
|Test Environment Setup||It is arranging software and hardware as per the requirements of the testing teams to execute test cases.|
|Test Execution||It is the process of executing the code and checking the expected results with the actual results.|
|Test Cycle Closure||It gives a summary of all the tests conducted during the software development, includes the testing team member meeting & assessing cycle completion criteria based on test coverage, quality, cost, time, critical business objectives, and software.|
11.Explain the difference between alpha testing and beta testing.
- Alpha Testing – Alpha Testing is a type of user acceptance testing in which software testing is performed to identify bugs and errors before releasing the product in the market or to the users.
- Beta Testing – Beta testing is quite opposite of the alpha testing. In this testing, the product is tested by the real users in the real environment and according to the needs the changes are made in it. It is also a type of acceptance testing.
12.What are the different levels of manual testing?
There are Four levels of manual testing are:
- Unit testing – Unit testing is referred to the testing of the smallest piece or the individual units of code that can be logically isolated in a system. It is mainly focused on the functional accuracy of the software product.
- Integration Testing – In Integration testing, the individual units or components are combined together as a group. This testing is used to test whether the combined units or components are working as they intend to when integrated The main aim here is to expose the faults in the interface between the modules.
- System Testing – In system testing all the components of the software are validated as a whole in order to make sure that the overall product meets the requirements specified. It evaluates all the end to end system specifications for accurate results. There are many types of system testing, including usability testing, regression testing, and functional testing.
- User Acceptance Testing – It is the last level of testing, acceptance testing, or UAT (user acceptance testing), which is performed after the software is completely tested. It is used to determines whether or not the software is ready to be released.
13.What is a testbed in manual testing?
An environment configuration for testing is known as a testbed. It is creating an environment suitable for testing an application, it includes the hardware as well as any software needed to run the program and to be tested. The testbed consists of specific hardware, operating system, software, network configuration, the product under test, other system software.
14.Explain the procedure for manual testing?
The manual testing process is consists of the following steps:
- Planning a test and Controlling a test
- Analysis of the requirements.
- Test cases Implementation and Execution
- Evaluating exit criteria and Reporting the bugs
- Checking completion of the test
15.When should you opt for manual testing over automation testing?
There are many cases when manual testing is best suited over automation testing, like:
- Short-time projects: Automation testing requires high investment and planning, this testing is aimed at time saving and saving resources. But still takes time and resources to design and maintain them and the expenses are also high. For example, if you are creating a small promotional website, it can be much more efficient and easy to depend on manual testing.
- Ad-hoc Testing: In ad-hoc testing, there is not any specific approach. Ad-hoc testing is totally performed without planning and documentation where the understanding and insight of the tester is the only important factor. Which can be achieved by using manual testing.
- Exploratory Test: In this type of testing approach it mostly depends upon the tester’s knowledge, experience, analytical, logical skills, creativity, and intuition. So human involvement is a must in exploratory testing. So manual testing is very suitable here.
- Usability Testing: While performing usability testing, it is measured by the tester how user-friendly, efficient, or convenient the software or product is for the end-users. In usability testing Human observation plays the most important part, so manual testing sounds seems very appropriate.
16.What is the test case?
A test case is a document that has all the requirements on it like a set of conditions or actions, the inputs, procedures that are performed on the software application in order to check whether it fulfils all the given requirements or not.
Test cases are a concept that includes a specific idea that is to be tested, without specifying the exact steps to be taken or data to be used. For example, in a test case, you document something like ‘Test if a discount can be applied on actual price’.
17.What is API testing?
API testing is a type of software testing which involves testing application programming interfaces (APIs) to determine if they meet expectations for functionality, reliability, performance, and security. In simple words, API testing is planned to find out bugs, inconsistencies or deviations from the expected behaviour of an API. Commonly, applications have three separate layers:
- Presentation Layer or user interface
- Business Layer or application user interface for business logical processing
- Database Layer for modelling and manipulating data
API testing is performed at the most critical and important layer of software architecture, the Business Layer.
18.What’s the difference between verification and validation in testing?
|It is a technique, in which documents, design, code and program is checked in order to ensure the requirements are fulfilled or not. Here testing is done without executing the code. The verification process mainly includes activities like reviews and inspection.||It is a dynamic mechanism of testing and validating where testing is done by executing the code and to check the software product actually meets the customer needs or not. Validation includes activities like functional and non-functional testing techniques.|
19.What’s the difference between a bug and a defect?
When the software or applications are not working as per the requirements then these faults are called a bug, it occurs during testing time. A defect is an irregularity between expected results and actual results, it is detected by the developer after the product release in the market.
20.What are the advantages of manual testing?
Advantages of manual testing are:
- This testing is cheaper in cost when compared to automated testing.
- Manual testing is easy to learn and it needs less time.
- The product analysis from the customer end is possible only with manual testing
- GUI testing can be done more precisely with the help of manual testing as visual accessibility and precedences are difficult to automate
- It is highly suitable for small applications, short-term projects where the test scripts are not going to be repeated or reused more times
- It is very suitable when the project is especially at the early stages of its development
- Highly reliable, since it is done manually where automated tests can contain errors and missed bugs.
21.Explain the defect life cycle.
A defect life cycle, also known as Bug Life Cycle is a journey in which a defect goes through various phases during its whole lifetime. The cycle starts when a defect is found and ends when a defect is solved, after ensuring that it will not occur again
22.What is regression testing? When to apply it?
“Regression Testing is basically retesting a previously tested program to ensure that it still performs the same after making changes in it and no defects have been occurred or uncovered in unchanged areas of the software, this process is known as regression testing.”
When some small changes are made in some part of the system, a regression test is used to ensure that the system’s functionality does not break somewhere in the system. The regression test makes sure that the changes do not change the performance and working of the system. When the following events occur it is recommended to perform regression testing:
- When new functionalities are added to the system
- In case there are some changes in code or any other part of the system
- When the is a defect fix in the system.
- When the performance is not up to the mark.
- In case of environmental changes
- When there is a particular segment fix
23.What is the difference between a bug, a defect and an error?
Bug – A bug is a fault in the software which is occurred during the testing time. They come up due to some coding error and leads a program to malfunction. They can also cause a functional issue in the product. These are fatal errors that could break the functionality and can result in a system crash, or cause performance failure.
Defect – A defect is a difference between the expected results and actual results, it is detected by the developer when the product is live. The defect is an error found when the application goes into production. Basically, it refers to several problems or issues of the software products, with its external behaviour, or with its internal programs.
Error – An error basically refers to a mistake, misunderstanding, or misconception, on the part of a software developer. The developers are divided into various categories includes software engineers, programmers, analysts, and testers. For example, a design notation is misunderstood by the developer, or a variable name is incorrectly written by the programmer – leads to an error. An error normally occurs in software, and due to which there is a change in the functionality of the system.
24.What are the drawbacks of manual testing?
Drawbacks of manual testing are:
- The main drawback is it quite risky and suspectable because of the human factor, humans make mistakes. So it is not reliable.
- Some of the test types like load testing and performance testing are not possible to test manually
- Regression tests can be really time-consuming if they are done manually
- Manual testing has very limited scope when compared to automation testing
- Manual testing is not useful in very large organizations and in time-bounded projects. Due to more time consumption.
25.What is the difference between system testing and integration testing?
|System Testing||Integration Testing|
|System Testing tests the software application as a whole to ensure if the system is complementing the user requirements||Integration testing tests the interface between modules of the software application|
|Involves both functional and non-functional testing like sanity, usability, performance, stress and load||Only functional testing is performed to check whether the two modules when combined give the right outcome|
|It is high-level testing accomplish after the integration testing||It is low-level testing performed after unit testing|
26.What is the test harness?
A test harness is the collection of software and test information that is put together to test a program unit by running it under varying environments like stress, load, data-driven, and monitoring its behaviour, response and outputs. Test Harness is divided into two main parts:
- A Test Execution Engine
- Test script repository
27.What is test closure?
Test Closure is a document that gives a summary of all the tests that are conducted during the software development life cycle and it also gives a detailed analysis of the removed bugs and errors found. This document contains a report of test cases executed, total no. of experiments executed, total no. of imperfections discovered, add total no. of imperfections settled, total no. of bugs not settled, total no of bugs rejected and so on.
28.What is the pesticide paradox? How to overcome it?
According to the pesticide paradox, if the same tests are carried out over and over again, then an outcome of this, the same test cases will no longer be able to find new bugs. Developers will be extra careful in those parts where testers found more defects and might not look into other areas.
Methods to prevent pesticide paradox are following:
- To continually write a whole new and different set of test cases to exercise different parts of the software.
- To regularly review the existing test cases and add a new test case to them.
Using these methods, it’s possible that we can find more defects in the segment where defect numbers dropped.
29.Define what is a critical bug.
A critical bug is a bug that has got the tendency to impacts a major functionality of the given application. This means a large area of functionality or major system component is completely broken and there is no method to overcome this problem to proceed forward. The Application cannot be given to the end-user unless the critical bug is fixed.
30.What is the difference between Positive and Negative Testing?
|Positive Testing||Negative Testing|
|Positive testing ensures that your application working as expected. If any error occurred during positive testing, then the test fails||Negative testing determines that your application can handle the invalid input or unwanted user behavior|
|In this testing, only a valid set of values are checked by the tester.||In this testing, Testers apply all their creativity and validations to the application against unwanted data|