INTERVIEW Q&A
1. What is Software Testing?
The process of exercising or evaluating a system or system component by manual or automated means to verify that it satisfies specified requirements or to identify differences between expected and actual results.
2. What is the Purpose of Testing?
- To uncover hidden errors
- To achieve the maximum usability of the system
- To Demonstrate expected performance of the system.
3. What types of testing do testers perform?
Black box testing, White box testing is the basic type of testing testers performs. Apart from that they also perform a lot of tests like Ad - Hoc testing, Cookie Testing, CET (Customer Experience Test), Client-Server Test, Configuration Tests, Compatibility testing, Conformance Testing
4. What is the Outcome of Testing?
A stable application, performing its task as expected.
5. What is the need for testing?
The Primary need is to match requirements get satisfied with the functionality and also to answer two questions
- Whether the system is doing what it supposes to do?
- Whether the system is not performing what it is not suppose to do?
6. What are the entry criteria for Functionality and Performance testing?
Functional testing:
Functional Specification /BRS (CRS)/User Manual. An integrated application, Stable for testing.
7.Why do you go for White box testing, when Black box testing is available?
A benchmark that certifies Commercial (Business) aspects and also functional (technical) aspects is objectives of black box testing. Here loops, structures, arrays, conditions, files, etc are very micro level but they arc Basement for any application, So White box takes these things in Macro level and test these things
8. What are the entry criteria for Automation testing?
Application should be stable. Clear Design and Flow of the application is needed
9. What is Baseline document, Can you say any two?
A baseline document, which starts the understanding of the application before the tester, starts actual testing. Functional Specification and Business Requirement Document
10. What are the Qualities of a Tester?
- Should be perfectionist
- Should be tactful and diplomatic
- Should be innovative and creative
- Should be relentless
- Should possess negative thinking with good judgment skills
- Should possess the attitude to break the system
11. Tell names of some testing type which you learnt or experienced?
Any 5 or 6 types which are related to companies profile is good to say in the interview,
- Ad - Hoc testing
- Cookie Testing
- CET (Customer Experience Test)
- Depth Test
- Event-Driven
- Performance Testing
- Recovery testing
- Sanity Test
- Security Testing
- Smoke testing
- Web Testing
12. What exactly is Heuristic checklist approach for unit testing?
It is method of achieving the most appropriate solution of several found by alternative methods is selected at successive stages testing. The checklist Prepared to Proceed is called Heuristic checklist
13. After completing testing, what would you deliver to the client?
Test deliverables namely Test plan Test Data Test design Documents (Condition/Cases)
- Defect Reports
- Test Closure Documents
- Test Metrics
14. What is a Test Bed?
Before Starting the Actual testing the element;; which supports the testing activity such as Test data, Data guide lines. Are collectively called as test Bed.
15. What is a Data Guideline?
Data Guidelines are used to specify the data required to populate the test bed and prepare test scripts. It includes all data parameters that are required to test the conditions derived from the requirement / specification The Document, which supports in preparing test data are called Data guidelines
16. Why do you go for Test Bed?
When Test Condition is executed its result should be compared to Test result (expected result), as Test data is needed for this here comes the role of test Bed where Test data is made ready.
17. Can Automation testing replace manual testing? If it so, how?
Automated testing can never replace manual Testing. As these tools to Follow GIGO principle of computer tools. Absence of creativity and innovative thinking. But It speeds up the process. Follow a clear Process, which can be reviewed easily. Better Suited for Regression testing of Manually tested Application and Performance testing.
18. What is the difference between quality and testing?
"Quality is giving more cushions for user to use system with all its expected characteristics”. It is usually said as Journey towards Excellence.
“Testing is an activity done to achieve the quality”.
19. Why do we prepare test condition, test cases, test script (Before Starting Testing)?
These are test design document which are used to execute the actual testing Without which execution of testing is impossible, finally this execution is going to find the bugs to be fixed so we have prepare this documents.
20. Is it not waste of time in preparing the test condition, test case & Test Script?
No document prepared in any process is waste of rime, That too test design documents which plays vital role in test execution can never be said waste of time as without which proper testing cannot be done.
21. How do you go about testing of Web Application?
To approach a web application testing, the first attack on the application should be on its performance behavior as that is very important for a web application and then transfer of data between web server and .front end server, security server and back end server.
22. What kind of Document you need for going for a Functional testing?
Functional specification is the ultimate document, which expresses all the functionalities of the application and other documents like user manual and BRS are also need for functional testing. Gap analysis document will add value to understand expected and existing system.
23. Can the System testing be done at any stage?
No, .The system as a whole can be tested only if all modules arc integrated and all modules work correctly System testing should be done before UAT (User Acceptance testing) and Before Unit Testing.
24. What is Mutation testing & when can it be done?
Mutation testing is a powerful fault-based testing technique for unit level testing. Since it is a fault-based testing technique, it is aimed at testing and uncovering some specific kinds of faults, namely simple syntactic changes to a program. Mutation testing is based on two assumptions: the competent programmer hypothesis and the coupling effect. The competent programmer hypothesis assumes that competent programmers turn to write nearly "correct" programs. The coupling effect stated that a set of test data that can uncover all simple faults in a program is also capable of detecting more complex faults. Mutation testing injects faults into code to determine optimal test inputs.
25. Why it is impossible to test a program completely?
With any software other than the smallest and simplest program, there are too many inputs, too many outputs, and too many path combinations to fully test. Also, software specifications can be subjective and be interpreted in different ways.
26. Does automation replace manual testing?
We cannot actually replace manual testing 100% using Automation but yes definitely it can replace almost 90% of the manual test efforts if the automation is done efficiently.
27. How are the testing activities described?
The basic Testing activities are as follows:
a. Test Planning (Pre-Requisite: Get Adequate Documents of the Project to test)
b. Test Cases (Pre-Requisite: Get Adequate Documents of the Project to test)
c. Cursor Test (A Very Basic Test to make sure that all screens are coming and application is ready for test or to automate)
d. Manual Testing
e. Test Automation (Provided if the product had reached Stability enough to be automated).
f. Bug Tracking & Bug Reporting.
g. Analysis of the Test and Test Report Creation.
h. If Bug Fixing Cycle repeats then Steps c-h repeats.
28.What tools are available for support of testing during software development life cycle?
Test Director for Test Management, Bugzilla for Bug Tracking and Notification etc are the tools for Support of Testing.
29. What is Ad Hoc Testing ?
A testing where the tester tries to break the software by randomly trying functionality of software.
30. Different Levels of testing?explain them briefly?
- Unit Testing,
- Integrated Testing,
- System Testing,
- User Acceptance Testing.
The testing done to a unit or to a smallest piece of software. Done to verify if it satisfies its functional specification or its intended design structure.
The Tools used in Unit Testing are debuggers, tracers and is done by Programmers.
2. Integration Testing
Testing the related modules together for its combined functionality.
3. System Testing
Testing the software for the required specifications on the intended hardware
4. User Acceptance Testing = (It the testing done with the intent of conforming readiness of the product and Customer acceptance.)
OR
Testing conducted to determine whether or not a system satisfies its acceptance criteria and to enable the customer to determine whether or not to accept the system. It is done against requirements and is done by actual users.
31. What is Stress testing
Stress testing is to evaluate a system beyond the limits of the specified requirements or system resources (such as disk space, memory, processor utilization) to ensure the system do not break unexpectedly
32. What is Load Testing:
Load Testing, a subset of stress testing, verifies that a web site can handle a particular number of concurrent users while maintaining acceptable response times
33. What is Alpha testing?
Testing of a software product or system conducted at the developer’s site by the customer
34. What isBeta testing?
Testing conducted at one or more customer sites by the end user of a delivered software product system.
35. What is Usability Testing?
It evaluates the Human Computer Interface. Verifies for ease of use by end-users. Verifies ease of learning the software, including user documentation. Checks how effectively the software functions in supporting user tasks. Checks the ability to recover from user errors.
36. Explain about Bug life cycle?
It has the following life cycle such as:
New: When the bug is posted for the first time is called new.
Open: After the tester sends the bug, the lead checks if it genuine then it is called as open.
Assign: After the lead checks, he assigns to the developer and that state is called assign.
Test: Before the developer releases the software with bug fixed, he changes the state of bug to “TEST”.
Fixed: When the developer resolved the bug the status is fixed.
Reopen: If the bug still exists even after the bug is fixed by the developer, the tester changes the status to reopen.
Closed: If the bug is no more the status is closed.
37. What is the difference between client-server testing and web based testing and what are things that we need to test in such applications?
CLIENT / SERVER TESTING
This type of testing usually done for 2 tier applications (usually developed for LAN)
Here we will be having front-end and backend.
The application launched on front-end will be having forms and reports which will be monitoring and manipulating data
E.g: applications developed in VB, VC++, Core Java, C, C++, D2K, PowerBuilder etc.,
The backend for these applications would be MS Access, SQL Server, Oracle, Sybase, Mysql, Quadbase
The tests performed on these types of applications would be
- User interface testing
- Manual support testing
- Functionality testing
- Compatibility testing & configuration testing
- Intersystem testing
WEB TESTING
This is done for 3 tier applications (developed for Internet / intranet / xtranet)
Here we will be having Browser, web server and DB server.
The applications accessible in browser would be developed in HTML, DHTML, XML, JavaScript etc. (We can monitor through these applications)
Applications for the web server would be developed in Java, ASP, JSP, VBScript, JavaScript, Perl, Cold Fusion, PHP etc. (All the manipulations are done on the web server with the help of these programs developed)
The DBserver would be having oracle, sql server, sybase, mysql etc. (All data is stored in the database available on the DB server)
The tests performed on these types of applications would be
- User interface testing
- Functionality testing
- Security testing
- Browser compatibility testing
- Load / stress testing
- Interoperability testing/intersystem testing
- Storage and data volume testing
A web-application is a three-tier application.
This has a browser (monitors data) [monitoring is done using html, dhtml, xml, javascript]-> webserver (manipulates data) [manipulations are done using programming languages or scripts like adv java, asp, jsp, vbscript, javascript, perl, coldfusion, php] -> database server (stores data) [data storage and retrieval is done using databases like oracle, sql server, sybase, mysql].
The types of tests, which can be applied on this type of applications, are:
1. User interface testing for validation & user friendliness
2. Functionality testing to validate behaviors, i/p, error handling, o/p, manipulations, services levels, order of functionality, links, content of web page & backend coverage’s
3. Security testing
4. Browser compatibility
5. Load / stress testing
6. Interoperability testing
7. Storage & data volume testing
A client-server application is a two tier application.
This has forms & reporting at front-end (monitoring & manipulations are done) [using vb, vc++, core java, c, c++, d2k, power builder etc.,] -> database server at the backend [data storage & retrieval) [using ms access, sql server, oracle, sybase, mysql, quadbase etc.,]
The tests performed on these applications would be
1. User interface testing
2. Manual support testing
3. Functionality testing
4. Compatibility testing
5. Intersystem testing
38. What are the difference between client server, web application and desktop applications?
Desktop application:
1. Application runs in single memory (Front end and Back end in one place)
2. Single user only
Client/Server application:
1. Application runs in two or more machines
2. Application is a menu-driven
3. Connected mode (connection exists always until logout)
4. Limited number of users
5. Less number of network issues when compared to web app.
Web application:
1. Application runs in two or more machines
2. URL-driven
3. Disconnected mode (state less)
4. Unlimited number of users
5. Many issues like hardware compatibility, browser compatibility, version compatibility, security issues, performance issues etc.
As per difference in both the applications come where, how to access the resources. In client server once connection is made it will be in state on connected, whereas in case of web testing http protocol is stateless, then there comes logic of cookies, which is not in client server.
For client server application users are well known, whereas for web application any user can login and access the content, he/she will use it as per his intentions.
So, there are always issues of security and compatibility for web application.
39. What is the difference between Smoke testing and sanity testing?
SMOKE TESTING:
- Smoke testing originated in the hardware testing practice of turning on a new piece of hardware for the first time and considering it a success if it does not catch fire and smoke. In software industry, smoke testing is a shallow and wide approach whereby all areas of the application without getting into too deep, is tested.
- A smoke test is scripted, either using a written set of tests or an automated test
- A Smoke test is designed to touch every part of the application in a cursory way. It’s shallow and wide.
- Smoke testing is conducted to ensure whether the most crucial functions of a program are working, but not bothering with finer details. (Such as build verification).
- Smoke testing is normal health check up to a build of an application before taking it to testing in depth.
- A sanity test is a narrow regression test that focuses on one or a few areas of functionality. Sanity testing is usually narrow and deep.
- A sanity test is usually unscripted.
- A Sanity test is used to determine a small section of the application is still working after a minor change.
- Sanity testing is a cursory testing, it is performed whenever a cursory testing is sufficient to prove the application is functioning according to specifications. This level of testing is a subset of regression testing.
40. What is the Difference between Bug, Error and Defect?
Bug: It is found in the development environment before the product is shipped to the respective customer.
Defect: It is found in the product itself after it is shipped to the respective customer’s
Error: It is the Deviation from actual and the expected value.
41. What is the difference between structural and functional testing?
Structural testing is a "white box" testing and it is based on the algorithm or code.
Functional testing is a "black box" (behavioral) testing where the tester verifies the functional specification.
42. Describe bottom-up and top-down approaches?
Bottom-up approach: In this approach testing is conducted from sub module to main module, if the main module is not developed a temporary program called DRIVERS is used to simulate the main module.
Top-down approach: In this approach testing is conducted from main module to sub module. If the sub module is not developed a temporary program called STUB is used for simulate the sub module.
43.What is Re- test and Regression Testing?
Re- test - Retesting means we testing only the certain part of an application again and not considering how it will effect in the other part or in the whole application.
Regression Testing - Testing the application after a change in a module or part of the application for testing that is the code change will affect rest of the application.
44. Explain Load, Performance and Stress Testing with an Example?
Load Testing and Performance Testing are commonly said as positive testing where as Stress Testing is said to be as negative testing.
for example there is an application which can handle 25 simultaneous user logins at a time. In load testing we will test the application for 25 users and check how application is working in this stage, in performance testing we will concentrate on the time taken to perform the operation. Where as in stress testing, we will test with more users than 25 and the test will continue to any number and we will check where the application is cracking.
45. How Severity and Priority are related to each other?
Severity tells the seriousness/depth of the bug, Severity is application point of view
Priority tells which bug should rectify first, priority is user point of view