Saturday 8 November 2014

Q1. What is Requirement Traceability Matrix?

The Requirements Traceability Matrix (RTM) is a tool to make sure that project requirement remain same throughout the whole development process. RTM is used in the development process because of following reasons:
• To determine whether the developed project is meet the requirements of the user.
• To determine all the requirements given by the user
• To make sure the application requirement can be fulfilled in the verification process.

Q2. What is difference between Pilot and Beta testing?

The differences between these two are listed below:
• A beta test when the product is about to release to the end user whereas pilot testing take place in the earlier phase of the development cycle.
• In beta testing application is given to a few user to make sure that application meet the user requirement and does not contain any showstopper whereas in case of pilot testing team member give their feedback to improve the quality of the application.

Q3. Describe how to perform Risk analysis during software testing?

Risk analysis is the process of identifying risk in the application and prioritizing them to test. Following are some of the risks:
1. New Hardware.
2. New Technology.
3. New Automation Tool.
4. Sequence of code delivery.
5. Availability of application test resources.
We prioritize them into three categories these are:
• High magnitude: Impact of the bug on the other functionality of the application.
• Medium: it can be tolerable in the application but not desirable.
• Low: it can be tolerable. This type of risk has no impact on the company business.

Q4. What is Silk Test?

Silk Test is a tool developed for performing the regression and functionality testing of the application. Silk Test a tool is used when we are testing the applications which are based on Window, Java, web or traditional client/server. Silk Test help in preparing the test plan and management of those test plans, to provide the direct accessing of the database and validation of the field.

Q5. What is difference between Master Test Plan and Test Plan.

The differences between Master Plan and Test Plan are given below:
• Master Test Plan contains all the testing and risk involved area of the application where as Test case document contains test cases.
• Master Test plan contain all the details of each and every individual tests to be run during the overall development of application whereas test plan describe the scope, approach, resources and schedule of performing test.
• Master Test plan contain the description of every tests that is going to be performed on the application where as test plan only contain the description of few test cases. during the testing cycle like Unit test, System test, beta test etc
• Master Test Plan is created for all large projects but when it is created for the small project then we called it as test plan.

Q6. How to deal with not reproducible bug?

Ans. A bug cannot be reproduced for following reasons:
1. Low memory.
2. Addressing to non available memory location.
3. Things happening in a particular sequence.
Tester can do following things to deal with not reproducible bug:
• Includes steps that are close to the error statement.
• Evaluate the test environment.
• Examine and evaluate test execution results.
• Resources & Time Constraints must be kept in point.

Q7.What is the difference between coupling and cohesion?

The difference between coupling and cohesion is discussed below:
• Cohesion is the degree which is measure dependency of the software component that combines related functionality into a single unit whereas coupling means that binding the related functionality into different unit.
• Cohesion deals with the functionality that related different process within the single module where as coupling deals with how much one module is dependent on the other modules within the application.
• It is good to increase the cohesion between the software whereas increasing coupling is avoided.

Q8. What is the role of QA in a project development?

The role of Quality Assurance is discussed below:
• QA team is responsible for monitoring the process to be carried out for development.
• Responsibilities of QA team are planning testing execution process.
• QA Lead creates the time tables and agrees on a Quality Assurance plan for the product.
• QA team communicated QA process to the team members.
• QA team ensures traceability of test cases to requirements.

Q9. When do you choose automated testing over manual testing?

This choice between automated testing over manual testing can be based upon following factors:
1. Frequency of use of test case
2. Time Comparison (automated script run much faster than manual execution.)
3. Reusability of Automation Script
4. Adaptability of test case for automation.
5. Exploitation of automation tool

Q10. What are the key challenges of software testing?

Following are some challenges of software testing:
1. Application should be stable enough to be tested.
2. Testing always under time constraint
3. Understanding the requirements.
4. Domain knowledge and business user perspective understanding.
5. Which tests to execute first?
6. Testing the Complete Application.
7. Regression testing.
8. Lack of skilled testers.
9. Changing requirements.
10. Lack of resources, tools and training

Q11. What is difference between QA, QC and Software Testing?

Quality Assurance (QA): QA refers to the planned and systematic way of monitoring the quality of process which is followed to produce a quality product. QA tracks the outcomes and adjusts the process to meet the expectation.
Quality Control (QC): Concern with the quality of the product. QC finds the defects and suggests improvements. The process set by QA is implemented by QC. The QC is the responsibility of the tester.
Software Testing: is the process of ensuring that product which is developed by the developer meets the user requirement. The motive to perform testing is to find the bugs and make sure that they get fixed.

Q12. What is concurrent user hits in load testing?

When the multiple users, without any time difference, hits on a same event of the application under the load test is called a concurrent user hit. The concurrency point is added so that multiple Virtual User can work on a single event of the application. By adding concurrency point, the virtual users will wait for the other Virtual users which are running the scripts, if they reach early. When all the users reached to the concurrency point, only then they start hitting the requests.

Q13. What is difference between Front End Testing and Back End testing?

The differences between front and back end testing are:
• Front End Testing is performed on the Graphical User Interface (GUI).whereas Back End Testing involves databases testing.
• Front end consist of web site look where user can interact whereas in case of back end it is the database which is required to store the data.
• When ender user enters data in GUI of the front end application, then this entered data is stored in the database. To save this data into the database we write SQL queries.

Q14. What is Automated Testing?

The process of performing testing automatically which reduces the human intervention this is automation testing. The automation testing is carried out with the help of the some automation tool like QTP, Selenium, WinRunner etc. In automation testing we use a tool that runs the test script to test the application; this test script can be generated manually or automatically. When testing is completed then tools automatically generate the test report and report.

Q15. What is Testware?

The testware is:
• The subset of software which helps in performing the testing of application.
• Testware are required to plan, design, and execute tests. It contains documents, scripts, inputs, expected results, set-up and additional software or utilities used in testing.
• Testware is term given to combination of all utilities and application software that required for testing a software package.
Testware is special because it has:
1. Different purpose
2. Different metrics for quality and
3. Different users

Q16.What is Exhaustive Testing?

Exhaustive Testing, as the name suggests is very exhaustive. Exhaustive testing means to test every component in the application with every possible number of inputs. According to Principles of testing Exhaustive Testing is Impossible because exhaustive testing requires more time and effort to test the application for all possible number of inputs. This may lead to high cost and delay in the release of the application.

Q17. What is Gray Box Testing?

Grey box testing is the hybrid of black box and white box testing. In gray box testing, test engineer has the knowledge of coding section of the component and designs test cases or test data based on system knowledge. In this tester has knowledge of code, but this is less than the knowledge of white box testing. Based on this knowledge the test cases are designed and the software application under test treats as a black box & tester test the application from outside.

Q18. What is Integration Testing?

Integration testing is black box testing. Integration testing focuses on the interfaces between units, to ensure that units work together to complete a specify task. The purpose of integration testing is to confirm that different components of the application interact with each other. Test cases are developed with the purpose of exercising the interfaces between the components. Integration testing is considered complete, when actual results and expected results are same. Integration testing is done after unit testing. There are mainly three approaches to do integration testing:
• Top-down Approach tests the components by integrating from top to bottom.
• Bottom-up approach It takes place from the bottom of the control flow to the higher level components
• Big bang approach In this are different module are joined together to form a complete system and then testing is performed on it.

Q19. What is Scalability Testing?

Scalability testing is testing performed in order to enhanced and improve the functional and performance capabilities of the application. So that, application can meets requirements of the end users. The scalability measurements is done by doing the evaluating the application performance in load and stress conditions. Now depending upon this evaluation we improve and enhanced the capabilities of the application.

Q20. What is Software Requirements Specification?

• A software requirements specification is a document which acts as a contract between the customer and the supplier.
• This SRS contain all the requirement of the end user regarding that application. SRS can be used as a communication medium between the customer and the supplier.
• The developer and tester prepare and examine the application based on the requirements written in the SRS document.
• The SRS documented is prepared by the Business Analyst by taking all the requirements for the customer.

Q21. What is Storage Testing?

In Storage Testing we test those functionalities of the application which is responsible for storing the data into database. The data entered by the end user in GUI or front end, is the same data which is stored in the database. The storage testing determines that the data taken from the front end of the application is stored in correct place and in correct manner in the database.

Q22. What is Stress Testing?

Stress testing tests the software with a motive to check that the application do not crashes if we increase the stress on the application by increasing the large number of user working on the application. We can also apply the stress on the application firing the lots of process which cannot be handled by the application. We perform the stress testing on the application evaluate the application capabilities at or beyond the limits of its specified requirements to determine. Generally, this is a type of performance testing performed in a very high level of load and stress condition.

Q23. What is Test Harness?

A test harness is a collection of software and test data required to test the application by running it in different testing condition like stress, load, data- driven, and monitoring its behavior and outputs. Test Harness contains two main parts:
• Test execution engine
• Test script repository
Automation testing is the use of a tool to control the execution of tests and compare the actual results with the expected results. It also involves the setting up of test pre-conditions.

Q24. Can you define test driver and test stub?

• The Stub is called from the software component to be tested. It is used in top down approach.
• The driver calls a component to be tested. It is used in bottom up approach.
• Both test stub and test driver are dummy software components.
We need test stub and test driver because of following reason:
• Suppose we want to test the interface between modules A and B and we have developed only module A. So we cannot test module A but if a dummy module is prepare, using that we can test module A.
• Now module B cannot send or receive data from module A directly so, in these cases we have to transfer data from one module to another module by some external features. This external feature used is called Driver.

Q25.What is good design?

Design refers to functional design or internal design. Good internal design is indicated by software code whose overall structure is clear, understandable, easily modifiable, and maintainable; is robust with sufficient error-handling and status logging capability, and works correctly when implemented. Good functional design is indicated by an application whose functionality can be traced back to customer and end-user requirements.

Q26. What makes a good QA or Test manager?

A good QA or Test manager should have following characteristics:
• Knowledge about Software development process
• Improve the teamwork to increase productivity
• Improve cooperation between software, test, and QA engineers
• To improvements the QA processes.
• Communication skills.
• able to conduct meetings and keep them focused

Q27. What is Manual scripted Testing and Manual Support testing?

Manual Scripted Testing: Testing method in which the test cases are designed and reviewed by the team before executing it. It is done by manual testing teams.
Manual-Support Testing: Testing technique that involves testing of all the functions performed by the people while preparing the data and using these data from automated system. it is conducted by testing teams

Q28. What is Fuzz testing, backward compatibility testing and assertion testing?

Fuzz Testing: testing application by entering invalid, unexpected, or random data to the application this testing is performed to ensure that application is not crashing when entering incorrect and unformatted data.
Backward Compatibility Testing: Testing method which examines performance of latest software with older versions of the test environment.
Assertion Testing: Type of testing consisting in verifying if the conditions confirm the product requirements.

Q29. How does a client or server environment affect testing?

There are lots of environmental factors that affect the testing like speed of data transfer data transfer, hardware, and server etc while working with client or server technologies, testing will be extensive. When we have time limit, we do the integration testing. In most of the cases we prefer the load, stress and performance testing for examine the capabilities of the application for the client or server environment.

Q30. What are the categories of defects?

There are three main categories of defects:
• Wrong: The requirements are implemented incorrectly in the application.
• Missing: When requirement given by the customer and application is unable to meet those application.
• Extra: A requirement incorporated into the product that was not given by the end customer. This is always a variance from the specification, but may be an attribute desired by the user of the product.  
1.Define software?
 Software is a set of instructions used to acquire inputs and to manipulate them to produce the desired output in terms of functions and performance as determined by the user of the software.
2.Define testing?
 Testing is a process of executing a program with the intent of finding of an error.
3.What are the types of software?
 
    There are two types of software. There are
  • System Software
  • Application Software
4.What is the difference between system and application software?
 
    Computer software is often divided into two categories :
  • System software : This software includes the operating system and all utilities that enable the computer to function.
  • Application software : These consist of programs that do real work for users.
5.Define process?
 A process is a series of steps involving activities, constraints, and resources that produce an intended output of some kind.



6.What is a Software Process?
 A software process is the related set of activities and processes that are involved in developing and evolving a software system.
7.What is the difference between verification and validation?
 
  • Verification is the process of determining whether the output of one phase of software development confirms to that of its previous phase.
  • Validation is the process of determining whether a fully developed system confirms to its requirement specifications.
8.What are the types of maintenance?
 
    There are four types of maintenance. There are
  • Corrective Maintenance
  • Adaptive Maintenance
  • Perfective Maintenance
  • Preventive Maintenance
9.What is SQA?
 Software Quality Assurance is a set of activities designed to evaluate the process by which software is developed and/or maintained.
10.What is the difference between software engineering and system engineering?
 
  • System Engineering is concerned with all aspects of computer based systems development including hardware, software and process engineering.
  • System Engineering are involves in system specification architectural design intergration and deployment.
  • 11.What are the categories of defects?
     
      There are three main categories of defects:
    • Wrong
    • Missing
    • Extra
    12.What are the types of Errors?
     
      Errors can be classified into two categories :
    • Syntax Error
    • Logic Error
    13.What is the difference between syntax and logical errors?
     
    • Syntax Error : A syntax error is a program statement that violates one or more rules of the language in which it is written.
    • Logic Error : A logic error deals with incorrect data fields, out–of–range terms, and invalid combinations.
    14.What is fault?
     A fault is a condition that causes a system to fail in performing its required function.
    15.What is failure?
     Failure is the inability of the software to perform a required function to its specification.

    16.What is a bug?
     A software bug may be defined as a coding error that causes an unexpected defect, fault, flaw, or imperfection in a computer program. In other words, if a program does not perform as intended, it is most likely a bug.
    17.What is test log?
     A test log is used by the test team to record what occurred during test execution.
    18.What is the difference between static and dynamic testing?
     
    • Static testing : is performed using the software documentation. The code is not executing during static testing.
    • Dynamic testing : requires the code to be in an executable state to perform the tests.
    19.What is debugging?
     Debugging is a process that developers go through to identify the cause of bugs or defects in code and undertake corrections.
    20.What is a maturity level?
     A maturity level specifies the level of performance expected from an organization.
    21.Define Metrics?
     The continuous application of measurement based techniques to the software development process and its products to supply meaningful and timely management information, together with the use of those techniques to improve that process and its products.
    22.What is the difference between system and real time software?
     
    • System Software : System software is a collection of programs used to run the system as an assistance to other software programs. The compliers, editors, utilities, operating system components, drivers, and interfaces are examples of system software. This software resides in the computer system and consumes its resources. A computer system without system software cannot function.
    • Real time Software : Real time software deals with a changing environment. First, it collects the input and converts it from analog to a digital, control component that responds to the external environment and performs the action.
    23.What is verification?
     Verification ensures the product is designed to deliver all functionality to the customer; it typically involves reviews and meetings to evaluate documents, plans, code, requirements and specifications; this can be done with checklists, issues lists, walkthroughs and inspection meetings.
    24.What is meant by validation?
     Validation ensures that functionality, as defined in requirements, is the intended behavior of the product; validation typically involves actual testing and takes place after verifications are completed.
    25.What is error tracking?
     Error tracking is an activity that provides a means for assessing the status of a current project.

    26.What is white box testing?
     White box testing is a test case design method that uses the control structure of the procedural design to derive test cases. It is otherwise called as structural testing.
    27.What is Black box testing?
     Black box testing is a test case design method that focuses on the functional requirements of the software. It is otherwise called as functional testing.
    28.What is the difference between coupling and cohension?
     
    • Cohension is a measure of the relative functional strength of a module.
    • Coupling is a measure of the relative interdependence among modules.
    29.What is Software reliability?
     Software reliability is defined as the probability of failure free operation of a computer program in a specified environment for a specified time.
    30.What are the categories of metrics?
     
      There are three types of metrics are :
    • Product Metrics
    • Process Metrics
    • Project Metrics



1. What is Acceptance Testing?
Testing conducted to enable a user/customer to determine whether to accept a software product. Normally performed to validate the software meets a set of agreed acceptance criteria.

2. What is Accessibility Testing?
Verifying a product is accessible to the people having disabilities (deaf, blind, mentally disabled etc.).

3. What is Ad-Hoc Testing?
A testing phase where the tester tries to ‘break’ the system by randomly trying the system’s functionality. Can include negative testing as well. See also Monkey Testing.

4. What is Agile Testing?
Testing practice for projects using agile methodologies, treating development as the customer of testing and emphasizing a test-first design paradigm. See also Test Driven Development.

5. What is Application Binary Interface (ABI)?
A specification defining requirements for portability of applications in binary forms across different system platforms and environments.

6. What is Application Programming Interface (API)?
A formalized set of software calls and routines that can be referenced by an application program in order to access supporting system or network services.

7. What is Automated Software Quality (ASQ)?
The use of software tools, such as automated testing tools, to improve software quality.

8. What is Automated Testing?
Testing employing software tools which execute tests without manual intervention. Can be applied in GUI, performance, API, etc. testing. The use of software to control the execution of tests, the comparison of actual outcomes to predicted outcomes, the setting up of test preconditions, and other test control and test reporting functions.
 
9. What is Backus-Naur Form?
A metalanguage used to formally describe the syntax of a language.

10. What is Basic Block?
A sequence of one or more consecutive, executable statements containing no
branches.

11. What is Basis Path Testing?
A white box test case design technique that uses the algorithmic flow of the program to design tests.

12. What is Basis Set?
The set of tests derived using basis path testing.

13. What is Baseline?
The point at which some deliverable produced during the software engineering process is put under formal change control.

14. What you will do during the first day of job?
What would you like to do five years from now?

15. What is Beta Testing?
Testing of a rerelease of a software product conducted by customers.

16. What is Binary Portability Testing?
Testing an executable application for portability across system platforms and environments, usually for conformation to an ABI specification.

17. What is Black Box Testing?
Testing based on an analysis of the specification of a piece of software without reference to its internal workings. The goal is to test how well the component conforms to the published requirements for the component.

18. What is Bottom Up Testing?
An approach to integration testing where the lowest level components are tested first, then used to facilitate the testing of higher level components. The process is repeated until the component at the top of the hierarchy is tested.

19. What is Boundary Testing?
Test which focus on the boundary or limit conditions of the software being tested. (Some of these tests are stress tests).
 
20. What is Boundary Value Analysis?
BVA is similar to Equivalence Partitioning but focuses on “corner cases” or values that are usually out of range as defined by the specification. his means that if a function expects all values in range of negative 100 to positive 1000, test inputs would include negative 101 and positive 1001.

21. What is Branch Testing?
Testing in which all branches in the program source code are tested at least once.

22. What is Breadth Testing?
A test suite that exercises the full functionality of a product but does not test features in detail.
 
23. What is CAST?
Computer Aided Software Testing.

24. What is Capture/Replay Tool?
A test tool that records test input as it is sent to the software under test. The input cases stored can then be used to reproduce the test at a later time. Most commonly applied to GUI test tools.
 
25. What is CMM?
The Capability Maturity Model for Software (CMM or SW-CMM) is a model for judging the maturity of the software processes of an organization and for identifying the key practices that are required to increase the maturity of these processes.