Thursday, March 29, 2012

Regression Testing Vs Re-Testing


No Regression Testing Re-Testing
1 In Regression Testing after checking the fixation of the bug to verify it's not generated any side effect of the application In Re-Testing we check whether the bug fixed or not
2 Testing the test case in the new build Testing the test case in same build but different inputs
3 Regression testing involves executing test case that were passed earlier build Retesting involves executing test case that were failed earlier build
4 Testing the application after change in module or part of the application for testing because the change code will affect rest of the application Testing the certain part of the application again without considering how it will affect other part of the application

Tuesday, March 27, 2012

Defect Life Cycle

New Resolved/Fixed Verified   Op

1.  New: When the Defect is reported for the first time, its status will be “NEW”. This means that is yet to be approved. The New defect can be a Assign, Rejected or Deferred.

2. Open/Assign: The lead of the tester study the New Defect . Then change status from New to Open/ Assign. And Assign to the respective developer. See you can make the two status separately that Open and Assign .Open : The defect is the Open but not still yet Assign. Assign: The defect Open and Assign to the Developer.

3. Resolved: Developer fixes the defect, assigned back to respective tester. By changing the status of the defect Resolved. The fixed defect need to be verify by Tester/Test Team . If the defect is correctly fixed then Tester change the status Verified else Reassign/Reopen.

4. Deferred: If the New or Assigned defect is decided to be fixed in next release instead of the current release then that defect status change to the Deferred.

5. Rejected: If the defect found to be invalid then it is rejected . The defect need to be rejected by either of Test team lead/Development lead .

6. Verified: If tester find there the defect is fixed then status change to Verified.

7. Closed: If tester feel that filed the defect is no longer exist in the software then it change the final status to be Closed.

8. Reopened/Reassigned: If the defect still exists even after the bug is fixed by the developer, the tester changes the status to Reopened/Reassigned.



Monday, March 26, 2012

Selenium Remote Control Introduction



Selenium RC
Suppose You want to create frame work or want to run test case which required to change the test data frequently or need to be repeated data; else you want to check some condition , to do verification,  to use reusable function ….Then IDE fail in that .To do these need to do the programing then selenium RC is introduce.



What is Selenium Remote Control?

As you know the selenium IDE only work with the Mozilla Firefox…but end-user does not use only the one Firefox they use different browser Internet Explorer, Google chrome, Opera .It is tool that allow you to write automated web application UI Test in any programming language. It is also called as selenium 1.

How the Selenium RC Works?

The Diagram shows that RC Server receives the selenium command from the scripts (Test Programme). Test programme passes selenium command to the RC Sever for execution then RC Sever send this to web browser.
Selenium RC needed the selenium client libraries .It provides a programming interface. The client library takes a Selenese command and passes it to the Selenium Server for processing a specific action or test against the application under test. The client library also receives the result of that command and passes it back to your program.

How to set up Selenium Remote Control?

Download Selenium Remote Control: (http://seleniumhq.org/download)
Extract the Zip file.
Go the Command Prompt navigate to the folder where you extract the zip file.
Run the command java –jar  selenium-server-standalone-2.19.0.jar  (Note: 2.19.0 this is the version number when I downloaded) Running this command we created the proxy that our tests will communicate with it.

How to import selenium IDE Test case to Selenium RC?
1. Go to Selenium IDE
2. Open the test case in Selenium IDE which recorded
3. Convert the selenium IDE test in different format by going to Option tab of selenium IDE menu
4. Go to Format
5. Select the language which you want (Eg: select the java)
6. Go to source tab 
7. Copy the code in Eclipse project
8.How to create the project in Eclipse?( Eclipse Installation and Project Creation ) 
1. Launch the Eclipse simply clicking on Eclipse Icon
2. Click on the File of the menu bar of the Eclipse
3. Follow the path: File>>New>>Java Project
4. Enter or else Give the Project Name and Click on the Finish button
5. The Java Project get created
Expand the project:
SRC is called as Package gets created by default. --- Create new classes into it 
6. Click on the right click of the src and click on the Class and give the name of the class
First thing need to do the change the class name in the source file which copied from the IDE and give the class name which you given the src class name
7. Paste the code which copied.

Sunday, March 25, 2012

Difference between Smoke Testing and Sanity Testing.


No Smoke Testing Sanity Testing
1 It's useful to check the stability of the system It's useful to check the rationality of the system
2 It’s shallow and wide approach It's narrow approach
3 It's check the all areas of the application without getting into deep It's focus on the one or few areas of the application
4 It's designed to touch every part of the application that 's cursory way It's use to determine small section of the application to check is it working after changes
5 It's performed to check critical functionality of the program working fine It’s performed to check any minor changes and added new functionality
6 It is also called as build verification test It's also called as Tester acceptance testing
7 It's scripted It's unscripted

Wednesday, March 21, 2012

How the Bug Report is important?


Bug report is the report to tell the programmer/developer to fix the bug.Seeing the bug report the programmer need to be understand what's the bug is all about.Bug report is the way where you can convince the programmer to fix the bug .Even if you are not the present on your desk the your bug report should do your work at your(Tester) absent.So for that, the bug report should be effective,informative & understandable.If the bug report is good then it is high chances to be fixed the bug.

1.The summery of the bug report should be clear and effective , the summery of the bug should give the more information to reader. Seeing the summery the reader need to be visualize the failure,impact ,consequences of the bug.
2.In the description of the bug report need to be write details of the bug.Like bug environment,In which platform the bug occurs. dependencies of the other module and component all.
3.Write Step to reproduce the bug, give more detailing of the steps.
4.Specify the priority and severity of the bug.Priority indicated when you want to be fixed the bug and severity indicated impact and consequences of the bug.
5.Attach the image file if it necessary.
These are the main component which need to be present in the bug report.


 Filed the bug report on the time don't wait for next-day.Don't make Assumption that obvious bug has been filed.because sometime it's not.Filed the minor bug too don't be hesitate to file the minor bug because some time that minor bug can cost lot.Do not filed the duplicate bug report if you know that then do cross-references.

Monday, March 19, 2012

Traceability Matrix




The Traceability Matrix is to be able to trace from top level requirements to implementation, and from top level requirements to test. It shows the relationship between Test Requirements and Test Cases.
Using Traceability Matrix, we can check that which requirements are covered in which
Test cases and which test case covers which requirements. The same apply for the code too means which codes are covered which requirements and which requirements are covered in which section of the code too.
They are types of traceability matrix:
1. Forward traceability
2. Backward traceability
3. Bidirectional traceability
1. Forward Traceability:




Mapping takes place from requirements to test cases
2. Backward Traceability:

                     

 Mapping takes place from test cases to requirements.

 Bidirectional Traceability:

  
It contain Forward and backward traceability .Bidirectional matrix is good for practise 

A traceability matrix is a table that traces a requirement to the tests that are needed to verify that the requirement is fulfilled. A good traceability matrix will provide backward and forward traceability,. The matrix links higher level requirements, design specifications, test requirements, and code files. This is also known as Requirements Traceability Matrix or RTM.

In RTM each requirements should be traceable: Written test cases should be traceable to its requirement specification. If there is new version then updated test cases should be traceable with that.
and make sure that all requirements included in the test cases

It Easy to identify the missing functionality.
If there is a change request for a requirement, then we can easily find out which test cases need to update.
It is also use for the test coverage.



Sunday, March 18, 2012

How to use extension(plug-in) in Selenium IDE?



1. Go to Google
2. Type the selenium documentation
3. Click on the sequence of evaluation and flow control under the selenium IDE
4. Click on the link selenium ide.js extension
5. Click on the link page
6.Eg:  github.com/darrenderidder/sideflow
 7. Download the zip file
8. Extract the file
9. Copy the js file where you want to save
How to retrieve the saved .js file in the selenium IDE?
1. It is good to be Save js file the name of as user-extensions.js. While this name isn’t technically necessary, it’s good practice to keep things consistent.
2. Open Firefox and open Selenium-IDE.
3. Click on Tools, Options
4. In Selenium Core Extensions click on Browse and find the user-extensions. js file. Click on OK.
5. Your user-extension will not yet be loaded; you must close and restart Selenium-IDE.


Thursday, March 15, 2012

How to do Web Application Testing ?


Testing web application is different than to testing any other application. There are certain checklist and some certain testing point which need to be done.
Functionality Testing:
1. Test all links in your webpages are working correctly.
 Links to be checked:-
  • Outgoing links: Check that the link takes you proper web page.
  • Internal links: Check that the link takes you another section of the same web page.
  • Anchor Links: Check that the link points to a specific element on web pages.
  • Check the Mail to Links  it reaches properly.
  • Check that there is no orphan page.
  • Check the broken link.
  • If you removed some of the web pages from the site, then set up custom 404 page that redirect visitors to home page of the web site.


 2. Test Forms in the web pages.
This include-
  • Scripting checks on the form are working as expected.
  • Validation of each field.
  • Check default values are being populated.
  • Check the scrollbar appears if required.
  • Once submitted, the data in the forms is submitted to a database or is linked to a working email address.
  • Check the Error is showing inserting incorrect input in the form.
  • Check Option of the form – like form view, modify, delete.


3. Test Cookies are working as expected.
Cookies are small files used by websites to primarily remember active user sessions so it is use for future access.
 Cookie Testing include:
  • Testing cookies are deleted either when cache is cleared or when they reach their expiry.
  • Delete cookies and test that login credentials are asked for when you next visit the site.
  • Check what happened if user delete the cookies while in site.


4. Test HTML and CSS to ensure that search engines can crawl your site easily. This will include
  • Checking for Syntax Errors
  • Readable Colour Schema
  • Standard Compliance. Ensure standards such W3C, followed.



5. Test business workflow-
It includes:
End - to - end workflow, business scenarios which takes the user through a series of webpage's to complete.
Test negative scenarios as well, such that when a user executes an unexpected step, appropriate error message or help is shown in your web application.

2. Usability testing:
Usability testing has now become a vital part of any web based project. It ensures that the intended users of a system can carried out the tasks efficiently & effectively. Web site should be easy to use

Learn-ability:
How easy it is for users to achieve tasks when visiting your web site for the first time

Efficiency:
How quickly tasks can be achieved once a user is familiar with your site

Memorability:
How quickly proficiency can be re-established when users have not visited your web site for some time

Errors & Problem Resolution:
How often errors are made, how serious these errors are and how easy it is for users to recover from these errors
Satisfaction:
How satisfied users are with the web site design, content, applications etc.

Test the Navigation:
Menus, buttons or Links to different pages on your site should be easily visible and consistent on all webpages. Navigation means how the user surfs the web pages,
 
3.Content testing:
Content includes the text, graphics, videvo &audio
Content should be legible with no spelling or grammatical errors.
Images if present should contain and "alt" text
All the anchor text links should be working properly. Images should be placed properly with proper sizes

4. Interface Testing:
 Application, Web and Database Server these are the main interface.
Application: Test requests are sent correctly to the Database and show correct output at the client side. Errors if any must be caught by the application and must be only shown to the administrator and not the end user.
Web Server: Test Web server is handling all application requests without any service denial.
Database Server: Make sure queries sent to the database give expected results.
Test system response when connection between the three layers (Application, Web and Database) cannot be established and appropriate message is shown to the end user.

5. Database Testing:
Database is one critical component of your web application and stress must be laid to test it thoroughly. Testing activities will include-
Test if any errors are shown while executing queries
Data Integrity is maintained while creating, updating or deleting data in database.
Check response time of queries and fine tune them if necessary.
Test data retrieved from your database is shown accurately in your web application

6. Compatibility testing.
Compatibility tests ensure that your web application displays correctly across different devices.
 This include-
Browser Compatibility Test: Same website in different browsers will display differently. You need to test if your web application is being displayed correctly across browsers, JavaScript, AJAX and authentication is working fine. Check the browser setting, browser version because some application supports older version or newer version.
 You may also check for Mobile Browser Compatibility.
The rendering of web elements like buttons, text fields etc. changes with change in Operating System. Make sure your website works fine for various combinations of Operating systems such as Windows, Linux, Mac and Browsers such as Firefox, Internet Explorer, Safari etc.
Mobile browsing:
Testing the web page on the mobile browser.

7. Performance Testing:
This will ensure your site works under all loads. Testing activities will include but not limited to -
Website application response times at different connection speeds
Load test your web application to determine its behaviour under normal and peak loads
Stress tests your web site to determine its break point when pushed to beyond normal loads at peak time. Eg: Excessive volumes in terms of either users or data.
Test if a crash occurs due to peak load, how the site recovers from such an event.


8. Security testing:
Security testing is vital for Website that store sensitive customer information.It is more important for the E-commerce site. Testing Activities will include-
It includes Authenticates & Authorisation, confidentiality, integretiy, Avaliablity.
Test unauthorized access to secure pages should not be permitted
Restricted files should not be downloadable without appropriate access
Check sessions are automatically killed after prolonged user inactivity
On use of SSL certificates, website should re-direct to encrypted SSL pages.


Wednesday, March 14, 2012

Why Testing is important.....




Testing is about verifying that what was specified; what was delivered. In simple word software testing is activity to check whether the actual results match the expected result. It is very important to understand that testing is also continuous process .Testing does not stand alone it is intimately dependant activity but it is separate process activity .Testing is the activity which can reduce the defects.

Testing is also begun from the starting phase of the SW Life cycle from the requirements. Traditionally testing is take place at end of the s/w life cycle (Waterfall model), Testing should take place through out software life cycle. If you want to cut down cost of the bug find bug as early as possible. Testing is like repeated activity testing never completed in one pass it has to be give more passes or you can more iteration. Because as you do so you generate more confident for that product.

We say best software which tested by thousands of users under various different condition. Then we can say it is good to go or “stable” but this does not mean that software is bugfree.it’s mean that bugs are well-identified and well understood.
Software bugs can potentially cause monetary or even loss of life. It can be expensive or even dangerous.

Tuesday, March 13, 2012

What is Junit?


Junit: It is subset of the java or derived of the java, with predefined and specific information that something called as annotation (@) those build together called as Junit framework...Junit is develop for the developer where they can test their own java code effectively
Junit is used for unit testing by developers. Junit basically is a testing framework.
When combined with selenium, it roves out to be very powerful in implementing selenium test cases and building a framework.
Junit selenium combination can be used to build any type of framework- keyword driven, data driven etc. When the scripts are run with the help of ANT, we also get HTML reports for test cases.

Junit comes inbuilt with eclipse.
Go to project properties, click on java build path and select the libraries tab.
Click on button on the left - 'Add Library' and add the junit 4 library into your project.
Junit 4 is the latest version of junit and has got various annotations supported in it.
The junit 4 annotations make our work very easy while writing the selenium scripts.

Selenium Links -where you download the software


Selenium Links
Selenium Jar
Selenium-Server: (http://seleniumhq.org/download)
Selenium-Java-Client-Driver: (http://seleniumhq.org/download)


Eclipse:
(It is platform where we can store the java code, write, and execute it)
Link from where you install Eclipse: http://www.eclipse.org/downloads/

Eclipse Installation & Project Creation


What is Eclipse?
·         It is platform where we can store the java code, write, and execute it.
·         It is data access tools, webapp testing tool.
·         It is free and wholly extendable.

Prerequisites:
·         Install Java from following link: www.java.com  OR http://www.oracle.com/technetwork/java/javase/downloads/index.html
·         Web Browser:  Download the Current version of the Firefox.  Form Following link: http://www.mozilla.org/en-US/firefox/new/
·         It’s good if have more than 2 GB RAM

Download the Eclipse from the Following link:
·         http://www.eclipse.org/downloads/    
·         From this link download Eclipse IDE for Java EE Developers.

Eclipse IDE Installation instruction:
·         Copy the Zip folder of Eclipse from download folder and Paste & save it where you want to unzip the Eclipse.
·         Unzip the Eclipse Folder.
·         After Unzip the Eclipse Folder you will see Eclipse Icon so, just double click on that Icon.
·         Double Clicking on Icon It launches the Eclipse IDE Where you can do your activity (Like writing, executing code etc...)
·         By Double clicking on the Eclipse it will ask for the workspace. (Workspace is where Eclipse stores your projects in a folder that folder called a workspace. Choose a workspace folder to use for that particular session)
·         Click on the Ok Button It Launches the Eclipse IDE
·         You Can create the Shortcut for Eclipse Simply Right Clicking on the Eclipse Icon >>Click on Create shortcut.
How to Create Project in Eclipse:
·         After Launching the Eclipse Click on  the File menu
·         Select New >> Java Project (Note: Java Project if not appear on the top then it will be present in the option   so that time select the option)
        
         
           
      Clicking on the Java Project the new screen appear Give the Project name and Click on the Finish button .

       

       
       



What is XPath & more about the XPath Add-Ons


What is Xpath?
The Xpath is unique address for each and every element on the page.
It is use for finding the position of the element.
It is make for the every element
Selenium looks at highlighted element something which is to be unique (Eg: Name or id which is unique)
a. Attribute: (Name, size, value etc…)
b. First  thing is need to be finding out unique id and name for that element …if not found then create own attribute like (XPath is this second level identification) Xpath is identification, what is path for that element …. But if tomorrow the application gets changes then the address that is "XPath" also change so write the XPath such way so it can be useful even if application also get change.
c. How to write the XPath :
d. XPath is the custom base  on the certain element “attributes” and their respective “ values”
e. XPath Format:------  //html tag[@attribute name=’attribute value’]
f. Eg: //input [@type=’button’]
g. XPath can be specify with multiple attribute
h. If the Xpath is starting from the html gives the// before  the XPath

You can find more good examples of XPath Syntax at W3C Schools

Using Firebug you can find out the XPath for the element.
There is  one good add-on for to finding the XPath that is “XPath Checker”  .it is interactive Editor for XPath expression.It’s  give minimal XPath Expression to work




Selenium IDE Introduction


 Selenium IDE
Its user interface for generating automation test quickly.
IDE can learn scetamaticly and perform them repeated step quickly that record and play.
Selenium IDE is browser base application as long as it is web base. It is come only with Firefox.
It exports tests in different languages. The most appealing
format is the html test case.
This greatly simplifies the acceptance testing. Selenium tests should be considered as complimentary testing to unit tests.
IDE can use for the Parameterised data.
In selenium ide the script executed in the JavaScript
It has debug and set breakpoints.
It can also export Remote control or Web Driver scripts.


How to install Selenium IDE?


1. Go to Google
2. Type selenium download
3. Visit selenium HQ link
4. Click on the selenium IDE latest version
It is add-on of the Firefox.
It is present in the tool menu of the Firefox.
By default it is come with recording mode.
In Selenium IDE generated three column the command, target, and value
Command it is nothing but “what part wish to perform”?
Target it is “where to open” nothing but it's give the location of the element. The base URL followed by main URL (Element given the target)
Value “what do you want to type”
While recording selenium IDE store all the command in user interface
You can record multiple Test Cases
Maximum time to load the page in IDE is 30sec.30 sec is max time otherwise it is throwing the error
How to do Debugging?
Select the command from where want to do debugging by clicking right click toggle/breakpoint option


Difference between Assert and Verify:

Assert: It is allow the test to check if the element is present on the page or not if not then test will stop on the failed step.
Verify:It is allow the test to check if the element is present on the page or not if not then test will carry on.


Selenium Command:

waitFor: waitFor command timeout after 30sec by default.It's use to wait for item/element that you need to work and interact with it.It is require a page load from a web server.There are so many waitFor command is available
storedVars- It is use to store element that are on the page to be used later
 Format1-${value}
Format2-javascript{storedVars[‘value’]} (Note: if do not want to write the javascript then use the command
echo- it is use for the print.

Related Document :
What is XPath?


Monday, March 12, 2012

How to configure ANT in System?


1. Download ANT-(apache ant version bin)
2. Unzip the file
4. Go inside in ANT
5. Copy the full path(The Path where the ANT file is seated)
//Setup the Environment variable
6. Go to my computer
7. Go to properties
8. Go to Advance tab
9. Click on the Environment variable
10. System variable add new variable>>Click on the NEW button
Give variable name: ANT_HOME
Give the variable Path: Which you copied where the ANT present
11. Then go down select the Path
12. Click on the Edit.. it don’t do any changes in the middle or start that path, give the; and then copied the ANT Path..... write \bin at the end
13. Go to the cmd prompt
14. Give the command ANT

Selenium Components and step for the download


1. What is selenium?
Selenium is test automation tool and it is extremely in demand, rapidly growing with world-wide and it is open source tool. It is cross browser testing and it is use any programing and functional automation so on .It is web base tool. It is cross browser .It’s support all programming language.
It is the independent of the language which the website is made

2. What are the Components of Selenium?

- Selenium IDE: Installs as an add-on in Mozilla. Only runs in Mozilla. It’s got a strong feature of record and run. It is primarily record & run tool. You can also extend IDE functionality with the help of user extensions. It supports regular extensions, loops, if statements and many other features. You can also parameterize your test cases using IDE. Click here to view 4 hours of Selenium IDE video tutorial. Drawback: it is only work in the Mozilla.
- Selenium RC: This is the older version of selenium. It works on all multiple browsers. RC can be implemented in any one of the programming languages.
- Web driver: Web driver is the new version of selenium. It also works on multiple browsers. It’s removed many drawbacks and issues in Selenium RC. It also supports Android and IPhone Testing.
- Grid: Grid is used to run test cases parallel on multiple machines and browsers. For the takes the test excitation takes lesser time.

3. Download the Selenium IDE
1. Go to Google
2. Type selenium
3. Visit selenium HQ link
4. Click on the selenium IDE latest version
How to install the firebug?
1. getfirbug.com
(NOTE: This is the add-on for the firefox)


4. Download the Selenium web driver?
1. Go to Google
2. Type selenium
3. Visit selenium HQ link
4. Download the Java client version.
5. Unzip the zip file.
6. Go to eclipse
7. Go to the project>>Right click on the project>>java build path>>click on the library tab>>click on the add external jar file >>select the jar file where it is located>>click on the finish button


5. Download the Selenium RC
1. Download the selenium rc from the Google.
2. Unzip the zip file.
3. Go to eclipse
4. Go to the project>>Right click on the project>>java build path>>click on the library tab>>click on the add external jar file >>select the jar file where it is located>>click on the finish button


(Note: Download the all installation file from my blog-: Selenium Links )

Related  Document:
Selenium Overview


Thursday, March 8, 2012

What is "ANT"?


It is open source tool.
Ant can be used to generate the html report and it is run in your same project it can be run it through cmd prompt but sometime you want to run the project in UNIX server... that time ANT specially  use
It is use for the build in the cmd prompt or in shell environment.
It is implemented in JAVA..It's compile the source code,run unit test.
Ant build file written in the XML.

Download the ANT latest Version from following link:

How to make build.xml file?


1. Right click on the project
2. Go to the new>>file gives the filename as build.xml

Eg:
<project name="MyProject" default="usage" basedir=".">
<description>
     creating the simple build xml file
</description>
<!-- Set global property for this build file -->
<property name="src" value="${basedir}"/>
  <property name="jar" value="C:/Selenium/Jar file"/>
  <property name="build" value="build"/>
<!---Creating the Init Target>
<target name="init" >
<!--create timestamp--->
<tstamp/>
<!--create the build directory-->
<mkdir dir="${"build"}"/>
</target>
<!---Creating the Compile Target>
<target name="compile" depends="init" >
<!--compile the java source code from src to build dir--->
<javac srcdir="${"src"}" destdir="${"build"}"/>
</target>

<!---Creating the Dist Target>
<target name="dist" depends="compile" >
<mkdir dir="${"dist"}/lib"/>
<!---Put everything in ${build} into the myproject >
<jar jarfile="${"dist"}/lib/${ant.project.name}-${DSTAMP.jar}" basedir="${C:/project}"/>
</target>
<!---Creating the Clean Target>
<target name="clean" >
<delete dir="${"build"}"/>
<delete dir="${"dist"}"/>
</target>
</project>



  

ANT Terminology


Lets First understand ANT Terminology:
1.<Project> : 
   It is top level element in the ANT Script
   It is has three optional attributes:
   a.name b.default c.basedir
   a.name:  need to define the name of the project
   b.default: default target use when no other target to supplied
   c.basedir: It is where all path calculation are done
2.Target:
   It is set of the task which you want to be executed.
   Each project can be define zero or more target.Target can be depend on the another target.
   Project can be have zero or more targets. when no target is given the project use the default target.
   When the starting the ANT you can choose whichever target you want to be executed. 
   The main Targets are:
   1.Clean:  Clean up
   2.Compile: Compile the source code
   3.Dist: Generate the distribution
 3.Task: 
    It is piece of the code which can be executed.It has multiple attributes.
    There are so many task written for ANT.
    ANT Task:
    1.File Task:  File task are copy,concat,mkdir,delete,get,replace,move,tempfile etc.
    2.Compile Task: Compile task are javac,apt,rmic
    3.Archive Task: Archive task are zip-unzip,jar-unjar,war-unwar 
    4.Testing Task:  Teasting Task are junit,junitreport
    5.Property Task: Property task are dirname,loadfile,propertyfile,uptodate
    6.There are some other task are there like echo,javadoc,sql 
4.Properties:
   It has a name and a value,it's case sensitive.
   The property name specify between the "${"property-name"}" and attribute value too.
   

Wednesday, March 7, 2012

What is Junit Framework?


Junit framework:
It is controlling entity of the selenium. Suppose in the selenium got 5 scripts are running, eg. Report get generated, set of excel file, set of the test cases. etc..Then there has to be controlling entity who manage the all activity, that controlling entity called as Junit framework

How to do Unit Testing with Junit?





Run your test via Eclipse
Right click on your Junit Test Case select Run-As → JUnit Test.
The result of the tests will be displayed in the JUnit View. 

Selenium Overview

Untitled 2

  1. Selenium is automation testing tool which work only on the browser it is works across all the browsers and multi operating system.
  2. Selenium is independent of the languages. It has various components like web drivers, RC.
  3. It is extremely in demand, rapidly growing with world-wide and it is open source tool.
  4. It’s easy use of UI.
  Components of selenium :
  Selenium IDE
  Selenium RC

  Selenium Grid



 Related Document:
 Selenium Links
 Selenium Components



Tuesday, March 6, 2012

Software Testing Types


Software Testing Types:
 White box testing –
This testing is based on knowledge of the internal logic of an application’s code.
 Internal software and code working should be known for this type of testing. Tests are based on coverage of code statements, branches, paths, conditions.
Testing conducted on the source code by developers to check does the source code is working as expected or not is called white box testing.
Also known as Glass box Testing & Structural Testing.
Unit testing and integration testing are known as white box testing.

Unit testing –
Testing of individual software components or modules.
 Typically done by the programmer and not by testers, as it requires detailed knowledge of the internal program design and code. May require developing test driver modules or test harnesses.
A smallest separable portion in the source code of the application is called unit. (Functions, procedures, etc.)
It is also called module testing or component testing.

Integration testing –
Testing of integrated modules to verify combined functionality after integration. Modules are typically code modules, individual applications, client and server applications on a network, etc. This type of testing is especially relevant to client/server and distributed systems.
Once all units are tested the programmers will integrate all units and check interactions among the units which are called integration testing.
There is two way approach to do Integration Testing: a.Top-Down b.Bottom-Up

Incremental integration testing –
Bottom up approach for testing i.e. continuous testing of an application as new functionality is added
 Application functionality and modules should be independent enough to test separately.
Done by programmers or by testers.

Black box testing –
Internal system design is not considered in this type of testing. Tests are based on requirements and functionality.
Testing is conducted on the application by test engineers or by domain experts to check whether the application is working according to customer requirements.
Black Box Testing is combination of System Testing, User Accepting Testing which is called as requirement Based Testing (or) Specification Based Testing.
It is also called as behavioural Testing.
Black box testing is conducted by test engineers with end-user perception.


System testing –
Entire system is tested as per the requirements.
It is Black-box type testing that is based on overall requirements specifications, covers all combined parts of a system.
It is classified into two types: Functional System Testing & Non Functional System Testing.

Functional testing –
This type of testing ignores the internal parts and focus on the output is as per requirement or not.
Testing the application against business requirements.
Functional testing is done using the functional specifications provided by the client or by using the design specifications 
There are different types of the functional Testing:
Unit Testing
Smoke testing / Sanity testing
Integration Testing (Top Down, Bottom up Testing)
Interface & Usability Testing
System Testing
Regression Testing
Pre User Acceptance Testing(Alpha & Beta)
User Acceptance Testing
White Box & Black Box Testing
Globalization & Localization Testing

Sanity testing –
Testing to determine if a new software version is performing well enough to accept it for a major testing effort.
If application is crashing for initial use then system is not stable enough for further testing and build or application is assigned to fix.
Sanity testing is usually narrow and deep.
It is also called Tester Acceptance Testing.

Smoke Testing
Smoke testing is conducted to ensure whether the most crucial functions of a program are working, but not bothering with finer details.
A Smoke test is designed to touch every part of the application in a cursory way.
It’s shallow and wide.

Regression testing –
Testing the application as a whole for the modification in any module or functionality.
Difficult to cover all the system in regression testing so typically automation tools are used for these testing types.
It is process of identifying various features in the modified build where there is a chance of getting affected and retesting these features.
The new functionalities added to the existing system or modifications made to the existing system or the bug fixes may introduce side-effects. Regression testing is helpful to identify these side effects.

Positive Testing (+ve)-
Testing conducted on the application in a positive approach to determine what system supposed to do is called positive testing.
Positive testing is helpful to check whether the customer requirements are justifying by the application or not.

Negative Testing (-ve)-
Testing a software application with a negative perception to check what system not supposed to do is called negative testing.
Negative testing is helpful to find defects from the software.

Non-Functional Testing
Testing the application against client's and performance requirement.
 Non-Functioning testing is done based on the requirements and test scenarios defined by the client.
There are different types of the Non-Functional Testing.
Load and Performance Testing
Ergonomics Testing
Stress & Volume Testing
Compatibility & Migration Testing
Data Conversion Testing
Operational Readiness Testing
Installation Testing
Security Testing

Stress testing –
System is stressed beyond its specifications to check how and when it fails. Performed under heavy load like putting large number beyond storage capacity, complex database queries, continuous input to system or database load.

Performance testing –
Term often used interchangeably with ‘stress’ and ‘load’ testing. To check whether system meets performance requirements. Used different performance and load tools to do this.

Load testing –
It’s a performance testing to check system behaviour under load.
Testing an application under heavy loads, such as testing of a web site under a range of loads to determine at what point the system’s response time degrades or fails.

 Install/uninstall testing –
Tested for full, partial, or upgrade install/uninstall processes on different operating systems under different hardware, software environment.

Recovery testing –
Testing how well a system recovers from crashes, hardware failures, or other catastrophic problems.

 Security testing –
Can system be penetrated by any hacking way. Testing how well the system protects against unauthorized internal or external access. Checked if system, database is safe from external attacks.

 Usability Testing-
Checking how easily the end user is able to understand and operate the application

 Globalization Testing-
Checking if the application having a provision of setting and changing languages date and time format and currency etc. If it is designed for global users

 Localization Testing-
Checking default languages currency date and time format etc. If it is designed for a particular locality

 Compatibility testing 
Testing how well software performs in a particular hardware/software/operating system/network environment and different combination s of above.

 Comparison testing 
Comparison of product strengths and weaknesses with previous versions or other similar products.

 Alpha testing –
In house virtual user environment can be created for this type of testing. Testing is done at the end of development. Still minor design changes may be made as a result of such testing.

 Beta testing 
Testing typically done by end-users or others. Final testing before releasing application for commercial purpose.

 End-to-end testing 
Similar to system testing, involves testing of a complete application environment.

 Formal Testing-
If you tested software application by following all preplan procedures and proper documentation then it is called formal testing.

Adhoc Testing-
If you test software without following any procedures and documentation then it is called adhoc-testing. It is also called informal testing.

 Risk Based Testing (or) Priority Based Testing-
Identifying the critical functionality in the system and testing it first.

 Re- Testing:
Testing functionality again or testing functionality repetitively is called re-testing.
Testing functionality with multiple inputs to confirm if the business validations are implemented or not.
Testing functionality on the modified build to confirm the bug fixers are made correctly or not.

 Exploratory Testing-
Exploring the application and testing the functionalities.

 Monkey Testing-
 Testing conducted on an application unevenly or zig zag way with an intension of finding tricky defects is called monkey testing.

 Mutation Testing
It is often used to discover the best coding techniques to use for expanding a software solution.

 Penetration Testing
In this testing, the tester/developer has full information of the application’s source code, detailed network information, IP addresses involved and all server information the application runs on.  The aim is to attack the code from several angles to expose security threats.

Ramp Testing
Type of testing consisting in raising an input signal continuously until the system breaks down.
It may be conducted by the testing team or the performance engineer.

Fuzz Testing –
Software testing technique that provides invalid, unexpected, or random data to the inputs of a program - a special area of mutation testing.
Fuzz testing is performed by testing teams.

Requirement Testing
In this validate that the requirements are correct, complete, unambiguous and logically consistent and allows designing a necessary and sufficient set of test cases from those requirements.


Friday, March 2, 2012

SDLC and STLC

SDLC: Software Development Life Cycle



STLC: Software Testing Life Cycle