Monday, 16 February 2015

Sometimes, QTP is unable to find any object that matches the recognized object description or it may find more than one object that fits the description, then QTP ignores the recognized description and uses the Smart Identification mechanism to recognize the object.
QTP's Smart Identification uses two types of properties:
  • Base Filter Properties - The basic properties of a particular test object class whose values cannot be changed without changing the essence of the original object.
  • Optional Filter Properties - Other properties also assist in identifying the objects of a particular class whose properties are unlikely to change often but can be ignored if they are no longer applicable.

Enabling Smart identification for an object:

Step 1 : Navigate to "Tools" -> "Object Identification". Object Identification Dialog Opens.
Step 2 : Choose the Environment, Object Class and Turn ON "Enable Smart Identification" as shown below:
Smart Identification Configuration
Step 3 : Click Configure and choosing the base and Optional Filter Properties.
Smart Identification Configuration
Step 3 : Add Properties in Base Properties apart from the Default one and also add/remove Optional Filter Properties. Please Note that Same properties cannot be part of both Mandatory and Assistive Properties and click "OK".
Smart Identification Configuration
Step 4 : Verifying if the Smart Identification is Enabled after Adding object of that type in the Object Repository. Smart Identification is Set to TRUE. We can also make it False in case we dont want to enable Smart Identification.
Smart Identification Configuration
Step 5 : We can even disable a test Level by applying at test script level under "Settings" of "File" Menu as shown below:
Smart Identification Configuration
Step 6 : If the Smart Identification is disabled as per Step# 6 then it wont apply smart identification for any object during script execution.
Step 7 : In case objects are added with Smart Identification as Off, QTP won't use Smart Identification for recognizing in future, even though we have enabled it afterwords.

What is Synchronization?

Synchronization point is the time interface between Tool and Application under test. Synchronization point is a feature to specify delay time between one step and another of the test script.
For Example, clicking on a link may load the page is 1 second, sometimes 5 seconds or even it might take 10 seconds to load it completely. It depends on various factors such as the application server response time, network bandwidth , client system capabilities etc.
If the time is varying then the script will fail unless the tester handles these time differences intelligently.

Ways to Insert Sync Point:

  • WaitProperty
  • Exist
  • Wait
  • Sync(only for web based apps)
  • Inserting QTP Inbuilt Synchronization points.
Let us say we need to insert a sync point beween clicking on "numbers" link and clicking on "simple Interest" calculator of in "http://easycalculation.com/". We will now take a look at all the 5 ways to insert sync point for the above scenario.

METHOD 1: WAITPROPERTY

WaitProperty is a method that takes the property name, Value and Timeout value as input to perform the sync. It is a dynamic wait and hence this option is encouraged.
' Method 1 - WaitProperty with 25 seconds
Dim obj
Set obj = Browser("Math Calculator").Page("Math Calculator")
obj.Link("Numbers").Click

obj.Link("Simple Interest").WaitProperty "text", "Simple Interest",25000
obj.Link("Simple Interest").Click

METHOD 2: EXIST

Exist is a method that takes the Timeout value as input to perform the sync. Again it is a dynamic wait and hence this option is encouraged.
' Method 2 : Exist Timeout - 30 Seconds
Dim obj
Set obj = Browser("Math Calculator").Page("Math Calculator")
obj.Link("Numbers").Click

If obj.Link("Simple Interest").Exist(30) Then
 obj.Link("Simple Interest").Click
Else
 Print "Link NOT Available"
End IF

METHOD 3: WAIT

Wait is a hardcoded sync point which waits independent of the event happened or NOT. Hence usage of Wait is discouraged and can be used for shorter wait time such as 1 or 2 seconds.
' Method 3 : Wait Timeout - 30 Seconds
Dim obj
Set obj = Browser("Math Calculator").Page("Math Calculator")
obj.Link("Numbers").Click
wait(30)
Browser("Math Calculator").Page("Math Calculator").Link("Simple Interest").Click

METHOD 4: SYNC METHOD

Sync Method can be used only for web applications where there is always a lag between page loads.
' Method 4 : 
Dim obj
Set obj = Browser("Math Calculator").Page("Math Calculator")
obj.Link("Numbers").Click

Browser("Math Calculator").Sync
Browser("Math Calculator").Page("Math Calculator").Link("Simple Interest").Click

METHOD 5 : INSERTING QTP INBUILT SYNCHRONIZATION POINTS:

Step 1 : Get into Recording Mode. This Option Would be Disabled if the user is NOT in Recording Mode.
Step 2 : Goto "Design" -> "Synchronization Point" .
Step 3 : We need to Select the object which we want to be the Sync Point. After Selecting the object, object window opens as shown below:
QTP Sync Point
Step 4 : Click Ok, the "Add Synchronization Window" Opens up. Select the Property, Value and Time out value and click ok as shown below:
QTP Sync Point
Step 5 : The Script would be generated as shown below which is the same as that of the WaitProperty(Method 1) that we had already discussed:
Browser("Math Calculator").Page("Math Calculator").Link("Numbers").Click
Browser("Math Calculator").Page("Math Calculator").Link("Simple Interest").WaitProperty "text", "Simple Interest", 10000

Default Synchronization:

When user hasn't used any of the above sync methods, still QTP has inbuild Object synchronization timeout which can be adjusted by the user.
Navigate to "File" >> "Settings" >> Run Tab >> Object Synchronization Time out as shown below.
Default Synchronization Time Out

What are CheckPoints?

Checkpoints, as the name says it all, it refers to a validation point that compares the current value for specified properties or current state of an object with the expected value which can be inserted at any point of time in the script.

Types:

TypeDescription
Standard CheckpointVerifies the property values of an object in application under test and supported by all add-in environments.
Bitmap CheckpointVerifies an area of your application as a bitmap
File Content CheckpointVerifies the text in a dynamically generated or accessed file such as .txt,.pdf
Table CheckpointVerifies the information within a table. Not all environments are supported.
Text CheckpointVerify if the text that is displayed within a defined area in a Windows-based application, according to specified criteria.
Text Area CheckpointVerifies if the text string is displayed within a defined area in a Windows-based application, according to specified criteria.
Accessibility CheckpointVerifies the page and reports the areas of the Web site that may not conform to the World Wide Web Consortium (W3C) Web Content Accessibility Guidelines
Page CheckpointVerifies the characteristics of a Web page. It can also check for broken links.
Database CheckpointVerifies the contents of a database accessed by the application under test.
XML CheckpointVerifies the content of the .xml documents or .xml documents in Web pages and frames.

Inserting CheckPoint

When the user wants to insert a checkpoint, one has to ensure that most of the checkpoints are supported during the recording sessions only. Once the user stops recording, checkpoints are NOT enabled.
Below is the checkpoint menu, when the user is NOT in the recording mode.
Check Point Menu when Recording NOT in Progress
Below is the checkpoint menu, when the user is in the recording mode.
Check Point Menu when Recording is in Progress

Example:

The checkpoints are added for the application under test - "http://easycalculation.com/"
' 1. Inserted Standard Checkpoint
Status = Browser("Math Calculator").Page("Math Calculator").Link("Numbers").Check CheckPoint("Numbers")

If Status Then
   print "Checkpoint Passed"
Else
   Print "Checkpoint Failed"
End if

' 2. Inserted BitMap Checkpoint
imgchkpoint = Browser("Math Calculator").Page("Math Calculator").Image("French").Check CheckPoint("French")

If imgchkpoint Then
   print "Checkpoint Passed"
Else
   Print "Checkpoint Failed"
End if

Viewing Checkpoint Properties

After Inserting, incase a tester want to change the values, we can do so by performing right click on the keyword 'checkpoint' of the script and navigating to "Checkpoint Properties" as shown below:
Check point properties.
You can locate the same checkpoints in object repository as well as shown below. It exactly shows what type of checkpoint and what are the expected values, time out values.
Check point properties.

Datatables:

A DataTable, similar to Microsoft Excel helps testers to create data driven test cases that can be used to run an Action multiple times. There are two types of Datatables.
  • Local Data Table - Each action has its own private data table also known as local data table which is can also be accessed across actions.
  • Global Data Table - Each test has one global data sheet that is accessible across actions.
The Data sheet can be accessed from the "Data" Tab of QTP as shown below:
Data Table in QTP
To execute a test case for some specified number of iterations,one can set the iterations of global data table in the Test Settings dialog, that can be accessed using File -> Settings -> Run(Tab) as shown below:
Data Table in QTP

Example:

For Instance, if user wants to parameterize "compound Interest" of "http://zubaerkhan.com/" that can be accessed using "http://zubaerkhan.com/compound-interest.php". The Parameters can be created as shown below. Most of the functionalities of Excel can be used in Data table as well.
Data Table in QTP

Data Table Operations:

There are three types of objects to access Data Table. Data Table Operations can be well understood by traversing through the below link:
Object TypeDescription
Data Table MethodsGives Detailed information about the data table methods.
DTParameter Object MethodsGives Detailed information about the DTParameter methods.
DTSheet Object MethodsGives Detailed information about the DTSheet methods.
Actions:
Actions helps testers to divide scripts into groups of QTP statements called actions. Actions are similar to functions in VBScript, however there are few differences. By Default QTP creates a test with 1 action.

Actions Functions
Actions are inbuild feature of QTP. VBScript Functions are supported by both VBScript and QTP.
Actions parameters are passed byvalue only. Function parameters are passed either by byvalue or byref.
Actions have extension .mts Functions are saved as .vbs or .qfl
Actions may or maynot be reusable. Functions are always reusable.
The properties of the action can be accessed by Right Clicking on the Script Editor Window and Selecting "Properties".



Action properties contains following information


Action Name

Location

Reusable Flag

Input Parameters

Output Parameters

Types of Actions:
There are three types of actions:
Non-reusable action - An action that can be called only in that specific test in which it has been designed and can be called only once

Reusable action - An action that can be called multiple times any test in which it resides and can also be used by any other tests

External Reusable action - It is a reusable action stored in another test. External actions are read-only in the calling test, but it can be used locally with the editable copy of the Data Table information for the external action

Working with Actions:
Working with Actions:
There are three options to insert an action. Click on each one of those to know more about the selected type of action.

  • Action Type Description

  • Insert Call to New Action Inserts a New Action from the existing action
  • Insert Call to Copy of Action Inserts a copy of an existing action
  • Insert Call to Existing Action Inserts a call to existing re-usable action


Object Repository:


Object Repository:
Object Repository is a collection of object and properties with which QTP will be able to recognize the objects and act on it. When a user records a test, the objects and its properties are captured by default. Without understanding objects and its properties, QTP will NOT be able to play back the scripts.

Click on each one of the below topics to know more about Object Repository and its associated features.

  • Topic Description

  • Object Spy and its Features To Understand the usage of object Spy and its associated functionalities.
  • Working with Object Repository Adding,Editing, Deleting Objects from a Object Repository and its associated functionalities.
  • Types of Object Repository Deals with Shared Object and Local Object Repository and their context with respect to scripting.
  • User-defined Objects Deals with the circumstances to use the User-Defined Objects.
  • Object Repository in XML Deals with coverting OR's to XML and how to use the object Repository as XML.
  • Comparing and Merging OR Operations such as Compare OR', Merge OR's to effectively work with Object Repository.
  • Ordinal Identifiers Circumstances when the ordinal identifiers are used and their advantages.
  • Child Objects Using Child Objects for effective scripting


Significance of Record and Playback:
It is used as the preliminary investigation method to verify if UFT can support the technology/application.

Used to create a test a basic functionality of an application or feature that does not require long-term maintenance.

It can be used for recording both mouse movements and keyboard inputs.

Modes of Recording:
Normal Recording: This is the default Recording mode that records the objects and the operations performed on the application under test.

Analog Recording: This records not only the keyboard actions but also the mouse movements relative to the screen or the application window.

Low-Level Recording: This records the exact co-ordinates of the objects independent of the fact whether UFT recognizes the object or NOT. It just records the co-ordinates, hence does NOT record mouse movements.

Insight Recording: UFT records operation based on its appearance and NOT based on its native properties.

How to Choose Recording Modes:
Upon clicking on Recording button, user can choose the recording mode from the recording pane that appears on the screen once recording starts. The selection can be made from any the ones that has been discussed above.



The Below Scenario is recorded in all the modes and see how the same action has been recorded under various circumstances.

Launch IE - http://zubaerkhan.com/

Click "Numbers" under "Algebra"

Click "Square Root" link

Enter a value to calculate the square root. Let us say 10

Hit Calculate

Script Recorded under Default, Analog and Low Level Recording Mode.

Record and Playback

Recording a test corresponds to recording the user actions of the application under test so that UFT automatically generates the scripts that can be played back. Record and Playback can give us the first impression if the tool can support the technology or NOT if the initial settings are done correctly.

Steps for Record and Playback are as follows:

Step 1: Click on "New" test from the Start Page as shown below:



2.Step 2: Upon Clicking, "New" Link, the new test window opens and the user need to select the test type. Select "GUI Test", give a name for the test and also the location where it needs to be saved



3.Step 3: Once a New test is created, the new test screen opens as shown below. Now, click on "Action1" Tab which is created with 1 action by default.



4. Step 4: Click on "Record" Menu and select "Record and Run Settings" as shown below:



5.Step 5: The Record and Run Settings Dialog opens and based on the type of application, one can select i.e Web, Java, Windows Applications. For Example, We will record a Web Based Application (http://easycalculation.com/)


6. Step 6: Click Record Button, the Internet Explorer opens automatically with the webaddress http://easycalculation.com/ as per the settings. Click "Numbers" link under "Algebra" and key in a number and hit "calculate". Upon completion of the action click "Stop" button in the record panel. You will notice that the script is generated as shown below:



7. Step 7: Now playback the script by clicking on the playback button. The Script replays and result is displayed.


8. Step 8: The result window is opened by default which exactly shows the timestamp of execution, pass and failed steps.


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