Sunday, 22 January 2012

Jmeter Interview Questions

What is Jmeter?
JMeter is one of the Java tools which is used to perform load testing client/server applications. 
Apache JMeter is open source software, a 100% pure Java desktop application
designed to load test functional behavior and measure performance of the application.
It was originally designed for testing Web Applications but has since expanded to other test functions

What are the other applications tested by Jmeter?
JMeter may be used to test performance both on static and dynamic resources (files, Servlets, Perl scripts, Java Objects, Data Bases and Queries, FTP Servers and more)
What do u sees when u opens a JMeter?
By default,
Test Plan
Workbench
Can be seen
What is Test Plan in Jmeter?
Test plan describes a series of steps JMeter will execute when run.
A complete test plan will consist of one or more Thread Groups, logic conrollers, sample generating controllers, listeners, timers, assertions, and configuration elements.

What is Work bench?
The Workbench is simply an area to store test elements while you are in the process of constructing a test. 
The Workbench is a sandbox for any test or portion of a test that you are working on.
When you are ready to test what you have designed in the Workbench, you can copy or move the elements into the Test Plan.

It also contains Non- Test Elements
Http mirror sever
Http Proxy server
which is not available in the thread group & Test plan

What is Thread Group?
Thread group elements are the beginning points of any test plan.
  1. All controllers and samplers must be under a thread group. 
  2. Listeners may be placed directly under the test plan, in which case they will apply to all the thread groups. 
  3. The controls for a thread group allow you to:
  • Set the number of threads
  • Set the ramp-up period
  • Set the number of times to execute the test 

What are the parts of thread group?
  • Sampler :Sends various types of requests to the server
  • Listeners : Results of the Run can be viewed & saved
  • Timer : Makes the run more realistic by inserting delays between the requests
  • Controller : responsible for controlling the flow of the thread group.If we have defined request to be executed on some logic like if-then-else or loop structure in java
  • Config Element: Info about the requests are added to work with samplers using this.
  • Assertion: To check if the responses are within given time and containing expected data. 
What are Controllers and its types?
JMeter has two types of Controllers

Samplers Controllers
Logical Controllers

Samplers Controllers
Samplers tell JMeter to send requests to a server.
For example, add an HTTP Request Sampler if you want JMeter to send an HTTP request. You can also customize a request by adding one or more Configuration Elements to a Sampler.

Logical Controllers

Logical Controllers let you customize the logic that JMeter uses to decide when to send requests.
Logic Controllers can change the order of requests coming from their child elements.
For example, you can add an Interleave Logic Controller to alternate between two HTTP Request Samplers.

What is Configuration element?
A configuration element works closely with a Sampler
Configuration elements can be used to set up defaults and variables for later use by samplers.
Note that these elements are processed at the start of the scope in which they are found, i.e. before any samplers in the same scope.

Its elements:
CSV Data Set Config: Used to read lines from a file, and split them into variables.
HTTP Authorization Manager: You can specify one or more user logins for web pages that are restricted using server authentication
Java Request Defaults: You can set default values for Java testing
HTTP Cookie Manager: The Cookie Manager element has two functions: 
1.                  It stores and sends cookies just like a web browser.
2.                  Second, you can manually add a cookie to the Cookie Manager. However, if you do this, the cookie will be shared by all JMeter threads
HTTP Request Defaults: This element lets you set default values that your HTTP Request controllers use.
HTTP Header Manager: The Header Manager lets you add or override HTTP request headers

What are Listeners?
A listener is a component that shows the results of the samples
The results can be shown in a tree, tables, graphs or simply written to a log file

The Graph Results listener plots the response times on a graph.
The "View Results Tree" Listener shows details of sampler requests and responses, and can display basic HTML and XML representations of the response.
Other listeners provide summary or aggregation information.

Every listener in JMeter provides a field to indicate the file to store data to.
They also provide means to view, save, and read saved test results.

Ques. Is the url in question. While I (think) I understand what this url is doing, what are my steps to test in JMeter? Any help appreciated.

Ans. The steps to test in Jmeter depend largely on what you're trying to test.
As a starting point, I would recommend recording logging into the site, so you capture every parameter that's being sent along with its value.You can then parametrize these values as needed. It looks like once someone logs in, they get redirected to another page. Mostly likely when you record, you'll see the login page and then a landing page captured. appreciate the response. what is happening is i am going from a somesite.com, click login, which directs to Subdomain.somesite.com/users/sign_in/service:accounts?redirect=/ at which point you enter credentials and goto subdomain.somesite.com/. In fiddler, the result is to goto root of subdomain.somesite.com, so that is working. The next question would be how to record in JMeter the request 'subdomain.somesite.com/users/sign_in/service:accounts?redirect=/' Is it an http Request that I track, is it broken up and the path added in the path field, how is the ':' handled... thanks for insight .
When you record it, JMeter will automatically capture all the redirect pages and sub domains. Most likely the redirect will be an HTTP Request to "/users/sign_in/service:accounts" with parameter for redirect with value
Performance testing is an important process of any software development. Even though these are not common interview questions for Java developers, you can bring it up yourself to many open-ended questions. Setting up a performance/load test script is always the first step in fixing non-functional and hard to reproduce issues relating to memory leaks, database deadlocks, thread-safety,  CPU usage, excessive disk I/O, etc. 

Q. How did you go about fixing a performance issue?
A. Set up
 JMeter to reproduce the production like scenario to put through concurrent requests and put the system under heavy load. Used a profiling tool to monitor CPU times, memory usage, etc.

Q.
 What are some of your recent accomplishments?
A.  Reduced the response time from 4 seconds to 2 seconds. Set up
 JMeter to put the system under peak load. Used a profiling tool to monitor CPU times, memory usage, etc. Identified the bottle neck, and improved the situation by fixing the offending database connection leak, back tracking regular expression, and a badly constructed SQL query with Cartesian joins. 

Q.
 How would you go about writing a JMeter based performance test case for the following scenario?

·                     XML/HTTP based RESTful Web Service calls are made against an order execution system. The system should be able to handle a basic load of 30 orders per 3 min. There will be 30 concurrent users. This means 600 orders per minute.
·                     The test case should simulate at least 2 different account ids.
·                     30 orders per 3 min x 60 minutes = 600 orders per hour.

A.
 The JMeter version 2.4 is used for the following screenshots. The number of artefacts shown for this are as shown below.

STEP 1: Relevant files.


·                     OrderExecution.jmx is the JMeter script.
·                     1-OrderRequest.xml and 2-OrderRequest.xml are the two sample XML payloads that will be sent via an HTTP POST (RESTful Web service).
·                     TestData.csv is a data file used for retrieving values 1 & 2 to switch between 1-OrderRequest.xml and 2-OrderRequest.xml to simulate 2 different accounts.

1-OrderRequest.xml

1
2
3
4
5
6
<?xml version="1.0" encoding="UTF-8"?>
<OrderRequest>
    <accountId>12345</accountId>
    <quantity>150</quantity>
    <unitPrice>12.50</unitPrice>
</OrderRequest>

2-OrderRequest.xml
1
2
3
4
5
6
<?xml version="1.0" encoding="UTF-8"?>
<OrderRequest>
    <accountId>6789</accountId>
    <quantity>200</quantity>
    <unitPrice>6.50</unitPrice>
</OrderRequest>

TestData.csv
1
2
1
2
STEP 2: JMeter scripts

If you open the OrderExecution.jmx script file, you will see something like this.
 

Lets' go through each of the elements.
 Thread Groups are equivalent of virtual users in other performance testing system. You can add this element by right clicking on the test plan and then selecting Add --> Threads (Users) --> Thread Group. As per the requirements, the system should handle 30 concurrent users. The ramp up time is 180 seconds, which is 3 minutes. All 30 threads will get started in 3 minutes. The loop count is set to 20, to produce 600 orders (i.e. 30 threads * 20 loops) . 
It is a good practice to define some variables as shown below, so that these variables can be used in downstream elements without having to hard code. If you want to run against a different host, you can just change it in spot as opposed to having to change it in a number of places. You can add this by right clicking on "Order Processing" and then selecting Add --> Config Element --> User Defined Variables.
The CSV Data Config is a very useful element to read test data from CSV file and then save the read values into some variable. In this example, the values 1 and 2 are read from the file TestData.csv, and stored in a variable named "account". The one iteration will set account to 1, and the next iteration will set it to 2, and then the same assigment repeats since "recycle on EOF" is set to true.


The HTTP Header manager sets the HTTP headers. In this example, the content type is set to application/xml because we are posting the XML files 1-OrderRequest.xml & 2-OrderRequest.xml 
The HTTP request defaults sets the default values so that you don't have to repeat it in each request. Also, note that the user defined variables in the first step are used within ${} as opposed to literal values. 

The loop controller can be added to loop through the samplers a number of times. In this example, it is set to 1. 
The samplers can be added by right clicking on the "Create Order" loop controller and then selecting Add --> Sampler --> HTTP Request. It shows the path, method, and the file to send. The actual RESTFul web service call will have the URL
1
http://localhost:8080/myapp/executionservices/execution/1.0/order/create
Also, note that in the File Path the ${DATA_PATH} is a user defined value, and ${account} is a variable that is assigned from the TestData.csv file via the CSV Data Config element. The account will be dynamically changed between 1 and 2 to retrieve the files 1-OrderRequest.xml and 2-OrderRequest.xml respectively for each iteration. 

JMeter supports a number of samplers like SOAP request, FTP request, JDBC request, JMS publisher, JMS subscriber, etc to name a few. 
The
 XPath assertions are used to assert the response for presence of responseCode="SUCCESS" and a valid orderId > 0. The response message will look like
1
2
3
4
5
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<OrderResponse>
   <orderId>50045671</orderId>
   <responseCode>SUCCESS</responseCode>
</OrderResponse>
The other three elements are reporting elements. There are many reporting elements to choose from depending on the requirements. You can add reporting elements via Add --> Listener.
Finally the Gaussian Timer that will delay the execution by 3 minutes (i.e. 180000 ms) with a standard deviation of 10 seconds. This will ensure the throuput of 30 orders per 3 minutes. 
Q. How would you go about automatically recording the your browser actions into JMeter?
A.
 This can be achieved 2 ways.
Use
 BadBoy, which is a tool to record your Web interactions.The  recorded script can be exported as a JMeter file with the extension .jmx to be imported into JMeter. The generated script will not be pretty, but it can be cleaned up and further extended within JMeter with user defined variables,  CSV data config, HTTP defaults, etc. You can record the script as you use your application.

    
·                     Use JMeter as an HTTP proxy server to record your browser actions.Firstly, set up your JMeter to act as a proxy server on an available port like say 9090 as shown below.
  Configure the proxy server as shown below:
·                     Port: 9090
·                     Target Controller indicates where to record. In the above diagram indicates to capture it in the WorkBench under the proxy server itself. This allows you to later on move the captured elements one by one into the TestPlan. 
·                      You don't want to capture everything. So, filter it with include and exclude patterns. For example,  Include: .*myapp.*, Exclude: .*\.jpg. 
·                     "Start" the proxy server.
You need to set up your browser to use this proxy server.
Finally, start using the browser to record your actions. For example, you could use the following URL
http://myhost:7001/myapp/home
 
Note: If you use
 localhost instead of myapp as the host, JMeter may not record your actions. To overcome this, type ipconfig on your DOS prompt and copy the local IP address and use that instead of localhost in your URL.
Q.
 What are Pre-Processor and Post-Processor elements?  In what order does JMeter process various type of elements?
A. A
 Pre-Processor executes some action prior to a Sampler Request being made. If a Pre-Processor is attached to a Sampler element, then it will execute just prior to that sampler element running. A Pre-Processor is most often used to modify the settings of a Sample Request just before it runs, or to update variables that aren't extracted from response text.
A
 Post-Processor executes some action after a Sampler Request has been made. If a Post-Processor is attached to a Sampler element, then it will execute just after that sampler element runs. A Post-Processor is most often used to process the response data, often to extract values from it.
A
 Regular Expression Extractor can be used as a Post-Processor element to extract values to be used elsewhere in subsequent requests. For example, if you are using JSF and Seam frameworks, the jsfViewState and CID values can be extracted as shown below:
The elements are executed in the following order as per the JMeter documentation.
0. Configuration elements
1. Pre-Processors
2. Timers
3. Sampler
4. Post-Processors (unless SampleResult is null)
 
5. Assertions (unless SampleResult is null)
 
6. Listeners (unless SampleResult is null)
Timers, Assertions, Pre- and Post-Processors are only processed if there is a sampler to which they apply. Logic Controllers and Samplers are processed in the order in which they appear in the tree. Other test elements are processed according to the scope in which they are found, and the type of test element.
 
Q.
 What are some of the challenges you faced with JMeter?
A.
If a subsequent request rely on the cookie set by the previous request, the "cookie manager" element is required.
 When setting up the "CSV Data Set Config", don't have any spaces in the variable names.
Q. Have you used any features of JMeter that gave you greater flexibility?
A.
 Yes. The JMeter supports BeanShell scripting for greater flexibility. The BeanShell is a small, free, embeddable Java source interpreter with object scripting language features, written in Java. 
If you want to output all the order ids extracted out of the response messages for the response messages shown below
1
2
3
4
<OrderResponse>
<orderId>50013914</orderId>
<responseCode>SUCCESS</responseCode>
</OrderResponse>
1
  
An XPath Extractor can be used to extract the "orderId" from the response message and store it in a variable named "orderId" as shown below.

Now, the
 BeanShell PostProcessor can use the extracted "orderId" variable and write to a file (e.g. C:\\Temp\\order-processing\id.txt ) as shown below.

You could do a lot more powerful things by writing your own embedded scripting with the BeanShell. For example, You can create your own file named MyBeanShell.bshr and copy it to $JMETER_HOME\bin folder. The MyBeanShell.bshr will have functions like
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
getReportStartDate()
{

 import java.text.SimpleDateFormat;

 cal = Calendar.getInstance();
 cal.add(Calendar.DATE, -10);
 sdf = new SimpleDateFormat("dd-MMMM-yyyy");
 return sdf.format(cal.getTime());
  }
 isTenth(int loopCounter)
{
  returnValue = false;
 if (loopCounter % 10 == 0)
 {
 returnValue = true;
 }
 return returnValue;
}
You could invoke these functions from your JMeter elements like
${__BeanShell(return getReportStrtDate();)}
Also, note that pre-defined functions like  __time can be used  as shown above. There are also handy JMeter plugins from Google code at http://code.google.com/p/jmeter-plugins/ containing useful functions, listeners, samplers, etc. Just download the zip file and extract the "JMeterPlugins.jar" into $JMETER_HOME\lib\ext folder. This plugin features are prefixed with jp@gc.
Finally, instead of BeanShell or simple functions out of the box like __time, you could also write your own Java based custom functions using theorg.apache.jmeter.functions.Function
 interface by writing your function  as described here http://gabenell.blogspot.com/2010/01/custom-functions-for-jmeter.html.
Q.
 How do you ensure re-usability  in your JMeter scripts?
A.
 
Using config elements like "CSV Data Set Config", "User Defined Variables", etc for greater data reuse.
·                     Modularizing shared tasks and invoking them via a "Module Controller".
·                     Writing your own BeanShell functions, and reusing them.




Note: If you want to download the Jmeter Foundation Book Download from link
http://www.scribd.com/doc/79061417/Jmeter-Book

SQL Interview Questions For Software Testers


1. Q. What does SQL stand for?
   A. Structured Query Language
   Q. Who was E. F. Codd?
   A. He was the original inventor of the relational model.
2. Q. How do you select all records from the table?
   A. Select * from table_name;
   Q. What do you understand by the term referential integrity?

3. Q. What is a join?
   A. Join is a process of retrieve pieces of data from different sets (tables) and returns them to the user or program as one â€Å“joined” collection of data.

4. Q. What kinds of joins do you know? Give examples.
   A. We have self join, outer joint (LEFT, RIGHT), , cross-join ( Cartesian product n*m rows returned)
Exp:
outer joint
SELECT Employee.Name, Department. DeptName
FROM Employee, Department
WHERE Employee.Employee_ID = Department.Employee_ID;
cross-join
SELECT * FROM table1, table2;
self join
SELECT e1.name | |’    Ã¢€˜ | | e2.ename FROM emp e1, emp e2 WHERE e1. emp_no = e2.emp_no;
The following summarizes the result of the join operations:
 •  The result of T1 INNER JOIN T2 consists of their paired rows where the
join-condition is true.
•   The result of T1 LEFT OUTER JOIN T2 consists of their paired rows where the join-condition is true and, for each unpaired row of T1, the concatenation of that row with the null row of T2. All columns derived
from T2 allow null values.
•   The result of T1 RIGHT OUTER JOIN T2 consists of their paired rows where the join-condition is true and, for each unpaired row of T2, the concatenation of that row with the null row of T1. All columns derived
from T1 allow null values.
•  The result of T1 FULL OUTER JOIN T2 consists of their paired rows and, for each unpaired row of T2, the concatenation of that row with the null row of T1 and, for each unpaired row of T1, the concatenation of that row with the null row of T2. All columns derived from T1 and T2 allow null values.
5. Q. How do you add record to a table?
   A. INSERT into table_name VALUES (‘ALEX’ , 33 , ‘M’);
6.  Q. How do you add a column to a table?
    A. ALTER TABLE Department
      ADD (AGE,  NUMBER);
7.  Q. How do you change value of the field?
    A. UPDATE EMP_table
       set  number = 200 where item_munber = ‘CD’;
update name_table set status = 'enable'  where phone = '4161112222';
update SERVICE_table set REQUEST_DATE = to_date ('2006-03-04 09:29', 'yyyy-mm-dd hh24:MI') where phone = '4161112222';
8.  Q. What does COMMIT do?
    A. Saving all changes made by DML statements
9.  Q. What is a primary key?
    A. The column  (columns) that has completely unique data throughout
the table is known as the primary key field.
10. Q. What are foreign keys?
    A. Foreign key field – is a field that links one table
to another table̢۪s primary or foreign key.
11. Q. What is the main role of a primary key in a table?
    A. The main role of a primary key in a data table is to maintain the internal integrity of a data table.
12. Q. Can a table have more than one foreign key defined?
    A. A table can have any number of foreign keys defined. It can have only
       one primary key defined.
13. Q. List all the possible values that can be stored in a BOOLEAN data field.
     A. There are only two values that can be stored in a BOOLEAN data field:
         -1(true) and 0(false).
14  Q. What is the highest value that can be stored in a BYTE data field?
    A. The highest value that can be stored in a BYTE field is 255. or from -128 to 127. Byte is a set of Bits that represent a single character. Usually there are 8 Bits in a Byte, sometimes more, depending on how the measurement is being made. Each Char requires one byte of memory and can have a value from 0 to 255 (or 0 to 11111111 in binary).
15.  Q. How many places to the right of the decimal can be stored in a CURRENCY data field?
     A. The CURRENCY data type can store up to four places to the right of the decimal. Any data beyond the fourth place will be truncated by Visual Basic without reporting an error.
16.  Q. What is a stored procedure?
     A. A procedure is a group of PL/SQL statements that can be called by a name. Procedures do not return values they perform tasks.
17.  Q. Describe how NULLs work in SQL?
     A. The NULL is how SQL handles missing values. Arithmetic operation with NULL in SQL will return a NULL.
18.  Q. What is Normalization?
     A. The process of table design is called normalization.
19.   Q. What is referential integrity constraints?
      A. Referential integrity constraints are rules        that are part of the table in a database schema.
20.    Q. What is Trigger?
 A. Trigger will execute a block of procedural code against the database when a table event occurs.
  A2. A trigger defines a set of actions that are performed in response to an insert, update, or delete operation on a specified table. When   such an  SQL operation is executed, in this case the trigger has been activated.
21.    Q. Which of the following WHERE clauses will return only rows
 that have a NULL in the PerDiemExpenses column?
A. WHERE PerDiemExpenses <>
B. WHERE PerDiemExpenses IS NULL
C. WHERE PerDiemExpenses = NULL
D. WHERE PerDiemExpenses NOT IN (*)
      A. B is correct � When searching for a NULL value in a column, you must
 use the  keyword IS. No quotes are required around the keyword NULL.
22.   Q. You issue the following query:SELECT FirstName FROM
StaffListWHERE FirstName LIKE'_A%'Which names would be
returned by this query? Choose all that apply.
A. Allen
B. CLARK
C. JACKSON
D. David
A. C is correct � Two wildcards are used with the LIKE operator. The underscore (_) stands for any one character of any case, and the percent sign (%) stands for any number of characters of any case including none. Because this string starts with an underscore rather than a percent sign, it won't return Allen or Clark because they represent zero and two characters before the "A". If the LIKE string had been "%A%",
both of these values would have been returned. David was not returned because all non-wild card characters
are case sensitive. Therefore, only strings with an uppercase "A" as their second letter are returned
23.   Q. Write a SQL SELECT query that only returns each city only once from Students table?
Do you need to order this list with an ORDER BY clause?
      A. SELECT DISTINCT City
FROM Students;
The Distinct keyword automatically sorts all data  in ascending order. However, if you want the data
 sorted in descending order, you have to use an ORDER BY clause
24.    Q. Write a SQL SELECT sample of the concatenation operator.
       A.  SELECT LastName ||',' || FirstName, City FROM Students;
25.    Q. How to rename column in the SQL SELECT query?
       A.  SELECT LastName ||',' || FirstName
          AS "Student Name", City AS "Home City"
           "FROM StudentsORDER BY "Student Name"
26.   Q. Write SQL SELECT example how you limiting the rows returned with a WHERE clause.
      A. SELECT InstructorID, Salary FROM Instructors
WHERE Salary > 5400 AND Salary < 6600;
27.   Q. Write SQL SELECT query that returns the first and last name of each instructor, the Salary,
and gives each of them a number.
       A. SELECT FirstName, LastName, Salary, ROWNUM FROM Instructors;
28.    Q. Which of the following functions can be used only with numeric values?
(Choose all that apply.)
A. AVG
B. MIN
C. LENGTH
D. SUM
E. ROUND
A. A and D � Only A and D are correct. The MIN function  works with any character, numeric, or date datatype. The LENGTH function is a character function that returns the number of letters in a character value. The ROUND function works with both numeric and date values.
29. Q.  Which function do you use to remove all padded characters to the right of a character value in a column with a char datatype?
A. RTRIM
B. RPAD
C. TRIM
     A.  C � The TRIM function is used to remove padded spaces. LTRIM and RTRIM functions were included in earlier versions of Oracle, but Oracle 8i has replaced them with a single TRIM function
30.  Q. Which statement do you use to eliminate padded spaces
 between the month and day values in a function TO_CHAR(SYSDATE,'Month, DD, YYYY') ?
     A. To remove padded spaces, you use the "fm" prefix before the date element that contains the spaces.
     TO_CHAR(SYSDATE,'fmMonth DD, YYYY')
31. Q. Is the WHERE clause must appear always before the GROUP BY clause in SQL SELECT ?
    A. Yes.
The proper order for SQL SELECT clauses is: SELECT, FROM, WHERE, GROUP BY, HAVING, ORDER BY. Only the SELECT and FROM clause are mandatory.
32. Q. How Oracle executes a statement with nested subqueries?
A. When Oracle executes a statement with nested subqueries, it always executes the innermost query first. This query passes its results to the next query and so on until it reaches the outermost query.
It is the outermost query that returns a result set.
33. Q. Which operator do you use to return all of the rows
from one query except rows are returned in a second query?
    A. You use the MINUS operator to return all rows from one query except where duplicate rows are found in a second query. The UNION operator returns all rows from both queries minus duplicates. The UNION ALL operator returns all rows from both queries including duplicates. The INTERSECT operator returns only those rows that exist in both queries.
34. Q. How you will create a column alias? (Oracle 8i)
    A. The AS keyword is optional when specifying a column alias. You must enclose the column alias in double quotes when the alias contains a space or lowercase letters. If you specify an alias in l
owercase letters without double quotes, the alias will appear in uppercase.
35  Q. Which of the following statements are Data Manipulation Language commands?
A. INSERT
B. UPDATE
C. GRANT
D. TRUNCATE
E. CREATE
A.  A and B � The INSERT and UPDATE statements are Data Manipulation Language (DML) commands. GRANT is a Data Control Language (DCL) command. TRUNCATE and CREATE are Data Definition Language (DDL) commands
36. Question. What is Oracle locking?
    A. Oracle uses locking mechanisms to protect data from being destroyed by concurrent transactions.
37. Question. What Oracle lock modes do you know?
     A.  Oracle has two lock modes: shared or exclusive. Shared locks are set on database resources so that many transactions can access the resource. Exclusive locks are set on resources that ensure one transaction has exclusive access to the database resource
38.  Question. What is query optimization?
     A.  Query optimization is the part of the query process in which the database system compares
different query strategies and chooses the one with the least expected cost
39.  Question. What are the main components of Database management systems software.
     A. The database management system software includes components for storage management, concurrency control, transaction processing, database manipulation interface, database definition interface,
and database control interface.
40.  Question. What are the main attributes of  database management system?
     A. A database management system is composed of five elements: computer hardware, software, data, people (users), and operations procedures.
41.  Question. What is transaction?
      A. A transaction is a collection of applications code and database manipulation code bound into an indivisible unit of execution.it consists from:
BEGIN-TRANSACTION Name
Code
END TRANSACTION Name
42.  Question.  What databases do you know?
Informix
DB2
SQL
Oracle

43.  Question. Explain SQL SELECT example:
     select j.FILE_NUM
  from DB_name.job j, DB_name.address a
where j.JOB_TYPE ='C'
  AND j.COMPANY_NAME = 'TEST6'
  AND j.OFFICE_ID = '101'
  AND j.ACTIVE_IND = 'Y'
  AND a.ADDRESS_STATUS_ID = 'H'
  AND a.OFFICE_ID = '101'
  AND a.FILE_NUM = j.FILE_NUM order by j.FILE_NUM;
    Answer: j and a aliases for table names. this is outer joint select statament from two tables.
44.  Q. Describe some Conversion Functions that you know
      A. TO_CHAR converts a number / date to a string.
         TO_DATE converts a string (representing a date) to a date.
         TO_NUMBER converts a character string containing digits to a numeric data type, it accepts one parameter which is a column value or a string literal
45.   Q.  Describe some Group Functions that you know
A. 1) The COUNT function tells you how many rows were in the result set.
      SELECT COUNT(*) FROM TESTING.QA
    2) The AVG function tells you the average value of a numeric column.
       SELECT MAX(SALARY) FROM TESTING.QA
    3) The MAX and MIN functions tell you the maximum and minimum value of a numeric column.
       SELECT MIN(SALARY) FROM TESTING.QA
     4) The SUM function tells you the sum value of a numeric column.
        SELECT SUM(SALARY) FROM TESTING.QA
46. Question. What does DML stand for?
     A. DML is Data Manipulation Language statements. (SELECT)
47. Question. What does DDL stand for?
    A. DDL is Data Definition Language statements. (CREATE)
48.  Question. What does DCL stand for?
     A. DCL is Data Control Language statements. (COMMIT)
49.  Question: Describe SQL comments.
     A. SQL comments are introduced by two consecutive hyphens  (--) and ended by the end of the line.
50.   Q. In what sequence SQL statement are processed?
 A. The clauses of the subselect are processed in the following sequence (DB2):
1. FROM clause
2. WHERE clause
3. GROUP BY clause
4. HAVING clause
5. SELECT clause
6. ORDER BY clause
7. FETCH FIRST clause
51.    Q. Describe TO_DATE function.
A. The TO_DATE function returns a timestamp from a character string  that has been interpreted using a character template. TO_DATE is a synonym for TIMESTAMP_FORMAT.
52.    Question:
 In the domain table we have status as a numeric value from 01 to 04 and we
 have text definition of these values in the design document.
 Write SQL query to see the result as a text definitions that is corresponded
 to these values. (DB2)
      A. select TB1.member_id, TB1.bu_id, TB1.program,  TB2.num,
case TB1.status
when '01' then 'Auto renew'
when '02' then 'Expired'
when '03' then 'Sold'
when '04' then ‘Terminated’
else TB_name.status
end
        from DB_name.TB_name1  TB1,
DB_name.TB_name2 TB2
        where
        TB1.program in ('com', 'org')
        and TB1.member_role  = '100'
        order by  TB1.member_id
        fetch first 30 rows only
53. Question:
What's the logical difference, if any, between the following SQL expressions?
SELECT COUNT ( * ) FROM T
SELECT SUM ( 1 ) FROM T
 A. They're the same unless table T is empty, in which case the first yields
a one-column, one-row table containing a zero and the second yields a one-column,
one-row table "containing a null."



Interview Questions-Part I (Manual)


Question1: What is bidirectional traceability?
Answer: Bidirectional traceability needs to be implemented both forward and backward (i.e., from requirements to end products and from end product back to requirements).
When the requirements are managed well, traceability can be established from the source requirement to its lower level requirements and from the lower level requirements back to their source. Such bidirectional traceability helps determine that all source requirements have been completely addressed and that all lower level requirements can be traced to a valid source.

Question2: What is the maximum length of the test case we can write?
Answer: We can't say exactly test case length, it depending on functionality.
                       
Question3: What is internationalization testing?
Answer: Software Internationalization is process of developing software products independent from cultural norms, language or other specific attributes of a market.

Question4: What does black-box testing mean at the unit, integration, and system levels?
Answer: Tests for each software requirement using
Equivalence Class Partitioning, Boundary Value Testing, and more
Test cases for system software requirements using the Trace Matrix, Cross-functional Testing, Decision Tables, and more
Test cases for system integration for configurations, manual operations, etc.

Question5: What is Bug life cycle?
Answer: Software Bug / Defect Life Cycle is the journey of a bug from its identification to its closure. The Life Cycle varies from organization to organization and is governed by the software testing process the organization / project follows and/or the Bug / Defect tracking tool being used.
·         NEW: Tester finds a ‘bug’ and posts it with the status NEW. This bug is yet to be studied/ approved. The fate of a NEW bug is one of ASSIGNED, DROPPED and DEFERRED.
·         ASSIGNED / OPEN: Test / Development / Project lead studies the NEW bug and if it is found to be valid it is assigned to a member of the Development Team. The assigned Developer’s responsibility is now to fix the bug and have it COMPLETED. Sometimes, ASSIGNED and OPEN can be different statuses. In that case, a bug can be open yet unassigned.
·         DEFERRED: If a valid NEW or ASSIGNED bug is decided to be fixed in upcoming releases instead of the current release it is DEFERRED. This bug is ASSIGNED when the time comes.
·         DROPPED / REJECTED: Test / Development/ Project lead studies the NEW bug and if it is found to be invalid, it is DROPPED / REJECTED. Note that the specific reason for this action needs to be given.
·         COMPLETED / FIXED / RESOLVED / TEST: Developer ‘fixes’ the bug that is ASSIGNED to him or her. Now, the ‘fixed’ bug needs to be verified by the Test Team and the Development Team ‘assigns’ the bug back to the Test Team. A COMPLETED bug is either CLOSED, if fine, or REASSIGNED, if still not fine.
If a Developer cannot fix a bug, some organizations may offer the following status:
·         Won’t Fix / Can’t Fix: The Developer will not or cannot fix the bug due to some reason.
·         Can’t Reproduce: The Developer is unable to reproduce the bug.
·         Need More Information: The Developer needs more information on the bug from the Tester.
·         REASSIGNED / REOPENED: If the Tester finds that the ‘fixed’ bug is in fact not fixed or only partially fixed, it is reassigned to the Developer who ‘fixed’ it. A REASSIGNED bug needs to be COMPLETED again.
·         CLOSED / VERIFIED: If the Tester / Test Lead finds that the bug is indeed fixed and is no more of any concern, it is CLOSED / VERIFIED. This is the happy ending.

Question6: Smoke test? Do you use any automation tool for smoke testing?
Answer: Testing the application whether it's performing its basic functionality properly or not, so that the test team can go ahead with the application. Definitely can use.

Question7: When a bug is found, what is the first action?
Answer: Report it in bug tracking tool/ Bug Report (TIR- Test Incident Report).

Question8: Advantages of automation over manual testing?
Answer: Time saving, resource and money

Question9: For Web Applications what type of tests are you going to do?
Answer: Web-based applications present new challenges, these challenges include:
- Short release cycles;
- Constantly Changing Technology;
- Possible huge number of users during initial website launch;
- Inability to control the user's running environment;
- 24-hour availability of the web site.
The quality of a website must be evident from the Onset. Any difficulty whether in response time, accuracy of information, or ease of use-will compel the user to click to a competitor's site. Such problems translate into lost of users, lost sales, and poor company image.
To overcome these types of problems, use the following techniques:
1. Functionality Testing
Functionality testing involves making Sure the features that most affect user interactions work properly. These include:
· forms
· searches
· pop-up windows
· shopping carts
· online payments
2. Usability Testing
Many users have low tolerance for anything that is difficult to use or that does not work. A user's first impression of the site is important, and many websites have become cluttered with an increasing number of features. For general-use websites frustrated users can easily click over a competitor's site.
Usability testing involves following main steps
· identify the website's purpose;
· identify the indented users ;
· define tests and conduct the usability testing
· analyze the acquired information
3. Navigation Testing
Good Navigation is an essential part of a website, especially those that are complex and provide a lot of information. Assessing navigation is a major part of usability Testing.
4. Forms Testing
Websites that use forms need tests to ensure that each field works properly and that the forms posts all data as intended by the designer.
5. Page Content Testing
Each web page must be tested for correct content from the user perspective for correct content from the user perspective. These tests fall into two categories: ensuring that each component functions correctly and ensuring that the content of each is correct.
6. Configuration and Compatibility testing
A key challenge for web applications is ensuring that the user sees a web page as the designer intended. The user can select different browser software and browser options, use different network software and on-line service, and run other concurrent applications. We execute the application under every browser/platform combination to ensure the web sites work properly under various environments.
7. Reliability and Availability Testing
A key requirement o a website is that it Be available whenever the user requests it, after 24-hours a day, every day. The number of users accessing web site simultaneously may also affect the site's availability.
8. Performance Testing
Performance Testing, which evaluates System performance under normal and heavy usage, is crucial to success of any web application. A system that takes for long to respond may frustrate the user who can then quickly move to a competitor's site. Given enough time, every page request will eventually be delivered. Performance testing seeks to ensure that the website server responds to browser requests within defined parameters.
9. Load Testing
The purpose of Load testing is to model real world experiences, typically by generating many simultaneous users accessing the website. We use automation tools to increases the ability to conduct a valid load test, because it emulates thousands of users by sending simultaneous requests to the application or the server.
10. Stress Testing
Stress Testing consists of subjecting the system to varying and maximum loads to evaluate the resulting performance. We use automated test tools to simulate loads on website and execute the tests continuously for several hours or days.
11. Security Testing
Security is a primary concern when communicating and conducting business- especially sensitive and business- critical transactions - over the internet. The user wants assurance that personal and financial information is secure. Finding the vulnerabilities in an application that would grant an unauthorized user access to the system is important.

                       
Question10: What is Testing environment in your company means how testing process start?
Answer: Testing process is going as follows:
Quality assurance unit
Quality assurance manager
Test lead
Test engineer

Question11: What is a Use case? 
Answer: A simple flow between the end user and the system. It contains pre conditions, post conditions, normal flows and exceptions. It is done by Team Lead/Test Lead/Tester.

Question12: How you are breaking down the project among team members?
Answer: 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.

Question13: What is a Test Server?
Answer: The place where the developers put their development modules, which are accessed by the testers to test the functionality.

Question14: What are the differences between these three words Error, Defect and Bug?
Answer:
Error: The deviation from the required logic, syntax or standards/ethics is called as error.
There are three types of error. They are:
Syntax error (This is due to deviation from the syntax of the language what supposed to follow).
Logical error (This is due to deviation from the logic of the program what supposed to follow)
Execution error (This is generally happens when you are executing the same program, that time you get it.)
Defect: When an error found by the test engineer (testing department) then it is called defect
Bug: if the defect is agreed by the developer then it converts into bug, which has to fix by the developer or post pond to next version.

Question15: There are two sand clocks(timers) one complete totally in 7 minutes and other in 9-minutes we have to calculate with this timers and bang the bell after completion of 11- minutes! Please give me the solution.
Answer:
1. Start both clocks
2. When 7 min clock complete, turn it so that it restarts.
3. When 9 min clock finish, turn 7 min clocks (It has 2 mints only).
4. When 7 min clock finishes, 11 min complete.

Question16: What are the technical reviews?
Answer: For each document, it should be reviewed. Technical Review in the sense, for each screen, developer will write a Technical Specification. It should be reviewed by developer and tester. There are functional specification review, unit test case review and code review etc.

Question17: Explain ETVX concept?
Answer: ETVX stands for
E- Entry Criteria
T- Task
V- Validation
X- Exit Criteria
ENTRY CRITERIA: Input with 'condition' attached.
E.g. Approved SRS document is the entry criteria for the design phase.
TASK: Procedures.
E.g. Preparation of HLD, LLD etc.
VALIDATION: Building quality & Verification activities
E.g. Technical reviews
EXIT CRITERIA: Output with 'condition' attached.
E.g. Approved design document
It is important to follow ETVX concept for all phases in SDLC.

Question18: If the client identified some bugs to whom did he reported?
Answer: He will report to the Project Manager. Project Manager will arrange a meeting with all the leads (Dev. Manager, Test Lead and Requirement Manager) then raise a Change Request and then, identify which all the screens are going to be impacted by the bug. They will take the code and correct it and send it to the Testing Team.

Question19: At what phase tester role starts?
Answer: In SDLC after compilation of FRS document the test lead prepare the use case document and test plan document, then the tester role is start.

Question20: Actually how many positive and negative test cases will write for a module?
Answer: That depends on the module and complexity of logic. For every test case, we can identify +ve and -ve points. Based on the criteria, we will write the test cases, if it is crucial process or screen. We should check the screen, in all the boundary conditions.

Question21: What are the main bugs which were identified by you and in that how many are considered as real bugs?
Answer: If you take one screen, let's say, it has got 50 Test conditions, out of which, I have identified 5 defects which are failed. I should give the description defect, severity and defect classification. All the defects will be considered.
Defect Classification is:
GRP: Graphical Representation
LOG: Logical Error
DSN: Design Error
STD: Standard Error
TST: Wrong Test case
TYP: Typographical Error (Cosmotic Error)

Question22: What is Six sigma?
Answer:  Six Sigma is a quality discipline that focuses on product and service excellence to create a culture that demands perfection on target, every time.
Six Sigma quality levels
Produces 99.9997% accuracy, with only 3.4 defects per million opportunities.
Six Sigma is designed to dramatically upgrade a company's performance, improving quality and productivity. Using existing products, processes, and service standards,
They go for Six Sigma MAIC methodology to upgrade performance.
MAIC is defined as follows:
Measure: Gather the right data to accurately assess a problem.
Analyze: Use statistical tools to correctly identify the root causes of a problem
Improve: Correct the problem (not the symptom).
Control: Put a plan in place to make sure problems stay fixed and sustain the gains.
Key Roles and Responsibilities:
The key roles in all Six Sigma efforts are as follows:
Sponsor: Business executive leading the organization.
Champion: Responsible for Six Sigma strategy, deployment, and vision.
Process Owner: Owner of the process, product, or service being improved responsible for long-term sustainable gains.
Master Black Belts: Coach black belts expert in all statistical tools.
Black Belts: Work on 3 to 5 $250,000-per-year projects; create $1 million per year in value.
Green Belts: Work with black belt on projects.

Question23: What are cookies? Tell me the advantage and disadvantage of cookies?
Answer: Cookies are messages that web servers pass to your web browser when you visit Internet sites. Your browser stores each message in a small file. When you request another page from the server, your browser sends the cookie back to the server. These files typically contain information about your visit to the web page, as well as any information you've volunteered, such as your name and interests. Cookies are most commonly used to track web site activity. When you visit some sites, the server gives you a cookie that acts as your identification card. Upon each return visit to that site, your browser passes that cookie back to the server. In this way, a web server can gather information about which web pages are used the most, and which pages are gathering the most repeat hits. Only the web site that creates the cookie can read it. Additionally, web servers can only use information that you provide or choices that you make while visiting the web site as content in cookies. Accepting a cookie does not give a server access to your computer or any of your personal information. Servers can only read cookies that they have set, so other servers do not have access to your information. Also, it is not possible to execute code from a cookie, and not possible to use a cookie to deliver a virus.

Question24: What is stub? Explain in testing point of view?
Answer: Stub is a dummy program or component, the code is not ready for testing, it's used for testing...that means, in a project if there are 4 modules and last is remaining and there is no time then we will use dummy program to complete that fourth module and we will run whole 4 modules also. The dummy program is also known as stub.

Question25: Define Brain Storming and Cause Effect Graphing?
Answer:
BS:A learning technique involving open group discussion intended to expand the range of available ideas
OR
A meeting to generate creative ideas. At PEPSI Advertising, daily, weekly and bi-monthly brainstorming sessions are held by various work groups within the firm. Our monthly I-Power brainstorming meeting is attended by the entire agency staff.
OR
Brainstorming is a highly structured process to help generate ideas. It is based on the principle that you cannot generate and evaluate ideas at the same time. To use brainstorming, you must first gain agreement from the group to try brainstorming for a fixed interval (eg six minutes).
CEG:
A testing technique that aids in selecting, in a systematic way, a high-yield set of test cases that logically relates causes to effects to produce test cases. It has a beneficial side effect in pointing out incompleteness and ambiguities in specifications. 
Question26: Password is having 6 digit alphanumeric then what are the possible input conditions?
Answer: Including special characters also Possible input conditions are:
1) Input password as = 6abcde (ie number first)
2) Input password as = abcde8 (ie character first)
3) Input password as = 123456 (all numbers)
4) Input password as = abcdef (all characters)
5) Input password less than 6 digit
6) Input password greater than 6 digits
7) Input password as special characters
8) Input password in CAPITAL ie uppercase
9) Input password including space
10) (SPACE) followed by alphabets /numerical /alphanumerical/

Question27: Explain agile testing?
Answers: Agile testing is used whenever customer requirements are changing dynamically
If we have no SRS, BRS but we have test cases does you execute the test cases blindly or do you follow any other process.
Test case would have detail steps of what the application is supposed to do.
1) Functionality of application.
2) In addition you can refer to Backend, is mean look into the Database. To gain more knowledge of the application.

Question28: What is deferred status in defect life cycle?
Answer: Deferred status means the developer accepted the bus, but it is scheduled to rectify in the next build.

Question29: Verification and validation?
Answer:
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, and walkthroughs and inspection meetings. Verification is static. No code is executed. Say, analysis of requirements etc.
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. Validation is dynamic. Code is executed with scenarios present in test cases.

Question30: What is test plan and explain its contents?
Answer: 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.



Question31: What is mean by release notes?
Answer: 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.

Question32: Give an example of high priority and low severity, low priority and high severity?
Answer:
Severity level: The degree of impact the issue or problem has on the project. Severity 1 usually means the highest level requiring immediate attention. Severity 5 usually represents a documentation defect of minimal impact.
Severity is levels:
* Critical: the software will not run
* High: unexpected fatal errors (includes crashes and data corruption)
* Medium: a feature is malfunctioning
* Low: a cosmetic issue

Severity levels
1. Bug causes system crash or data loss.
2. Bug causes major functionality or other severe problems; product crashes in obscure cases.
3. Bug causes minor functionality problems, may affect "fit anf finish".
4. Bug contains typos, unclear wording or error messages in low visibility fields.
Severity levels
* High: A major issue where a large piece of functionality or major system component is completely broken. There is no workaround and testing cannot continue.
* Medium: A major issue where a large piece of functionality or major system component is not working properly. There is a workaround, however, and testing can continue.
* Low: A minor issue that imposes some loss of functionality, but for which there is an acceptable and easily reproducible workaround. Testing can proceed without interruption.

Severity and Priority
Priority is Relative: the priority might change over time. Perhaps a bug initially deemed P1 becomes rated as P2 or even a P3 as the schedule draws closer to the release and as the test team finds even more heinous errors. Priority is a subjective evaluation of how important an issue is, given other tasks in the queue and the current schedule. It’s relative. It shifts over time. And it’s a business decision.
Severity is an absolute: it’s an assessment of the impact of the bug without regard to other work in the queue or the current schedule. The only reason severity should change is if we have new information that causes us to re-evaluate our assessment. If it was a high severity issue when I entered it, it’s still a high severity issue when it’s deferred to the next release. The severity hasn’t changed just because we’ve run out of time. The priority changed.
Severity Levels can be defined as follow:
S1 - Urgent/Showstopper. Like system crash or error message forcing to close the window.
Tester's ability to operate the system either totally (System Down), or almost totally, affected. A major area of the users system is affected by the incident and it is significant to business processes.
S2 - Medium/Workaround. Exist like when a problem is required in the specs but tester can go on with testing. Incident affects an area of functionality but there is a work-around which negates impact to business process. This is a problem that:
a) Affects a more isolated piece of functionality.
b) Occurs only at certain boundary conditions.
c) Has a workaround (where "don't do that" might be an acceptable answer to the user).
d) Occurs only at one or two customers. or is intermittent
S3 - Low. This is for minor problems, such as failures at extreme boundary conditions that are unlikely to occur in normal use, or minor errors in
layout/formatting. Problems do not impact use of the product in any substantive way. These are incidents that are cosmetic in nature and of no or very low impact to business processes.

Question33: Diff. between STLC and SDLC?
Answer:
STLC is software test life cycle it starts with
* Preparing the test strategy.
* Preparing the test plan.
* Creating the test environment.
* Writing the test cases.
* Creating test scripts.
* Executing the test scripts.
* Analyzing the results and reporting the bugs.
* Doing regression testing.
* Test exiting.

SDLC is software or system development life cycle, phases are...
* Project initiation.
* Requirement gathering and documenting.
* Designing.
* Coding and unit testing.
* Integration testing.
* System testing.
* Installation and acceptance testing. " Support or maintenance.

Question34: What is Test Data Collection?
Answer: Test data is the collection of input data taken for testing the application. Various types and size of input data will be taken for testing the applications. Sometimes in critical application the test data collection will be given by the client also.

Question35: What are non-functional requirements?
Answer: The non-functional requirements of a software product are: reliability, usability, efficiency, delivery time, software development environment, security requirements, standards to be followed etc.

Question36: Why we perform stress-testing, resolution-testing and cross- browser testing?
Answer:
Stress Testing: - We need to check the performance of the application.
Def: Testing conducted to evaluate a system or component at or beyond the limits of its specified requirements

Resolution Testing: - Sometimes developer created only for 1024 resolution, the same page displayed a horizontal scroll bar in 800 x 600 resolutions. No body can like the horizontal scroll appears in the screen. That is reason to test the Resolution testing.

Cross-browser Testing: - This testing sometimes called compatibility testing. When we develop the pages in IE compatible, the same page is not working in Fairfox or Netscape properly, because most of the scripts are not supporting to other than IE. So that we need to test the cross-browser Testing

Question37: What is the minimum criteria for white box?
Answer: We should know the logic, code and the structure of the program or function. Internal knowledge of the application how the system works what's the logic behind it and structure how it should react to particular action.

Question38: In what basis you will write test cases?
Answer: I would write the Test cases based on Functional Specifications and BRDs and some more test cases using the Domain knowledge.

Question39: What are the main key components in Web applications and client and Server applications? (Differences)?
Answer: For Web Applications: Web application can be implemented using any kind of technology like Java, .NET, VB, ASP, CGI& PERL. Based on the technology,We can derive the components.

Let's take Java Web Application. It can be implemented in 3 tier architecture. Presentation tier (jsp, html, dthml,servlets, struts). Busienss Tier (Java Beans, EJB, JMS) Data Tier(Databases like Oracle, SQL Server etc., )

If you take .NET Application, Presentation (ASP, HTML, DHTML), Business Tier (DLL) & Data Tier ( Database like Oracle, SQL Server etc.,)

Client Server Applications: It will have only 2 tiers. One is Presentation (Java, Swing) and Data Tier (Oracle, SQL Server). If it is client Server architecture, the entire application has to be installed on the client machine. When ever you do any changes in your code, Again, It has to be installed on all the client machines. Where as in Web Applications, Core Application will reside on the server and client can be thin Client(browser). Whatever the changes you do, you have to install the application in the server. NO need to worry about the clients. Because, You will not install any thing on the client machine.

Question40: What is the formal technical review?
Answer: Technical review should be done by the team of members. The document, which is going to be reviewed, who has prepared and reviewers should sit together and do the review of that document. It is called Peer Review. If it is a technical document, It can be called as formal Technical review, I guess. It varies depends on the company policy.

Question41: Explain Software metrics?
Answer: Measurement is fundamental to any engineering discipline
Why Metrics?
- We cannot control what we cannot measure!
- Metrics helps to measure quality
- Serves as dash-board

The main metrices are :size,shedule,defects.In this there are main sub metrices.

Test Coverage = Number of units (KLOC/FP) tested / total size of the system
Test cost (in %) = Cost of testing / total cost *100
Cost to locate defect = Cost of testing / the number of defects located
Defects detected in testing (in %) = Defects detected in testing / total system defects*100
Acceptance criteria tested = Acceptance criteria tested / total acceptance criteria

Question42: What is Software reliability?
Answer: It is the probability that software will work without failure for a specified period of time in a specified environment.Reliability of software is measured in terms of Mean Time Between Failure (MTBF). For eg if MTBF = 10000 hours for an average software, then it should not fail for 10000 hours of continous operation.

Question43: What the main use of preparing a traceability matrix?
Answer: Traceability matrix is prepared in order to cross check the test cases designed against each requirement, hence giving an opportunity to verify that all the requirements are covered in testing the application.
(Or)
To Cross verify the prepared test cases and test scripts with user requirements. To monitor the changes, enhance occurred during the development of the project.

Question44: What is TRM?
Answer: TRM means Test Responsibility Matrix.
TRM: --- It indicates mapping between test factors and development stages...
Test factors like:
Ease of use, reliability, portability, authorization, access control, audit trail, ease of operates, maintainable... Like dat...
Development stages...
Requirement gathering, Analysis, design, coding, testing, and maintenance

Question45: What is the difference between Product-based Company and Projects-based Company?
Answer: Product based company develops the applications for Global clients i.e. there is no specific clients. Here requirements are gathered from market and analyzed with experts.
Project based company develops the applications for the specific client. The requirements are gathered from the client and analyzed with the client.

QA questions and Answers

Question1: What is Software Quality Assurance?
Answer: Software QA involves the entire software development PROCESS - monitoring and improving the process, making sure that any agreed-upon standards and procedures are followed, and ensuring that problems are found and dealt with. It is oriented to 'prevention'.

Question2: What is Quality Assurance (QA)?
Answer:  Quality Assurance is refered to as
(1)The planned systematic activities necessary to ensure that a component, module, or system conforms to established technical requirements.
(2) All actions that are taken to ensure that a development organization delivers products that meet performance requirements and adhere to standards and procedures.
(3) The policy, procedures, and systematic actions established in an enterprise for the purpose of providing and maintaining some degree of confidence in data integrity and accuracy throughout the life cycle of the data, which includes input, update, manipulation, and output.
(4) (QA) The actions, planned and performed, to provide confidence that all systems and components that influence the quality of the product are working as expected individually and collectively.

Question3: Explain Quality Control?
Answer: The operational techniques and procedures used to achieve quality requirements.

Question4: What is Test methodology?
Answer: Test methodology is up to the end client, and can be used, reused, and molded to your end client's needs. Rob Davis believes that using the right test methodology is important in the development and ongoing maintenance of his clients' applications.

Question5: What is Test schedule?
Answer: The test schedule is a schedule that identifies all tasks required for a successful testing effort, a schedule of all test activities and resource requirements.

Question6: What is Grey box testing?
Answer: Grey box testing is a software testing technique that uses a combination of black box testing and white box testing. Gray box testing is not black box testing, because the tester does know some of the internal workings of the software under test. In grey box testing, the tester applies a limited number of test cases to the internal workings of the software under test. In the remaining part of the grey box testing, one takes a black box approach in applying inputs to the software under test and observing the outputs.

Question7: What is Manual Testing?
Answer: That part of software testing that requires operator input, analysis, or evaluation.
or
A manual test is a test for which there is no automation. Instead, test steps are outlined in a document for the tester to complete. The tester can then report test results and submit bugs as appropriate.

Question8: What is Alpha Testing?
Answer:
1. Acceptance testing performed by the customer in a controlled environment at the developer's site. The software is used by the customer in a setting approximating the target environment with the developer observing and recording errors and usage problems.
Testing of a software product or system conducted at the developer’s site by the end user.
2. Alpha testing is testing of an application when development is nearing completion. Minor design changes can still be made as a result of alpha testing. Alpha testing is typically performed by a group that is independent of the design team, but still within the company, e.g. in-house software test engineers, or software QA engineers.
3. Alpha testing is final testing before the software is released to the general public. First, (and this is called the first phase of alpha testing), the software is tested by in-house developers. They use either debugger software, or hardware-assisted debuggers. The goal is to catch bugs quickly. Then, (and this is called second stage of alpha testing), the software is handed over to us, the software QA staff, for additional testing in an environment that is similar to the intended use.

Question9: What is Incremental testing?
Answer: Incremental testing is partial testing of an incomplete product. The goal of incremental testing is to provide an early feedback to software developers.

Question10: What is OO Integration Testing?
Answer: This strategy involves testing the classes as they are integrated into the system. The traditional approach would test each operation separately as they are implemented into a class. In OO system this approach is not viable because of the "direct and indirect interactions of the components that make up the class"
. Integration testing in OO can be performed in two basic ways :
- Thread-based - Takes all the classes needed to react to a given input. Each class is unit tested and then thread constructed from these classes tested as a set.
- Uses-based - Tests classes in groups. Once the group is tested, the next group that uses the first group (dependent classes) is tested. Then the group that uses the second group and so on. Use of stubs or drivers may be necessary. Cluster testing is similar to testing builds in the traditional model. Basically collaborating classes are tested in clusters.

Question11: What is Interface Testing?
Answer: Testing conducted to evaluate whether systems or components pass data and control correctly to one another. Contrast with testing, unit; testing, system.

Question12: Explain Exhaustive Testing?
Answer: Executing the program with all possible combinations of values for program variables. Feasible only for small, simple programs.

Question13: Explain Beta Testing?
Answer: (1)Acceptance testing performed by the customer in a live application of the software, at one or more end user sites, in an environment not controlled by the developer.
(2) For medical device software such use may require an Investigational Device Exemption [IDE] or Institutional Review Board [IRB] approval.
Testing conducted at one or more end user sites by the end user of a delivered software product or system.
Beta testing is testing an application when development and testing are essentially completed and final bugs and problems need to be found before the final release. Beta testing is typically performed by end-users or others, not programmers, software engineers, or test engineers.
Following alpha testing, "beta versions" of the software are released to a group of people, and limited public tests are performed, so that further testing can ensure the product has few bugs. Other times, beta versions are made available to the general public, in order to receive as much feedback as possible. The goal is to benefit the maximum number of future users.

Question14: Explain Dynamic Testing?
Answer: Verification or validation performed which executes the system’s code.

Question15: Explain Glass box testing?
Answer: Glass box testing is the same as white box testing. It's a testing approach that examines the application's program structure, and derives test cases from the application's program logic.

Question16: What is The Mission of Testing?
Answer: In well-run projects, the mission of the test team is not merely to perform testing, but to help minimize the risk of product failure. Testers look for manifest problems in the product, potential problems, and the absence of problems. They explore, assess, track, and report product quality, so that others in the project can make informed decisions about product development. It's important to recognize that testers are not out to "break the code." We are not out to embarrass or complain, just to inform. We are human meters of product quality.

Question17: Explain Software Testing Strategies?
Answers: A strategy for software testing integrates software test case design techniques into a well - planned series of steps that result in the successful construction of software.
Common Characteristics of Software Testing Strategies
-Testing begins at module level and works outward towards the integration of the entire system.
-Different testing techniques are appropriate at different points in time.
-Testing is conducted by the developer of the software and for large projects by an independent test group.
-Testing and debugging are different activities, but debugging must be accommodated in any testing strategy.

Question18: Explain Black-box Testing?
Answer:
1. Functional testing based on requirements with no knowledge of the internal program structure or data. Also known as closed-box testing.
2. Black box testing indicates whether or not a program meets required specifications by spotting faults of omission -- places where the specification is not fulfilled.
3. Black-box testing relies on the specification of the system or the component that is being tested to derive test cases. The system is a black-box whose behavior can only be determined by studying its inputs and the related outputs
4. Black box testing is functional testing, not based on any knowledge of internal software design or code. Black box testing are based on requirements and functionality.

                       
Question19: What is Clear box testing?
Answer: Clear box testing is the same as white box testing. It is a testing approach that examines the application's program structure, and derives test cases from the application's program logic.
Another term for white-box testing. Structural testing is sometimes referred to as clear-box testing; since “white boxes” are considered opaque and do not really permit visibility into the code. This is also known as glass-box or open-box testing.

Question20: What is Open box testing?
Answers: Open box testing is same as white box testing. It's a testing approach that examines the application's program structure, and derives test cases from the application's program logic.

                       
Question21: Explain Unit testing?
Answer: Unit testing is the first level of dynamic testing and is first the responsibility of developers and then that of the test engineers. Unit testing is performed after the expected test results are met or differences are explainable/acceptable.

Question22: What is Branch Coverage Testing?
Answer: A test method satisfying coverage criteria that requires each decision point at each possible branch to be executed at least once.

Question23: Explain Branch Testing?
Answer: Testing technique to satisfy coverage criteria which require that for each decision point, each possible branch [outcome] be executed at least once. Contrast with testing, path; testing, statement.

Question24: What is Assertion Testing?
Answer: A dynamic analysis technique which inserts assertions about the relationship between program variables into the program code. The truth of the assertions is determined as the program executes.

Question25: Explain Compatibility testing?
Answer: Compatibility testing is testing how well software performs in a particular hardware, software, operating system, or network environment.

Question26: Explain Integration Testing?
Answer:
1. An orderly progression of testing in which software elements, hardware elements, or both are combined and tested, to evaluate their interactions, until the entire system has been integrated.
2. Integration testing is black box testing. The purpose of integration testing is to ensure distinct components of the application still work in accordance to customer requirements. Test cases are developed with the express purpose of exercising the interfaces between the components. This activity is carried out by the test team. Integration testing is considered complete, when actual results and expected results are either in line or differences are explainable/acceptable based on client input.

Question27: Explain Incremental integration testing?
Answer: Incremental integration testing is continuous testing of an application as new functionality is recommended. This may require that various aspects of an application's functionality are independent enough to work separately, before all parts of the program are completed, or that test drivers are developed as needed.
Incremental testing may be performed by programmers, software engineers, or test engineers.

Question28: Explain Functional testing?
Answer: Functional testing is black-box type of testing geared to functional requirements of an application. Test engineers *should* perform functional testing.
Functional testing is the same as black box testing. Black box testing a type of testing that considers only externally visible behavior. Black box testing considers neither the code itself, or the "inner workings" of the software.
Function testing is a testing process that is black-box in nature. It is aimed at examining the overall functionality of the product. It usually includes testing of all the interfaces and should therefore involve the clients in the process. Because every aspect of the software system is being tested, the specifications for this test should be very detailed describing who, where, when and how will conduct the tests and what exactly will be tested.
The portion of the testing that will involve the clients is usually conducted as an alpha test where the developers closely monitor how the clients use the system. They take notes on what needs to be improved.

Question29: What is Mutation testing?
Answer: Mutation testing is testing where our goal is to make mutant software fail, and thus demonstrate the adequacy of our test case. How do we perform mutation testing?
Step one: We create a set of mutant software. In other words, each mutant software differs from the original software by one mutation, i.e. one single syntax change made to one of its program statements, i.e. each mutant software contains one single fault.
Step two: We write and apply test cases to the original software and to the mutant software.
Step three: We evaluate the results, based on the following set of criteria: Our test case is inadequate, if both the original software and all mutant software generate the same output. Our test case is adequate, if our test case detects faults in our software, or, if, at least, one mutant software generates a different output than does the original software for our test case.

Question30: What is Parallel Testing?
Answer: Testing a new or an altered data processing system with the same source data that is used in another system. The other system is considered as the standard of comparison.

Question31: What is Parallel/audit testing?
Answer: Parallel/audit testing is testing where the user reconciles the output of the new system to the output of the current system to verify the new system performs the operations correctly.

Question32: Explain Performance Testing?
Answer: Performance testing verifies loads, volumes, and response times, as defined by requirements. Although performance testing is a part of system testing, it can be regarded as a distinct level of testing.

Question33: What is Qualification Testing?
Answer: Formal testing, usually conducted by the developer for the consumer, to demonstrate that the software meets its specified requirements.

Question34: Explain Storage Testing?
Answer: This is a determination of whether or not certain processing conditions use more storage [memory] than estimated.

Question35: What is the objective of regression testing?
Answer: The objective of regression testing is to test that the fixes have not created any other problems elsewhere. The objective is to ensure the software has remained intact. A baseline set of data and scripts are maintained and executed to verify that changes introduced during the release have not "undone" any previous code. Expected results from the baseline are compared to results of the software under test. All discrepancies have to be highlighted and accounted for, before the testing can proceed to the next level.

Question37: Explain Stress Testing?
Answer:
1. Testing conducted to evaluate a system or component at or beyond the limits of its specified requirements.
2. Stress testing is testing that investigates the behavior of software (and hardware) under extraordinary operating conditions. For example, when a web server is stress tested, testing aims to find out how many users can be on-line, at the same time, without crashing the server. Stress testing tests the stability of a given system or entity. It tests something beyond its normal operational capacity, in order to observe any negative results. For example, a web server is stress tested, using scripts, bots, and various denial of service tools.

Question38: Explain System Testing?
Answer:
1. The process of testing an integrated hardware and software system to verify that the system meets its specified requirements. Such testing may be conducted in both the development environment and the target environment.
or
The process of testing an integrated hardware and software system to verify that the system meets its specified requirements.
2. Final stage of the testing process should be System Testing. This type of test involves examination of the whole computer system. All the software components, all the hardware components and any interfaces.
The whole computer based system is checked not only for validity but also for met objectives.
It should include recovery testing, security testing, stress testing and performance testing.
Recovery testing uses test cases designed to examine how easily and completely the system can recover from a disaster (power shut down, blown circuit, disk crash, interface failure, insufficient memory, etc.). It is desirable to have a system capable of recovering quickly and with minimal human intervention. It should also have a log of activities happening before the crash (these should be part of daily operations) and a log of messages during the failure (if possible) and upon re-start.
Security testing involves testing the system in order to make sure that unauthorized personnel or other systems cannot gain access to the system and information or resources within it. Programs that check for access to the system via passwords are tested along with any organizational security procedures established.
Stress testing encompasses creating unusual loads on the system in attempts to brake it. System is monitored for performance loss and susceptibility to crashing during the load times. If it does crash as a result of high load, it provides for just one more recovery test.
Performance testing involves monitoring and recording the performance levels during regular and low and high stress loads. It tests the amount of resource usage under the just described conditions and serves as basis for making a forecast of additional resources needed (if any) in the future. It is important to note that performance objectives should have been developed during the planning stage and performance testing is to assure that these objectives are being met. However, these tests may be run in initial stages of production to compare the actual usage to the forecasted figures.
3. System testing is black box testing, performed by the Test Team, and at the start of the system testing the complete system is configured in a controlled environment.
The purpose of system testing is to validate an application's accuracy and completeness in performing the functions as designed.
System testing simulates real life scenarios that occur in a "simulated real life" test environment and test all functions of the system that are required in real life.
System testing is deemed complete when actual results and expected results are either in line or differences are explainable or acceptable, based on client input.
Upon completion of integration testing, system testing is started. Before system testing, all unit and integration test results are reviewed by Software QA to ensure all problems have been resolved. For a higher level of testing it is important to understand unresolved problems that originate at unit and integration test levels.

Question39: What is Operational Testing?
Answer: Testing conducted to evaluate a system or component in its operational environment. Contrast with testing, development; testing, acceptance.

Question40: What is Audit?
Answer: An inspection/assessment activity that verifies compliance with plans, policies, and procedures, and ensures that resources are conserved. Audit is a staff function; it serves as the “eyes and ears” of management.

Question41: Explain Path Testing?
Answer: Testing to satisfy coverage criteria that each logical path through the program be tested. Often paths through the program are grouped into a finite set of classes. One path from each class is then tested.

Question42: What are the parameters of performance testing?
Answer: The term "performance testing" is often used synonymously with stress testing, load testing, reliability testing, and volume testing. Performance testing is part of system testing, but it's also a distinct level of testing. Performance testing verifies loads, volumes, and response times, as defined by requirements.

Question43: What is Statement Testing?
Answer: Testing to satisfy the criterion that each statement in a program be executed at least once during program testing.

Question44: Explain Regression Testing?
Answer:
1. Rerunning test cases which a program has previously executed correctly in order to detect errors spawned by changes or corrections made during software development and maintenance.
2. The objective of regression testing is to ensure the software remains intact. A baseline set of data and scripts is maintained and executed to verify changes introduced during the release have not "undone" any previous code. Expected results from the baseline are compared to results of the software under test. All discrepancies are highlighted and accounted for, before testing proceeds to the next level.

Question45: What is Volume Testing?
Answer: Testing designed to challenge a system's ability to manage the maximum amount of data over a period of time. This type of testing also evaluates a system's ability to handle overload situations in an orderly fashion.

Question46: Functional testing?
Answer: Functional testing is black-box type of testing geared to functional requirements of an application. Test engineers *should* perform functional testing.
Functional testing is the same as black box testing. Black box testing a type of testing that considers only externally visible behavior. Black box testing considers neither the code itself, nor the "inner workings" of the software.
Function testing is a testing process that is black-box in nature. It is aimed at examining the overall functionality of the product. It usually includes testing of all the interfaces and should therefore involve the clients in the process. Because every aspect of the software system is being tested, the specifications for this test should be very detailed describing who, where, when and how will conduct the tests and what exactly will be tested.
The portion of the testing that will involve the clients is usually conducted as an alpha test where the developers closely monitor how the clients use the system. They take notes on what needs to be improved.

Question47: Explain End-to-end testing?
Answer: Similar to system testing, the *macro* end of the test scale is testing a complete application in a situation that mimics real world use, such as interacting with a database, using network communication, or interacting with other hardware, application, or system.

Question48: What is Gamma testing?
Answer: Gamma testing is testing of software that does have all the required features, but did not go through all the in-house quality checks. Cynics tend to refer to software releases as "gamma testing".

Question49: Explain Installation testing?
Answer: Installation testing is testing full, partial, upgrade, or install/uninstall processes. The installation test for a release is conducted with the objective of demonstrating production readiness.
This test includes the inventory of configuration items, performed by the application's System Administration, the evaluation of data readiness, and dynamic tests focused on basic system functionality. When necessary, a sanity test is performed, following installation testing.

Question50: What is Recovery/error testing?
Answer: Recovery/error testing is testing how well a system recovers from crashes, hardware failures, or other catastrophic problems. 

Question53: Explain Cyclomatic complexity?
Answer:
(1)The number of independent paths through a program.
(2)The cyclomatic complexity of a program is equivalent to the number of decision statements plus 1.

Question54: What is Load testing?
Answer:
1. Load testing is testing an application under heavy loads, such as the testing of a web site under a range of loads to determine at what point the system response time will degrade or fail.
2. Load testing simulates the expected usage of a software program, by simulating multiple users that access the program's services concurrently. Load testing is most useful and most relevant for multi-user systems, client/server models, including web servers. For example, the load placed on the system is increased above normal usage patterns, in order to test the system's response at peak loads

Question55: Explain Sanity testing?
Answer: Sanity testing is performed whenever cursory testing is sufficient to prove the application is functioning according to specifications. This level of testing is a subset of regression testing.
It normally includes a set of core tests of basic GUI functionality to demonstrate connectivity to the database, application servers, printers, etc.

Question56: What is Security/penetration testing?
Answer: Security/penetration testing is testing how well the system is protected against unauthorized internal or external access, or willful damage.
This type of testing usually requires sophisticated testing techniques.

Question57: What is Disaster recovery testing?
Answer:"Disaster recovery testing" is testing how well a system recovers from disasters, crashes, hardware failures, or other catastrophic problems.

Question58: What is Bottom-up testing?
Answer: Bottom-up testing is a technique of integration testing. A test engineer creates and uses test drivers for components that have not yet been developed, because, with bottom-up testing, low-level components are tested first. The objective of bottom-up testing is to call low-level components first, for testing purposes.
Or an integration testing technique that tests the low-level components first using test drivers for those components that have not yet been developed to call the low-level components for test.

Question59: Explain Acceptance Testing?
Answer: Testing conducted to determine whether or not a system satisfies its acceptance criteria and to enable the customer to determine whether or not to accept the system. Contrast with testing, development; testing, operational.
or
Formal testing conducted to determine whether or not a system satisfies its acceptance criteria—enables an end user to determine whether or not to accept the system.
Question60: Explain Testing?
Answer:
(1)The process of operating a system or component under specified conditions, observing or recording the results, and making an evaluation of some aspect of the system or component.
(2) The process of analyzing a software item to detect the differences between existing and required conditions, i.e. bugs, and to evaluate the features of the software items.
           
Question61: What is Boundary value testing?
Answer: A testing technique using input values at, just below, and just above, the defined limits of an input domain; and with input values causing outputs to be at, just below, and just above, the defined limits of an output domain.

Question62: What is Error-based Testing?
Answer: Testing where information about programming style, error-prone language constructs, and other programming knowledge is applied to select test data capable of detecting faults, either a specified class of faults or all possible faults.

Question63: Explain Monkey testing?
Answer: Monkey testing is random testing performed by automated testing tools (after the latter are developed by humans). These automated testing tools are considered "monkeys", if they work at random. We call them "monkeys" because it is widely believed that if we allow six monkeys to pound on six typewriters at random, for a million years, they will recreate all the works of Isaac Asimov.
There are "smart monkeys" and "dumb monkeys". "Smart monkeys" are valuable for load and stress testing; they will find a significant number of bugs, but are also very expensive to develop. "Dumb monkeys", on the other hand, are inexpensive to develop, are able to do some basic testing, but they will find few bugs. However, the bugs "dumb monkeys" do find will be hangs and crashes, i.e. the bugs you least want to have in your software product. "Monkey testing" can be valuable, but they should not be your only testing.

Question64:  Explain Smoke testing?
Answer: Smoke testing is a relatively simple check to see whether the product "smokes" when it runs. Smoke testing is also known as ad hoc testing, i.e. testing without a formal test plan.
With many projects, smoke testing is carried out in addition to formal testing. If smoke testing is carried out by a skilled tester, it can often find problems that are not caught during regular testing. Sometimes, if testing occurs very early or very late in the software development life cycle, this can be the only kind of testing that can be performed.
Smoke testing, by definition, is not exhaustive, but, over time, you can increase your coverage of smoke testing.
A common practice at Microsoft, and some other software companies, is the daily build and smoke test process. This means, every file is compiled, linked, and combined into an executable file every single day, and then the software is smoke tested.
Smoke testing minimizes integration risk, reduces the risk of low quality, supports easier defect diagnosis, and improves morale. Smoke testing does not have to be exhaustive, but should expose any major problems. Smoke testing should be thorough enough that, if it passes, the tester can assume the product is stable enough to be tested more thoroughly. Without smoke testing, the daily build is just a time wasting exercise. Smoke testing is the sentry that guards against any errors in development and future problems during integration. At first, smoke testing might be the testing of something that is easy to test. Then, as the system grows, smoke testing should expand and grow, from a few seconds to 30 minutes or more.

Question65: Explain Code inspection?
Answer: A manual [formal] testing [error detection] technique where the programmer reads source code, statement by statement, to a group who ask questions analyzing the program logic, analyzing the code with respect to a checklist of historically common programming errors, and analyzing its compliance with coding standards. Contrast with code audit, code review, code walkthrough. This technique can also be applied to other software and configuration items.
           
Question66: Explain Code walkthrough?
Answer: A manual testing [error detection] technique where program [source code] logic [structure] is traced manually [mentally] by a group with a small set of test cases, while the state of program variables is manually monitored, to analyze the programmer's logic and assumptions. Contrast with code audit, code inspection, code review.

Question67: What is Measurement?
Answer: The act or process of measuring. A figure, extent, or amount obtained by measuring.

Question68: What is Cause-effect Graphing?
Answer: A testing technique that aids in selecting, in a systematic way, a high-yield set of test cases that logically relates causes to effects to produce test cases. It has a beneficial side effect in pointing out incompleteness and ambiguities in specifications.

Question69: What is Brainstorming?
Answer: A group process for generating creative and diverse ideas.

Question70: Explain Client?
Answer: The end user that pays for the product received, and receives the benefit from the use of the product.

Question71: What is Glossary of Software QA/Testing?
Answer: The end user that actually uses the product received.

Question72: Explain Verification?
Answer: The process of evaluating the products of a given software development activity to determine correctness and consistency with respect to the products and standards provided as input to that activity.

Question73: What is Integration?
Answer: The process of combining software components or hardware components, or both, into an overall system.

Question74: Explain Debugging?
Answer: The act of attempting to determine the cause of the symptoms of malfunctions detected by testing or by frenzied user complaints.

Question75: What is Defect Density?
Answer: Ratio of the number of defects to program length (a relative number).
           
Question76: Explain Error?
Answer: 1) A discrepancy between a computed, observed, or measured value or condition and the true, specified, or theoretically correct value or condition; and
2) a mental mistake made by a programmer that may result in a program fault.

Question77: What is Dynamic Analysis?
Answer: The process of evaluating a program based on execution of that program. Dynamic analysis approaches rely on executing a piece of software with selected test data.

Question78: Evaluation?
Answer: The process of examining a system or system component to determine the extent to which specified properties are present.

Question79: What is Failure?
Answer: The inability of a system or system component to perform a required function within specified limits. A failure may be produced when a fault is encountered.

Question80: What is Fault?
Answer: A manifestation of an error in software. A fault, if encountered, may cause a failure.

Question81: What is Fault-based Testing?
Answer:
 1. Testing that employs a test data selection strategy designed to generate test data capable of demonstrating the absence of a set of pre-specified faults, typically, frequently occurring faults.
2. This type of testing allows for designing test cases based on the client specification or the code or both. It tries to identify plausible faults (areas of design or code that may lead to errors). For each of these faults a test case is developed to "flush" the errors out. These tests also force each line of code to be executed

Question82: What is Function Points?
Answer: A consistent measure of software size based on user requirements. Data components include inputs, outputs, etc. Environment characteristics include data communications, performance, reusability, operational ease, etc. Weight scale: 0 = not present; 1 = minor influence, 5 = strong influence.

Question83: What is Histogram?
Answer: A graphical description of individual measured values in a data set that is organized according to the frequency or relative frequency of occurrence. A histogram illustrates the shape of the distribution of individual values in a data set along with information regarding the average and variation.

Question84: What is Incremental Analysis?
Answer: Incremental analysis occurs when (partial) analysis may be performed on an incomplete product to allow early feedback on the development of that product.

Question85: Explain Inputs?
Answer: Products, services, or information needed from suppliers to make a process work.

Question86: Explain Structural Testing?
Answer:
(1)Testing that takes into account the internal mechanism [structure] of a system or component. Types include branch testing, path testing, statement testing.
(2) Testing to insure each program statement is made to execute during testing and that each program statement performs its intended function.
Structural testing is white box testing, not black box testing, since black boxes are considered opaque and do not permit visibility into the code.
Structural testing is also known as clear box testing, also known as glass box testing.
Structural testing is a way to test software with knowledge of the internal workings of the code being tested.

Question87: Explain Usability Testing?
Answer:
1. Tests designed to evaluate the machine/user interface. Are the communication device(s) designed in a manner such that the information is displayed in a understandable fashion enabling the operator to correctly interact with the system?
2. Usability testing is testing for 'user-friendliness'. Clearly this is subjective and depends on the targeted end-user or customer. User interviews, surveys, video recording of user sessions and other techniques can be used. Programmers and developers are usually not appropriate as usability testers.

Question88: What is Closed box testing?
Answer: Closed box testing is same as black box testing. Black box testing a type of testing that considers only externally visible behavior. Black box testing considers neither the code itself, nor the "inner workings" of the software.

Question89: What is OO Function Testing?
Answer: Function testing of OO software is no different than validation testing of procedural software. Client involvement is usually part of this testing stage. In OO environment use cases may be used. These are basically descriptions of how the system is to be used.

Question90: What is Comparison testing?
Answer: Comparison testing is testing that compares software weaknesses and strengths to those of competitors' products.

Question91: What is Reliability testing?
Answer: Reliability testing is designing reliability test cases, using accelerated reliability techniques - for example step-stress, test / analyze / fix, and continuously increasing stress testing techniques - AND testing units or systems to failure, in order to obtain raw failure time data for product life analysis.
The purpose of reliability testing is to determine product reliability, and to determine whether the software meets the customer's reliability requirements.
In the system test phase, or after the software is fully developed, one reliability testing technique we use is a test / analyze / fix technique, where we couple reliability testing with the removal of faults.
When we identify a failure, we send the software back to the developers, for repair. The developers build a new version of the software, and then we do another test iteration.
Then we track failure intensity - for example failures per transaction, or failures per hour - in order to guide our test process, and to determine the feasibility of the software release, and to determine whether the software meets the customer's reliability requirements.

Question92: What is Top-down Testing?
Answer: An integration testing technique that tests the high-level components first using stubs for lower-level called components that have not yet been integrated and that stimulate the required actions of those components.

Question93: What is Partition Testing?
Answer: This method categorizes the inputs and outputs of a class in order to test them separately. This minimizes the number of test cases that have to be designed.
To determine the different categories to test, partitioning can be broken down as follows:
- State-based partitioning - categorizes class operations based on how they change the state of a class
- Attribute-based partitioning - categorizes class operations based on attributes they use
- Category-based partitioning - categorizes class operations based on the generic function the operations perform

Question94: What is Stochastic testing?
Answer: Stochastic testing is the same as "monkey testing", but stochastic testing is a lot more technical sounding name for the same testing process.
Stochastic testing is black box testing, random testing, performed by automated testing tools. Stochastic testing is a series of random tests over time. The software under test typically passes the individual tests, but our goal is to see if it can pass a large number of individual tests.

Question95: Explain Automated testing?
Answer: Automated testing is a formally specified and controlled method of formal testing approach.
or
That part of software testing that is assisted with software tool(s) that does not require operator input, analysis, or evaluation.
           
Question96: Explain Validation?
Answer: Establishing documented evidence which provides a high degree of assurance that a specific process will consistently produce a product meeting its predetermined specifications and quality attributes. Validation typically involves actual testing and takes place after verifications are completed.
Validation (Product Oriented)
Validation is concerned with whether the right functions of the program have been properly implemented, and that this function will properly produce the correct output given some input value.
The process of evaluating software to determine compliance with specified requirements.
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.

Question97: What is Affinity Diagram?
Answer: A group process that takes large amounts of language data, such as a list developed by brainstorming, and divides it into categories.

Question98: What is Cause-and-Effect (Fishbone) Diagram?
Answer: A tool used to identify possible causes of a problem by representing the relationship between some effect and its possible cause.

Question99: What is Checksheet?
Answer: A form used to record data as it is gathered.

Question100: What is Control Chart?
Answer: A statistical method for distinguishing between common and special cause variation exhibited by processes.

Question101: What is V- Diagram (model)?
Answer: a diagram that visualizes the order of testing activities and their corresponding phases of development

Question102: What is Walkthrough?
Answer: Usually, a step-by-step simulation of the execution of a procedure, as when walking through code, line by line, with an imagined set of inputs. The term has been extended to the review of material that is not procedural, such as data descriptions, reference manuals, specifications, etc.

Question103: What is Customer (end user)?
Answer: The individual or organization, internal or external to the producing organization, that receives the product.

Question104: What is Data Flow Analysis?
Answer: Consists of the graphical analysis of collections of (sequential) data definitions and reference patterns to determine constraints that can be placed on data values at various points of executing the source program.

Question105: What is Defect Analysis?
Answer: Using defects as data for continuous quality improvement. Defect analysis generally seeks to classify defects into categories and identify possible causes in order to direct process improvement efforts.

Question106: Explain Defect?
Answer: NOTE: Operationally, it is useful to work with two definitions of a defect:
1) From the producer’s viewpoint: a product requirement that has not been met or a product attribute possessed by a product or a function performed by a product that is not in the statement of requirements that define the product.
2) From the end user’s viewpoint: anything that causes end user dissatisfaction, whether in the statement of requirements or not.

Question107: What is Fault Tree Analysis?
Answer: A form of safety analysis that assesses hardware safety to provide failure statistics and sensitivity analyses that indicate the possible effect of critical failures.

Question108: What is Usability?
Answer: "Usability" means ease of use; the ease with which a user can learn to operate, prepares inputs for, and interpret the outputs of a software product.

Question109: What is Hybrid Testing?
Answer: A combination of top-down testing combined with bottom-up testing of prioritized or available components.

Question110: What is Infeasible Path?
Answer: Program statement sequence that can never be executed.

Question111 : What is Operational Requirements?
Answer: Qualitative and quantitative parameters that specify the desired operational capabilities of a system and serve as a basis for deter-mining the operational effectiveness and suitability of a system prior to deployment.

Question112: What is Flowchart?
Answer: A diagram showing the sequential steps of a process or of a workflow around a product or service. Formal Review: A technical review conducted with the end user, including the types of reviews called for in the standards.

Question113: What is Class Level Methods?
Answer: As mentioned above, a class (and its operations) is the module most concentrated on in OO environments. From here it should expand to other classes and sets of classes. Just like traditional models are tested by starting at the module first and continuing to module clusters or builds and then the whole program

Question114: Explain Basis Path Testing?
Answer: Basis path testing is a white-box technique. It allows the design and definition of a basis set of execution paths. The test cases created from the basis set allow the program to be executed in such a way as to examine each possible path through the program by executing each statement at least once.
To be able to determine the different program paths, the engineer needs a representation of the logical flow of control. The control structure can be illustrated by a flow graph. A flow graph can be used to represent any procedural design.
Next a metric can be used to determine the number of independent paths. It is called cyclomatic complexity and it provides the number of test cases that have to be designed. This insures coverage of all program statements.

Question115: Explain Operational Testing?
Answer: Testing performed by the end user on software in its normal operating environment.
           
Question116: What is Outputs?
Answer: Products, services, or information supplied to meet end user needs.

Question117: What is Path Coverage Testing?
Answer: A test method satisfying coverage criteria that each logical path through the program is tested. Paths through the program often are grouped into a finite set of classes; one path from each class is tested.

Question118: What is Policy?
Answer: Managerial desires and intents concerning either process (intended objectives) or products (desired attributes).

Question119: Explain Test Bed?
Answer:
1) An environment that contains the integral hardware, instrumentation, simulators, software tools, and other support elements needed to conduct a test of a logically or physically separate component.
2) A suite of test programs used in conducting the test of a component or system.

Question120: What is ISSUES?
Answer: Invariable there will be issues with software testing under both models. This is simply because both environments are dynamic and have to deal with ongoing changes during the life cycle of the project. That means changes in specifications, analysis, design and development. All of these of course affect testing. However, we will concentrate on possible problem areas within the testing strategies and methods. We will examine how these issues pertain to each environment.

Question121: What is ISO - International Organisation for Standardization?
Answer: SO = 'International Organisation for Standardization' - The ISO 9001:2000 standard (which replaces the previous standard of 1994) concerns quality systems that are assessed by outside auditors, and it applies to many kinds of production and manufacturing organizations, not just software. It covers documentation, design, development, production, testing, installation, servicing, and other processes. The full set of standards consists of:
(a)Q9001-2000 - Quality Management Systems: Requirements;
(b)Q9000-2000 - Quality Management Systems: Fundamentals and Vocabulary;
(c)Q9004-2000 - Quality Management Systems: Guidelines for Performance Improvements.
To be ISO 9001 certified, a third-party auditor assesses an organization, and certification is typically good for about 3 years, after which a complete reassessment is required. Note that ISO certification does not necessarily indicate quality products - it indicates only that documented processes are followed.
Also see http://www.iso.ch/ for the latest information. In the U.S. the standards can be purchased via the ASQ web site at http://e-standards.asq.org/

Question122: What is ANSI - American National Standards Institute?
Answer: ANSI = 'American National Standards Institute', the primary industrial standards body in the U.S.; publishes some software-related standards in conjunction with the IEEE and ASQ (American Society for Quality). Other software development/IT management process assessment methods besides CMMI and ISO 9000 include SPICE, Trillium, TickIT, Bootstrap, ITIL, MOF, and CobiT.

Question123: Explain Traceability matrix?
Answer:
(1)Traceability Matrix is for mapping the requirements to Test cases. To verify whether all the test cases covering all the stated requirements or not. The purpose of the Traceability Matrix is to identify all business requirements and to trace each requirement through the project's completion.
(2)A matrix that records the relationship between two or more products; e.g., a matrix that records the relationship between the requirements and the design of a given software component. See: traceability, traceability analysis.

Question124: What is V&V?
Answer: "V&V" is an acronym that stands for verification and validation.
"Validation: are we building the product right"
"Verification: are we building the right product"
Verification and validation (V&V) is a process that helps to determine if the software requirements are complete, correct; and if the software of each development phase fulfills the requirements and conditions imposed by the previous phase; and if the final software complies with the applicable software requirements.

Question125: What is Life Cycle?
Answer: The period that starts when a software product is conceived and ends when the product is no longer available for use. The software life cycle typically includes a requirements phase, design phase, implementation (code) phase, test phase, installation and checkout phase, operation and maintenance phase, and a retirement phase.

Question126: What is Software Bug?
Answer:
(1)A fault in a program which causes the program to perform in an unintended or unanticipated manner. See: anomaly, defect, error, exception, fault.
(2)A bug is a glitch in computer software or hardware (where something doesn't do what it is supposed to do). Since computers and computer software are very complicated to design, human beings will make mistakes in the design. Unfortunately, in the rush to market, many of these mistakes are not found until after a product has shipped. This is why fixes (also called patches) are often posted on web sites. When considering the quality of a product, one must consider not only the number of bugs, but also the value of the features of a program, since a feature-rich program is likely to have more bugs than a "plain-vanilla" program. 3)A design flaw that will result in symptoms exhibited by some object (the object under test or some other object) when an object is subjected to an appropriate test.

Question127: What is Top-Down Strategy?
Answer: Top down integration is basically an approach where modules are developed and tested starting at the top level of the programming hierarchy and continuing with the lower levels.
It is an incremental approach because we proceed one level at a time. It can be done in either "depth" or "breadth" manner.
- Depth means we proceed from the top level all the way down to the lowest level.
- Breadth, on the other hand, means that we start at the top of the hierarchy and then go to the next level. We develop and test all modules at this level before continuing with another level.
Either way, this testing procedure allows us to establish a complete skeleton of the system or product.
The benefits of Top-down integration are that, having the skeleton, we can test major functions early in the development process.
At the same time we can also test any interfaces that we have and thus discover any errors in that area very early on. But the major benefit of this procedure is that we have a partially working model to demonstrate to the clients and the top management. This of course builds everybody's confidence not only in the development team but also in the model itself. We have something that proves our design was correct and we took the correct approach to implement it.
However, there are some drawbacks to this procedure as well:
Using stubs does not permit all the necessary upward data flow. There is simply not enough data in the stubs to feed back to the calling module.
As a result, the top level modules can not be really tested properly and every time the stubs are replaced with the actual modules, the calling modules should be re-tested for integrity again.

Question128: What is Big-Bang Strategy?
Answer: Big-Bang approach is very simple in its philosophy where basically all the modules or builds are constructed and tested independently of each other and when they are finished, they are all put together at the same time.
The main advantage of this approach is that it is very quick as no drivers or stubs are needed, thus cutting down on the development time.
However, as with anything that is quickly slapped together, this process usually yields more errors than the other two. Since these errors have to be fixed and take more time to fix than errors at the module level, this method is usually considered the least effective.
Because of the amount of coordination that is required it is also very demanding on the resources. Another drawback is that there is really nothing to demonstrate until all the modules have been built and integrated.

Question129: What is Coverage analysis?
Answer: Determining and assessing measures associated with the invocation of program structural elements to determine the adequacy of a test run. Coverage analysis is useful when attempting to execute each statement, branch, path, or iterative structure in a program. Tools that capture this data and provide reports summarizing relevant information have this feature.

Question130: What is Criticality?
Answer: The degree of impact that a requirement, module, error, fault, failure, or other item has on the development or operation of a system. Syn: severity.

Question131: What is Error seeding?
Answer: Error seeding. (IEEE) The process of intentionally adding known faults to those already in a computer program for the purpose of monitoring the rate of detection and removal, and estimating the number of faults remaining in the program. Contrast with mutation analysis.

Question132: What is System Simulation?
Answer: Another name for prototyping.

Question133: What is Review?
Answer: A process or meeting during which a work product or set of work products, is presented to project personnel, managers, users, customers, or other interested parties for comment or approval. Types include code review, design review, formal qualification review, requirements review, test readiness review. Contrast with audit, inspection.

Question134: What is Risk Assessment?
Answer: A comprehensive evaluation of the risk and its associated impact.

Question135: Explain Static analysis?
Answer:
(1) Analysis of a program that is performed without executing the program.
(2)The process of evaluating a system or component based on its form, structure, content, documentation. Contrast with dynamic analysis.

Question136: What is Test case generator?
Answer: A software tool that accepts as input source code, test criteria, specifications, or data structure definitions; uses these inputs to generate test input data; and, sometimes, determines expected results.

Question137: What is Scenario-based Testing?
Answer: This form of testing concentrates on what the user does. It basically involves capturing the user actions and then simulating them and similar actions during the test. These tests tend to find interaction type of errors

Question138: What is Test design?
Answer: Documentation specifying the details of the test approach for a software feature or combination of software features and identifying the associated tests.

Question139: Explain Test driver?
Answer: A software module used to invoke a module under test and, often, provide test inputs, control and monitor execution, and report test results.

Question140: What is Test item?
Answer: A software item which is the object of testing.

Question141: What is Test phase?
Answer: The period of time in the software life cycle in which the components of a software product are evaluated and integrated, and the software product is evaluated to determine whether or not requirements have been satisfied.

Question142: Explain Test Procedure?
Answer: The formal or informal procedure that will be followed to execute a test. This is usually a written document that allows others to execute the test with a minimum of training.

Question143: What is Test Development?
Answer: The development of anything required to conduct testing. This may include test requirements (objectives), strategies, processes, plans, software, procedures, cases, documentation, etc.

Question144: Explain Test Harness?
Answer: A software tool that enables the testing of software components that links test capabilities to perform specific tests, accept program inputs, simulate missing components, compare actual outputs with expected outputs to determine correctness, and report discrepancies.

Question145: What is Benchmark?
Answer: A Benchmark is a standard to measure against. If you benchmark an application, all future application changes will be tested and compared against the benchmarked application.

Question146: What is Test result analyzer?
Answer: A software tool used to test output data reduction, formatting, and printing.

Question147: Test engineer?
Answer: We, test engineers are engineers who specialize in testing. We, test engineers, create test cases, procedures, scripts and generate data. We execute test procedures and scripts, analyze standards of measurements, evaluate results of system/integration/regression testing.
We also...
* Speed up the work of your development staff;
* Reduce your organization's risk of legal liability;
* Give you the evidence that your software is correct and operates properly;
* Improve your problem tracking and reporting;
* Maximize the value of your software;
* Maximize the value of the devices that use it;
* Assure the successful launch of your product by discovering bugs and design flaws, before users get discouraged, before shareholders loose their cool and before employees get bogged down;
* Help the work of your development staff, so the development team can devote its time to build up your product;
* Promote continual improvement;
* Provide documentation required by FDA, FAA, other regulatory agencies and your customers;
* Save money by discovering defects 'early' in the design process, before failures occur in production, or in the field;
* Save the reputation of your company by discovering bugs and design flaws; before bugs and design flaws damage the reputation of your company.

Question148: What is Test/QA Team Lead?
Answer: The Test/QA Team Lead coordinates the testing activity, communicates testing status to management and manages the test team.

Question149: What is Up time?
Answer: "Up time" is the time period when a system is operational and in service. Up time is the sum of busy time and idle time. For example, if, out of 168 hours, a system has been busy for 50 hours, idle for 110 hours, and down for 8 hours, then the busy time is 50 hours, idle time is 110 hours, and up time is (110 + 50 =) 160 hours.

Question150: Explain Exit criteria?
Answer: The "exit criteria" is a checklist, sometimes known as the "PDR sign-off sheet". It is a list of peer design review related tasks that have to be done by the facilitator or attendees of the PDR, either during or near the conclusion of the PDR.
By having a checklist, and by going through the checklist, the facilitator can verify that A) all attendees have inspected all the relevant documents and reports, B) all suggestions and recommendations for each issue have been recorded, and C) all relevant facts of the meeting have been recorded.
The facilitator's checklist includes the following questions:
* Have we inspected all the relevant documents, code blocks, or products?
* Have we completed all the required checklists?
* Have I recorded all the facts relevant to this peer review?
* Does anyone have any additional suggestions, recommendations, or comments?
* What is the outcome of this peer review?
As the end of the PDR, the facilitator asks the attendees to make a decision as to the outcome of the PDR, i.e. "What is our consensus... are we accepting the design (or document or code)?" Or, "Are we accepting it with minor modifications?" Or, "Are we accepting it after it has been modified and approved through e-mails to the attendees?" Or, "Do we want another peer review?" This is a phase, during which the attendees work as a committee, and the committee's decision is final.

Question151: What is IEEE - Institute of Electrical and Electronics Engineers?
Answer: IEEE = 'Institute of Electrical and Electronics Engineers' - among other things, creates standards such as 'IEEE Standard for Software Test Documentation' (IEEE/ANSI Standard 829), 'IEEE Standard of Software Unit Testing (IEEE/ANSI Standard 1008), 'IEEE Standard for Software Quality Assurance Plans' (IEEE/ANSI Standard 730), and others.

Question152: What is Test documentation?
Answer: Documentation describing plans for, or results of, the testing of a system or component, Types include test case specification, test incident report, test log, test plan, test procedure, test report.

Question153: What is Test incident report?
Answer: A document reporting on any event that occurs during testing that requires further investigation.

Question154: What is Test log?
Answer: A chronological record of all relevant details about the execution of a test.

Question155: Explain Test plan?
Answer:
1. Documentation specifying the scope, approach, resources, and schedule of intended testing activities. It identifies test items, the features to be tested, the testing tasks, responsibilities, required, resources, and any risks requiring contingency planning.
Or
A formal or informal plan to be followed to assure the controlled testing of the product under test.
2. A software project test plan is a document that describes the objectives, scope, approach and focus of a software testing effort. The process of preparing a test plan is a useful way to think through the efforts needed to validate the acceptability of a software product. The completed document will help people outside the test group understand the why and how of product validation. It should be thorough enough to be useful, but not so thorough that none outside the test group will be able to read it.

Question156: Explain Test case?
Answer:
1. Documentation specifying inputs, predicted results, and a set of execution conditions for a test item.
A test case is a document that describes an input, action, or event and an expected response, to determine if a feature of an application is working correctly. A test case should contain particulars such as test case identifier, test case name, objective, test conditions/setup, input data requirements, steps, and expected results.
Note that the process of developing test cases can help find problems in the requirements or design of an application, since it requires completely thinking through the operation of the application. For this reason, it's useful to prepare test cases early in the development cycle if possible.
or
The definition of test case differs from company to company, engineer to engineer, and even project to project. A test case usually includes an identified set of information about observable states, conditions, events, and data, including inputs and expected outputs.
2. A test case is a document that describes an input, action, or event and its expected result, in order to determine if a feature of an application is working correctly. A test case should contain particulars such as a...
* Test case identifier;
* Test case name;
* Objective;
* Test conditions/setup;
* Input data requirements/steps, and
* Expected results.
Please note, the process of developing test cases can help find problems in the requirements or design of an application, since it requires you to completely think through the operation of the application. For this reason, it is useful to prepare test cases early in the development cycle, if possible.

Question158: What is Ad Hoc Testing?
Answer: A testing phase where the tester tries to 'break' the system by randomly trying the system's functionality. Can include negative testing as well.

Question159: What is Agile Testing?
Answer: Testing practice for projects using agile methodologies, treating development as the customer of testing and emphasizing a test-first design paradigm.

Question160: What is Alpha & Beta Testing?
Answer:
Alpha Testing: Testing a software product which is not the final version.This software does not have to necessarily contain the full functionality required for an appliation, however core functionality to accept input an generate output is required.
Beta Testing: Beta Testing  is last stage of testing where a product is sent outside the company or offer the product for free trial download.

Question161: What is the difference between load and stress testing ?
Answer: One of the most common, but unfortunate misuse of terminology is treating “load testing” and “stress testing” as synonymous. The consequence of this ignorant semantic abuse is usually that the system is neither properly “load tested” nor subjected to a meaningful stress test.
Stress testing is subjecting a system to an unreasonable load while denying it the resources (e.g., RAM, disc, mips, interrupts, etc.) needed to process that load. The idea is to stress a system to the breaking point in order to find bugs that will make that break potentially harmful. The system is not expected to process the overload without adequate resources, but to behave (e.g., fail) in a decent manner (e.g., not corrupting or losing data). Bugs and failure modes discovered under stress testing may or may not be repaired depending on the application, the failure mode, consequences, etc. The load (incoming transaction stream) in stress testing is often deliberately distorted so as to force the system into resource depletion.

Question162: How can new Software QA processes be introduced in an existing organization?
Answer:
- A lot depends on the size of the organization and the risks involved. For large organizations with high-risk (in terms of lives or property) projects, serious management buy-in is required and a formalized QA process is necessary.
- Where the risk is lower, management and organizational buy-in and QA implementation may be a slower, step-at-a-time process. QA processes should be balanced with productivity so as to keep bureaucracy from getting out of hand.
- For small groups or projects, a more ad-hoc process may be appropriate, depending on the type of customers and projects. A lot will depend on team leads or managers, feedback to developers, and ensuring adequate communications among customers, managers, developers, and testers.
- In all cases the most value for effort will be in requirements management processes, with a goal of clear, complete, testable requirement specifications or expectations.

Question163: What if there is not enough time for thorough testing?
Answer: Use risk analysis to determine where testing should be focused.
Since it's rarely possible to test every possible aspect of an application, every possible combination of events, every dependency, or everything that could go wrong, risk analysis is appropriate to most software development projects. This requires judgment skills, common sense, and experience. (If warranted, formal methods are also available.) Considerations can include:
- Which functionality is most important to the project's intended purpose?
- Which functionality is most visible to the user?
- Which functionality has the largest safety impact?
- Which functionality has the largest financial impact on users?
- Which aspects of the application are most important to the customer?
- Which aspects of the application can be tested early in the development cycle?
- Which parts of the code are most complex, and thus most subject to errors?
- Which parts of the application were developed in rush or panic mode?
- Which aspects of similar/related previous projects caused problems?
- Which aspects of similar/related previous projects had large maintenance expenses?

Question164: What steps are needed to develop and run software tests?
Answer: The following are some of the steps to consider:
- Obtain requirements, functional design, and internal design specifications and other necessary documents
- Obtain budget and schedule requirements
- Determine project-related personnel and their responsibilities, reporting requirements, required standards and processes (such as release processes, change processes, etc.)
- Identify application's higher-risk aspects, set priorities, and determine scope and limitations of tests
- Determine test approaches and methods - unit, integration, functional, system, load, usability tests, etc.
- Determine test environment requirements (hardware, software, communications, etc.)

Question165: How can World Wide Web sites be tested?
Answer: Web sites are essentially client/server applications - with web servers and 'browser' clients. Consideration should be given to the interactions between html pages, TCP/IP communications, Internet connections, firewalls, applications that run in web pages (such as applets, javascript, plug-in applications), and applications that run on the server side (such as cgi scripts, database interfaces, logging applications, dynamic page generators, asp, etc.). Additionally, there are a wide variety of servers and browsers, various versions of each, small but sometimes significant differences between them, variations in connection speeds, rapidly changing technologies, and multiple standards and protocols. The end result is that testing for web sites can become a major ongoing effort. Other considerations might include:
- What are the expected loads on the server (e.g., number of hits per unit time?), and what kind of performance is required under such loads (such as web server response time, database query response times). What kinds of tools will be needed for performance testing (such as web load testing tools, other tools already in house that can be adapted, web robot downloading tools, etc.)?

Question166: What is Extreme Programming and what is it got to do with testing?
Answer: Extreme Programming (XP) is a software development approach for small teams on risk-prone projects with unstable requirements. It was created by Kent Beck who described the approach in his book 'Extreme Programming Explained'. Testing ('extreme testing') is a core aspect of Extreme Programming. Programmers are expected to write unit and functional test code first - before the application is developed. Test code is under source control along with the rest of the code. Customers are expected to be an integral part of the project team and to help developed scenarios for acceptance/black box testing. Acceptance tests are preferably automated, and are modified and rerun for each of the frequent development iterations. QA and test personnel are also required to be an integral part of the project team. Detailed requirements documentation is not used, and frequent re-scheduling, re-estimating, and re-prioritizing is expected.

Question167: How do you plan test automation?
Answer: Steps involved in test plan automation are:
1. Prepare the automation Test plan
2. Identify the scenario
3. Record the scenario
4. Enhance the scripts by inserting check points and Conditional Loops
5. Incorporated Error Handler
6. Debug the script
7. Fix the issue
8. Rerun the script and report the result.