Sunday, April 5, 2009

Software Testing Interview Questions







What is software testing?
Software testing is any activity aimed at evaluating an attribute or capability of a program or system and determining that it meets its required results. Although crucial to software quality and widely deployed by programmers and testers, software testing still remains an art, due to limited understanding of the principles of software. The difficulty in software testing stems from the complexity of software: we can not completely test a program with moderate complexity. Testing is more than just debugging. The purpose of testing can be quality assurance, verification and validation, or reliability estimation. Testing can be used as a generic metric as well. Correctness testing and reliability testing are two major areas of testing. Software testing is a trade-off between budget, time and quality. Software Testing is an empirical investigation conducted to provide stakeholders with information about the quality of the product or service under test, with respect to the context in which it is intended to operate. Software testing is an activity being part of the software development process aimed at evaluating a software item (system, subsystem, unit etc.) features (functionality, performance etc.) against the given set of system requirements. Software testing implies running the software item in predetermined conditions (test case, test scenario), recording and analyzing the obtained results, and identifying errors (i.e. bugs), which means failure to satisfy a set of requirements to the software.
What is Black Box Testing?
Testing of a function without knowing internal structure of the program. Black box testing treats the system as a “black-box”, so it doesn’t explicitly use Knowledge of the internal structure or code. Or in other words the Test engineer need not know the internal working of the “Black box” or application.
Typical black box test design techniques include: Cross-functional testing, Equivalence partitioning, State transition tables, Boundary, value analysis, Decision table testing, Pair wise testing, Use case testing.
Tools used for Black Box testing: Black box testing tools are mainly record and playback tools. These tools are used for regression testing that to check whether new build has created any bug in previous working application functionality. These record and playback tools records test cases in the form of some scripts like TSL, VB script, Java script, Perl.
Advantages of Black Box Testing: Tester can be non-technical, used to verify contradictions in actual system and the specifications, test cases can be designed as soon as the functional specifications are complete.
What is White Box Testing?
White box testing (WBT) is also called Structural or Glass box testing. This is a testing of a function with knowing internal structure of the program.
Few tools available for white box testing are analyzers debugger and Fault Injectors. White box testing requires access to the source code. Though white box testing can be performed any time in the life cycle after the code is developed, it is a good practice to perform white box testing during the unit testing phase. The general outline of the white box testing process is as follows: Perform risk analysis to guide the whole testing process, Develop a test strategy that defines what testing activities are needed to accomplish testing goals, Develop a detailed test plan that organizes the subsequent testing process, Prepare the test environment for test execution, Execute test cases and communicate results, Prepare a report.
What is Regression Testing?
To ensure that the code changes have not had an adverse affect to the other modules or on existing functions.
What is Functional Testing?
Study SRS. Identify Unit Functions. For each unit function. Take each input function. Identify Equivalence class. Form Test cases. Form Test cases for boundary values. From Test cases for Error Guessing. Form Unit function v/s Test cases, Cross Reference Matrix. Find the coverage
What is Unit Testing?
Unit is a smallest testable piece of software. A unit can be compiled/ assembled/ linked/ loaded; and put under a test harness. Unit testing done to show that the unit does not satisfy the functional specification and/ or its implemented structure does not match the intended design structure
What is Integration Testing?
Integration is a systematic approach to build the complete software structure specified in the design from unit-tested modules. There are two ways integration performed. It is called Pre-test and Pro-test. Pre-test: the testing performed in Module development area is called Pre-test. The Pre-test is required only if the development is done in module development area. Pro-test: The Integration testing performed in baseline is called pro-test. The development of a release will be scheduled such that the customer can break down into smaller internal releases.
What is Alpha testing?
Testing of an application when development is nearing completion minor design changes may still be made as a result of such testing. Typically done by end-users or others, not by programmers or testers.
What is Beta testing?
Testing when development and testing are essentially completed and final bugs and problems need to be found before final release. Typically done by end-users or others, not by programmers or
What is System Testing?
A system is the big component. System testing is aimed at revealing bugs that cannot be attributed to a component as such, to inconsistencies between components or planned interactions between components. Concern: issues, behaviors that can only be exposed by testing the entire integrated system (e.g., performance, security, recovery).
What is Volume Testing?
The purpose of Volume Testing is to find weaknesses in the system with respect to its handling of large amounts of data during short time periods. For example, this kind of testing ensures that the system will process data across physical and logical boundaries such as across servers and across disk partitions on one server.
What is Stress testing?
This refers to testing system functionality while the system is under unusually heavy or peak load; it’s similar to the validation testing mentioned previously but is carried out in a “high-stress” environment. This requires that you make some predictions about expected load levels of your Web site.
What is Usability testing?
Usability means that systems are easy and fast to learn, efficient to use, easy to remember, cause no operating errors and offer a high degree of satisfaction for the user. Usability means bringing the usage perspective into focus, the side towards the user.
What is Security testing?
If your site requires firewalls, encryption, user authentication, financial transactions, or access to databases with sensitive data, you may need to test these and also test your site’s overall protection against unauthorized internal or external access.
What is Glass Box Testing?
Test case selection that is based on an analysis of the internal structure of the component. Testing by looking only at the code. Some times also called “Code Based Testing”. Obviously you need to be a programmer and you need to have the source code to do this.
What is Test Case?
A set of inputs, execution preconditions, and expected outcomes developed for a particular objective, such as to exercise a particular program path or to verify compliance with a specific requirement.
What is Operational Testing?
Testing conducted to evaluate a system or component in its operational environment.
What is Validation?
Determination of the correctness of the products of software development with respect to the user needs and requirements.
What is Verification?
The process of evaluating a system or component to determine whether the products of the given development phase satisfy the conditions imposed at the start of that phase.
What is Control Flow?
An abstract representation of all possible sequences of events in a program’s execution.
What is CAST?
Acronym for computer-aided software testing.
What is Metrics ?
Ways to measure: e.g., time, cost, customer satisfaction, quality.
Can u test a website or a web application manually without using any automation tool?
As per my idea we can test a web application manually without using automation but its time consuming and might have error so to make our task easy and error free we use automatons tool like Qtp. As for as Manual is concerned we can test Usability, Functionality, Security testing but whereas performance is concerned we can’t do it manually accurate
What tools are used in Manual testing for bug tracking and reporting?
For bug tracking and reporting there are many tools like
Rational clear quest.
PVCS
Bugzilla
At what stage in the SDLC testing should be started?
Testing Starts from the starting sate of SDLC that is requirement stage where we prepare SRS Or URS DOC.
What is mean by designing the application and coding the application?
Designing and Testing are two different phases in a software development process(SDLC).
1. Information Gathering
2. Analysis
3. Designing–
4. Coding
5. Testing–
6. Implementation and Maintenance.
If u want answer in Testing terms means STLC, designing test includes preparing Test Strategy, Test Plan and Test Case documents, and testing means executing the test cases and generating Test Reports.Designing the application as per the requirements Designing the application is nothing but deriving the functional flow, alternative flow, how many modules that we are handling, data flow etc.
Two types of designs are there
HLD: In this designing team will prepare functional architecture i.e Functional flow
LLD: In this designing team will divide the total application into modules and they will derive logic for each module Coding: writing the course code as per the LLD to meet customer requirements
What is the best way to choose automation tool?
We use automation only for version wised projects, means if the project comes up with different versions. Once we write the scripts for one version, we can use these scripts with multiple versions with minor changes. So the main advantage of automation is:
1. Saves the time, 2. Saves money.
What is the point of reference by which something can be measured?
1. Benchmark
2. Baseline
3. Metric
4. Measure
5. Indicator
6.Baseline
What is Concurrency Testing?
Multi-user testing geared towards determining the effects of accessing the same application code, module or database records. Identifies and measures the level of locking, deadlocking and use of single-threaded code and locking semaphores.
When does metrics validation occur?
1. Throughout the life cycle
2. During the test
3. After the test
4. During requirements definition
5. After the final software release
The scenario is “while reviewing requirement docs(SRS)if u find or feel any requirement is not meeting the client’s requirements” whom do you report?and what is your action?
When the System Requirement Specification does not meet the clients requirements, it should be intimated to the PL (who prepares the SRS and should be documented in the Test log & analysis of data which should be discussed in the Management Review Meeting. The action is the SRS should undergo a revision thereby updating SRS to match with CRS
How to choose a test automation tool?
We have to choose depends upon the application complexity & delivery time.Did u come across STUBS and DRIVERS? How did u use these in u r project ?
Stub : A piece of code that simulates the activity of missing components.
Driver : A piece of code that passes test cases to another piece of code.
On what basis you are fixing up the time for project completion?
Test strategy; Based on the test strategy and testing Approach
How u r breaking down the project among team members?
It can be depend on these following cases—-
1) Number of modules
2) Number of team members
3) Complexity of the Project
4) Time Duration of the project
5) Team member’s experience
etc……
Usually customers won’t give all the requirements. How will u manage & collect all the necessary information?
Sometimes customer may not produce all the requirements. At this situation Business analyst and project manager will use their experience which they handles this type of projects otherwise we will go through some reference sites where we will observe the functionality and they will prepare use cases and requirements.
What are the Qualities needed by a software tester?
A software tester must have intent of showing the product is not working as specified.
Software tester has the basic attitude of showing the presence of errors. He must have perspective of customer’s i.e. he has to use the system as he is the client of the system. He has to strive for the quality. The role of a software test engineer in company is to find the defect. He/She should have “test-to-break” attitude. He/She has to test the application taking the customer into mind. He should work hard for quality.
What is the diff. b/w Baseline and Traceability matrix?
Baseline: The point at which some deliverable produced during the software engineering process is put under formal change control
Traceability: Is used to check if some of the test cases are left out or not in Manual and automated testing.
Baseline is nothing but a software specification or functionality that is reviewed or accepted for development. Once the functionality is baseline, we can start developing of the functionality.
Where as a Traceability Matrix lists all the functionality or features and the test cases for each feature. By using the traceability matrix we can measure, when to stop testing of the project or application.
Generally Traceability Matrix contains:
1. UseCaseID(Functionality/Feature).
2. Description of the Feature.
3. Priority for the Feature.
4. TestCaseIDs for this Feature. (Once if the mapped testcases for each Feature meets Success criteria, then we can stop testing of the project)
5. In which phase is the Feature (Unit,Component,Integration,System)
What is the difference between Integration Testing and System Testing?
Integration testing will do the completion of unit or module level. Testing.System testing is nothing but the application meets the Required specifications or not.In integration testing individual components are combined with other components to make sure the necessary communications, links and data sharing occur properly.It is not system testing because the components are not implemented in the operating environment.System testing begins one the modules are integrated enough to perform tests in whole system environment.System testing can occur in parallel with integration test, especially with the top-down method.
How Could u Present Test Strategy for the Product Testing?
Test strategy means that it is a document prepared by quality analyst/project manager. it specifies how to approach to testing team depends upon requirement gatherings, risks involved in our company and customer requirements
What is Functional testing?
Functional Testing:
The portion of security testing in which the advertised features of a system are tested for correct operation.Quality assurance that a web site performs properly. All aspects of the user interface, navigation between pages and off-site, multilingual navigation, etc. are tested. Testing is required in all the current browsers and on the major operating systems and platforms. Functional testing is nothing but whether the given function is working or not as per the specifications
ex: field validation, Navigation etc.
What is Middleware?
In the computer industry, middleware is a general term for any programming that serves to “glue together” or mediate between two separate and often already existing programs. A common application of middleware is to allow programs written for access to a particular database to access other databases. The systematic tying together of disparate applications, often through the use of middleware, is known as enterprise application integration.
What kind of testing to be done in client server application and web application?
Functionality: Links, Internal links, External links, Mail links, Broken links, Forms, Field validation, Functional chart, Error message for wrong input, Optional and mandatory fields, Database, Testing will be done on the database integrity, Cookies, Testing will be done on the client system side, on the temporary internet files.
Performance: Performance testing can be applied to understand the web site’s scalability, or to benchmark the performance in the environment of third party products such as servers and middleware for potential purchase.
Connection speed: Tested over various Networks like Dial up, ISDN etc
Load: What is the no. of users per time?
Check for peak loads & how system behaves.
Large amount of data accessed by user, Stress, Continuous load, Performance of memory, cpu, file handling etc.
Load testing: Load testing is usually defined as the process of exercising the system under test by feeding it the largest tasks it can operate with. Load testing is sometimes called volume testing, or longevity/endurance testing
Volume testing: Testing a word processor by editing a very large document, testing a printer by sending it a very large job, testing a mail server with thousands of users mailboxes
Longevity/endurance testing: Testing a client-server application by running the client in a loop against the server over an extended period of time
Usability : Usability testing is the process by which the human-computer interaction characteristics of a system are measured, and weaknesses are identified for correction. Usability can be defined as the degree to which a given piece of software assists the person sitting at the keyboard to accomplish a task, as opposed to becoming an additional impediment to such accomplishment. The broad goal of usable systems is often assessed using several criteria: Ease of learning, Navigation, Subjective user satisfaction, General appearance
Web Testing:During testing the websites the following scenarios should be considered. Functionality, Performance, Usability, Server side interface, Client side compatibility, Security
Security: The primary reason for testing the security of an web is to identify potential vulnerabilities and subsequently repair them. Network Scanning, Vulnerability Scanning, Password Cracking, Log Review, Integrity Checkers, Virus Detection.
Performance Testing: Performance testing is a rigorous usability evaluation of a working system under realistic conditions to identify usability problems and to compare measures such as success rate, task time and user satisfaction with requirements. The goal of performance testing is not to find bugs, but to eliminate bottlenecks and establish a baseline for future regression testing.
Compatibility Testing: A Testing to ensure compatibility of an application or Web site with different browsers, OS and hardware platforms. Different versions, configurations, display resolutions, and Internet connect speeds all can impact the behavior of the product and introduce costly and embarrassing bugs. We test for compatibility using real test environments. That is testing how will the system performs in the particular software, hardware or network environment. Compatibility testing can be performed manually or can be driven by an automated functional or reg. The purpose of compatibility testing is to reveal issues related to the products interaction session test suits with other software as well as hardware. The product compatibility is evaluated by first identifying the hardware/software/browser components that the product is designed to support. Then a hardware/software/browser matrix is designed that indicates the configurations on which the product will be tested. Then, with input from the client, a testing script is designed that will be sufficient to evaluate compatibility between the product and the hardware/software/browser matrix. Finally, the script is executed against the matrix, and any anomalies are investigated to determine exactly where the incompatibility lies.
Server side interface: In web testing the server side interface should be tested. This is done by Verify that communication is done properly. Compatibility of server with software, hardware, network and database should be tested. The client side compatibility is also tested in various platforms, using various browsers etc.
Goals of load testing: Expose bugs that do not surface in cursory testing, such as memory management bugs, memory leaks, buffer overflows, etc.
ensure that the application meets the performance baseline established during Performance testing. This is done by running regression tests against the application at a specified maximum load. Although performance testing and load testing can seen similar, their goals are different. On one hand, performance testing uses load testing techniques and tools for measurement and benchmarking purposes and uses various load levels whereas load testing operates at a predefined load level, the highest load that the system can accept while still functioning properly.
Stress testing: Stress testing is a form of testing that is used to determine the stability of a given system or entity. This is designed to test the software with abnormal situations. Stress testing attempts to find the limits at which the system will fail through abnormal quantity or frequency of inputs. Stress testing tries to break the system under test by overwhelming its resources or by taking resources away from it (in which case it is sometimes called negative testing). The main purpose behind this madness is to make sure that the system fails and recovers gracefully — this quality is known as recoverability. Stress testing does not break the system but instead it allows observing how the system reacts to failure.
What is Impact analysis? How to do impact analysis in yr project?
Impact analysis means when we r doing regressing testing at that time we r checking that the bug fixes r working properly, and by fixing these bug other components are working as per their requirements r they got disturbed.
What is the difference between three tier and two tier application?
Client server is a 2-tier application. In this, front end or client is connected to
”Data base server” through “Data Source Name”; front end is the monitoring level.
Web based architecture is a 3-tier application. In this, browser is connected to web server through TCP/IP and web server is connected to Database server, browser is the monitoring level. In general, Black box testers are concentrating on monitoring level of any type of application. All the client server applications are 2 tier architectures.
Difference between retesting and regression testing?
Retesting: Re-execution of test cases on same application build with different input values is retesting.
Regression Testing: Re-execution of test cases on modifies form of build is called regression testing.
What is the difference between bug log and defect tracking?
Bug log is a document which maintains the information of the bug where as bug tracking is the process.
Who will change the Bug Status as Differed?
Bug will be in open status while developer is working on it Fixed after developer completes his work if it is not fixed properly the tester puts it in reopen After fixing the bug properly it is in closed state.
What is smoke testing and user interface testing?
Smoke Testing: Smoke testing is non-exhaustive software testing, as pertaining that the most crucial functions of a program work, but not bothering with finer details. The term comes to software testing from a similarly basic type of hardware testing. Smoke testing is nothing but to check whether basic functionality of the build is stable or not.
User interface testing: It’s all about usability. Testing to determine the ease with which a user can learn to operate, input, and interpret outputs of a system or component. We check all the fields whether they are existing or not as per the format we check spelling graphic font sizes everything in the window present or not.
What are bug, defect, issue and error?
Bug: Bug is identified by the tester. A fault or defect in a system or machine
Defect: Whenever the project is received for the analysis phase ,may be some requirement miss to get or understand most of the time Defect itself come with the project. Defect is an imperfection in a device or machine;
Issue: Client site error most of the time. An issue is a major problem that will impede the progress of the project and cannot be resolved by the project manager and project team without outside help
Error: When anything is happened wrong in the project from the development side i.e. called as the error, most of the time this knows by the developer. Error is the deviation of a measurement, observation, or calculation from the truth
What is the diff b/w functional testing and integration testing?
Functional testing is testing the whole functionality of the system or the application whether it is meeting the functional specifications. Integration testing means testing the functionality of integrated module when two individual modules are integrated for this we use top-down approach and bottom up approach
What is Verification and validation?
Verification is static. No code is executed. Say, analysis of requirements etc. Validation is dynamic. Code is executed with scenarios present in test cases.
What is test plan and explain its contents?
Test plan is a document which contains the scope for testing the application and what to be tested, when to be tested and who to test.
What are the advantages of automation over manual testing?
Time, resource and Money
What is ADhoc testing?
AdHoc means doing something which is not planned.
What is mean by release notes?
It’s a document released along with the product which explains about the product. It also contains about the bugs that are in deferred status.
What is hot fix?
A hot fix is a single, cumulative package that includes one or more files that are used to address a problem in a software product. Typically, hot fixes are made to address a specific customer situation and may not be distributed outside the customer organization.
What is Acid Testing?
ACID testing: ACID testing is related to testing a transaction.
A-Atomicity; C-Consistent; I-Isolation; D-Durable.
What is status of defect when you are performing regression testing?
Fixed Status
What is the first test in software testing process?
Unit testing is the first test in testing process, though it is done by developers after the completion of coding it is correct one.
What are the bugs we cannot find in black box?
If there r any bugs in security settings of the pages or any other internal mistake made in coding cannot be found in black box testing.
What is the Difference between adhoc testing and error guessing?
Adhoc testing is without test data r any documents performing testing. Error Guessing is a Test data selection technique. The selection criterion is to pick values that seem likely to cause errors.
What is the difference between test plan and test strategy?
Test plan: After completion of SRS learning and business requirement gathering test management concentrate on test planning, this is done by Test lead, or Project lead.
Test Strategy: Depends on corresponding testing policy quality analyst finalizes test Responsibility Matrix. This is dont by QA. But both r Documents.
What is load testing?
Load testing is to test that if the application works fine with the loads that result from large number of simultaneous users, transactions and to determine weather it can handle peak usage periods.
What is Performance testing?
Timing for both read and update transactions should be gathered to determine whether system functions are being performed in an acceptable timeframe. This should be done standalone and then in a multi user environment to determine the effect of multiple transactions on the timing of a single transaction.
When do you do load and performance Testing?
We perform load testing once we are done with interface (GUI) testing. Modern system architectures are large and complex. Whereas single user testing primarily on functionality and user interface of a system component, application testing focuses on performance and reliability of an entire system. For example, a typical application-testing scenario might depict 1000 users logging in simultaneously to a system. This gives rise to issues such as what is the response time of the system, does it crash, will it go with different software applications and platforms, can it hold so many hundreds and thousands of users, etc. This is when we set do load and performance testing.
What are the components of LoadRunner?
The components of LoadRunner are The Virtual User Generator, Controller, and the Agent process, LoadRunner Analysis and Monitoring, LoadRunner Books Online.
What is a scenario?
A scenario defines the events that occur during each testing session. For example, a scenario defines and controls the number of users to emulate, the actions to be performed, and the machines on which the virtual users run their emulations.
Where do we set automatic correlation options?
Automatic correlation from web point of view can be set in recording options and correlation tab. Here we can enable correlation for the entire script and choose either issue online messages or offline actions, where we can define rules for that correlation. Automatic correlation for database can be done using show output window and scan for correlation and picking the correlate query tab and choose which query value we want to correlate. If we know the specific value to be correlated, we just do create correlation for the value and specify how the value to be created.
How do you debug a LoadRunner script?
VuGen contains two options to help debug Vuser scripts-the Run Step by Step command and breakpoints. The Debug settings in the Options dialog box allow us to determine the extent of the trace to be performed during scenario execution. The debug information is written to the Output window. We can manually set the message class within your script using the lr_set_debug_message function. This is useful if we want to receive debug information about a small section of the script only.
What are the changes you can make in run-time settings?
The Run Time Settings that we make are: a) Pacing - It has iteration count. b) Log - Under this we have Disable Logging Standard Log and c) Extended Think Time - In think time we have two options like Ignore think time and Replay think time. d) General - Under general tab we can set the vusers as process or as multithreading and whether each step as a transaction.
Where do you set Iteration for Vuser testing?
We set Iterations in the Run Time Settings of the VuGen. The navigation for this is Run time settings, Pacing tab, set number of iterations.
How do you perform functional testing under load?
Functionality under load can be tested by running several Vusers concurrently. By increasing the amount of Vusers, we can determine how much load the server can sustain.
What is the advantage of running the Vuser as thread?
VuGen provides the facility to use multithreading. This enables more Vusers to be run per generator. If the Vuser is run as a process, the same driver program is loaded into memory for each Vuser, thus taking up a large amount of memory. This limits the number of Vusers that can be run on a single generator. If the Vuser is run as a thread, only one instance of the driver program is loaded into memory for the given number of Vusers (say 100). Each thread shares the memory of the parent driver program, thus enabling more Vusers to be run per generator.
How do you identify the performance bottlenecks?
Performance Bottlenecks can be detected by using monitors. These monitors might be application server monitors, web server monitors, database server monitors and network monitors. They help in finding out the troubled area in our scenario which causes increased response time. The measurements made are usually performance response time, throughput, hits/sec, network delay graphs, etc.
What is think time? How do you change the threshold?
Think time is the time that a real user waits between actions. Example: When a user receives data from a server, the user may wait several seconds to review the data before responding. This delay is known as the think time. Changing the Threshold: Threshold level is the level below which the recorded think time will be ignored. The default value is five (5) seconds. We can change the think time threshold in the Recording options of the Vugen.
What is the difference between standard log and extended log?
The standard log sends a subset of functions and messages sent during script execution to a log. The subset depends on the Vuser type Extended log sends a detailed script execution messages to the output log. This is mainly used during debugging when we want information about: Parameter substitution, Data returned by the server, Advanced trace.

 

blogger templates 3 columns | Make Money Online