Tuesday 16 December 2014

White Box Test List

  • Availability Testing
  • Baseline testing
  • Compatibility testing
  • Compliance testing
  • Configuration Testing
  • Documentation testing
  • Endurance testing
  • Ergonomics Testing
  • Interoperability Testing
  • Installation Testing
  • Load testing
  • Localization testing and Internationalization testing
  • Maintainability Testing
  • Operational Readiness Testing
  • Performance testing
  • Recovery testing
  • Reliability Testing
  • Resilience testing
  • Security testing
  • Scalability testing
  • Stress testing
  • Usability testing
  • Volume testing

Sunday 14 December 2014

Cyclomatic Complexity

  • This metric was developed by Thomas J. McCabe in 1976 and it is based on a control flow representation of the program.  For the original paper here . Edges represent control flow between the nodes.




  •  One more thing on cyclomatic complexity. Occasionally, you might hear
    someone argue that the actual formula for McCabe’s cyclomatic complexity is
    C = E - N + P
    whereas we list it as
    C = E - N + 2P

    E = Edge
    N = Nodes

Wednesday 5 November 2014

PhantomJS Test






  • PhantomJS is a Headless Webkit with JavaScript API.
  • Created by Ariya Hidayat
  • PhantomJS is not a testing framework, used to launch tests
  • It has fast & native support for various Web Standards: DOM handling, CSS selector, JSON, canvas and SVG.  
  • GhostDriver is a Webdriver wire protocol in simple JS for PhantomJS.  
  •  PhantomJS is used for Headless Testing of Web Applications that comes with in-built GhostDriver, rendered web pages never displayed 
  • Can be used with different test frameworks Jasmin, Capayra , Robot Framework etc..
  • Ideal for CI systems , AmazonEC2,...
  • Very easy to install 

Installation:

Download from this link

Unzip zip file

Set path from Environment Variables

Write some code js code



From command line go to js file directory
                          
                                          




Monday 13 October 2014

Firefox User-agent

You can find your agent from www.useragentstring.com

firefox :



chrome :






Jenkins Different Port




Use the following command at command prompt:

java -jar jenkins.war --httpPort=9090
 
If you want to use https use the following command:

java -jar jenkins.war --httpsPort=9090

Tuesday 7 October 2014

Between Rest & SOAP

 
 
 
 
 
 
1) REST is more simple and easy to use than SOAP
2) REST uses HTTP protocol for producing or consuming web services while SOAP uses XML.
3) REST is lightweight as compared to SOAP and preferred choice in mobile devices and PDA's.
4) REST supports different format like text, JSON and XML while SOAP only support XML.
5) REST web services call can be cached to improve performance.

Wednesday 10 September 2014

Hamcrest ?

- Hamcrest is a set of matchers framework for writing matcher objects
- Hamcrest is integrated into JUnit
- Instead of using JUnit’s assertEquals methods, we use Hamcrest’s assert



The following list contains the most important Hamcrest matchers.
  • is - decorator to improve readability
  • allOf - matches if all matchers match (short circuits)
  • anyOf - matches if any matchers match (short circuits)
  • not - matches if the wrapped matcher doesn't match and vice versa
  • equalTo - test object equality using Object.equals
  • hasToString - test Object.toString
  • instanceOf, isCompatibleType - test type
  • notNullValue, nullValue - test for null
  • sameInstance - test object identity
  • hasEntry, hasKey, hasValue - test a map contains an entry, key or value
  • hasItem, hasItems - test a collection contains elements
  • hasItemInArray - test an array contains an element
  • closeTo - test floating point values are close to a given value
  • greaterThan, greaterThanOrEqualTo, lessThan, lessThanOrEqualTo - test ordering
  • equalToIgnoringCase - test string equality ignoring case
  • equalToIgnoringWhiteSpace - test string equality ignoring differences in runs of whitespace
  • containsString, endsWith, startsWith - test string matching
 
 The following assertions are all equivalent: 
 
assertThat(theBiscuit, equalTo(myBiscuit));
assertThat(theBiscuit, is(equalTo(myBiscuit)));
assertThat(theBiscuit, is(myBiscuit));
 
 
 
 

Tuesday 9 September 2014

Chrome Certificate Problem --ignore-certificate-errors

 DesiredCapabilities capabilities = DesiredCapabilities.chrome();  
                  capabilities.setCapability("chrome.switches", Arrays.asList("--incognito"));  
                  ChromeOptions options = new ChromeOptions();  
                  options.addArguments("--test-type");  
                  capabilities.setCapability("chrome.binary", "C://webdrivers//chromedriver//chromedriver.exe");  
                  capabilities.setCapability(ChromeOptions.CAPABILITY, options);  
                  driver = new ChromeDriver(capabilities);  


This code fix your problem

Have nice day

Friday 29 August 2014

JYTHON


  • Jython programs can import and use any Java class. 
  • Except for some standard modules, Jython programs use Java classes instead of Python modules. 
  •  Jython includes almost all of the modules in the standard Python programming language distribution, lacking only some of the modules implemented originally in C. 
  •  For example, a user interface in Jython could be written with Swing, AWT or SWT. Jython compiles to Java bytecode (intermediate language) either on demand or statically.
     Jython Architecture : 









Saturday 16 August 2014

TestNG Multi-Browser and Parallel Test Run

I ll give simple example about TestNG and parallel running

1- Create Java Project
2- Add TestNG library
3- Write your test class and annotations
4- Configure your TestNG.xml file


My simple test class below :
 package browserTestNG;  
 import org.openqa.selenium.WebDriver;  
 import org.openqa.selenium.firefox.FirefoxDriver;  
 import org.openqa.selenium.ie.InternetExplorerDriver;  
 import org.testng.annotations.AfterClass;  
 import org.testng.annotations.BeforeClass;  
 import org.testng.annotations.Parameters;  
 import org.testng.annotations.Test;  
 public class MultiBrowser {  
   public WebDriver driver;  
    @Parameters("browser")  
    @BeforeClass  
    // Passing Browser parameter from TestNG xml  
    public void beforeTest(String browser) {  
    // If the browser is Firefox, then do this  
    if(browser.equalsIgnoreCase("firefox")) {  
      driver = new FirefoxDriver();  
    // If browser is IE, then do this     
    }else if (browser.equalsIgnoreCase("ie")) {  
      // Here I am setting up the path for my IEDriver  
      System.setProperty("webdriver.ie.driver", "C://webdrivers/iedriver_64/IEDriverServer.exe");  
      driver = new InternetExplorerDriver();  
    }  
    // Doesn't the browser type, lauch the Website  
    driver.get("http://www.google.com.tr");  
    }  
    // Once Before method is completed, Test method will start  
    @Test public void login() throws InterruptedException {  
     }   
    @AfterClass public void afterTest() {  
       driver.quit();  
     }  
 }  

My testng.xml configuration file below :


















If you run this code you will see both Firefox and Internet Explorer parallel running







Friday 15 August 2014

Robot Framework Installation on Windows

Robot Framework Overview



-  Robot Framework (FR) a test automation framework developed in Python
-  Allow us to use keyword driven, data driven, behaviour driven
-  Provide report  of the test execution results in HTML format.
-  Provides support for Selenium for web testing, Database testing, Java GUI testing, ..
-  Allows user to create custom libraries.

Sample Report:




Installation Steps:
(my system is  x64)

    -  Download Java JRE
    -  Download Python here
    -  Download wxPython here
    -  Download python extension here





  -  Add Python scripts folder to Windows path,




  -  Download Robot Framework here
  -  Download RIDE (Robot Framework IDE)  here
  -  Download Selenium Library  here
  -  run "ride.py"









Saturday 2 August 2014

Appium Installation II

First of  I installed wmWare  and Mac OS X Maverics in my virtual machine for the installation here  

Need to install XCode from Apple Store

Need to install Appium for MacOS ( don t try to open it directly from image file ) from here

Install Java JDK

 from the appium website follow below commands, before start you need to check permissions (chmod)

 dont use sudo command when you install !

  
if eveything successful  you can appium 
  
  

Appium - I





  • You can use any language you like when you write testcases (because of jsonwire protocol)
  •  No need to change or modify appplication code which we test
  • Open source tool we can test mobile hybrid and native applications 
  • Appium is an HTTP server which is written in node.js


 

Tuesday 15 July 2014

Python - 1


What s dictionary ? 

  • It associates keys to values. 
  • Each key must have a value.
  •  Dictionary is mutable 

  • Each key seperated by (:)
  • The values of a dictionary can be of any type, but the keys must be of an immutable data type such as strings, numbers, or tuples

  • We can update , add, delete 




dict() -> new empty dictionary













Friday 11 July 2014

Selenium Webdriver IE Problem

 I was working on crossbrowser


Problem : 
The error displayed is I/O exception (java.net.SocketException) caught when processing request: Software caused connection abort: recv failed Jan 24, 2014 3:44:04 PM org.apache.http.impl.client.DefaultRequestDirector tryExecute INFO: Retrying request Exception in thread "main" org.openqa.selenium.NoSuchElementException

Solution : 


The problem was resolved when the security settings in IE was changed to "Enable Protected Mode" for "Internet", "Local Intranet", "Trusted Sites" and "Restricted Sites". You can change it by going to Internet Options security tab and enable check box "Enable Protected Mode" for all the zones.