1. Java
    1. Starting with Java language and OOP concept
      1. Overview abount Java
        1. http://www.tutorialspoint.com/java/index.htm
        2. http://android.vn/threads/mien-phi-khoa-hoc-lap-trinh-java.25642/
      2. Installing
        1. \\192.168.176.122\apps\Developer\Development\Eclipse
        2. c:\Program Files\java\jdk directory:
        3. Right-click on 'My Computer' and select 'Properties'.
        4. Click on the 'Environment variables' button under the 'Advanced' tab.
        5. 'C:\WINDOWS\SYSTEM32', then change your path to read 'C:\WINDOWS\SYSTEM32;c:\Program Files\java\jdk\bin
      3. Basic Syntax
        1. convention
          1. ClassName.java
          2. ClassName
          3. class MyFirstClass
          4. methodName
          5. public void myMethodName()
          6. Start a program in public static void main(String args[])
      4. Objects and Classes
      5. Contructor
      6. Variable Types
      7. Basic Operators
      8. Java Strings
        1. Khởi tạo
          1. String str1 = new String(); str1 = "Chuỗi";
          2. String str1 = new String ("Chuối");
          3. String str1 = "Chuoi";
      9. Java Array
      10. Java methods
      11. Create a simple project
      12. How to create a package
      13. How to create a class
      14. How to implement an object
      15. Exception concept
    2. Practice
      1. Create a java project for calculating 2 integer variables
      2. Create a package, named: pack
      3. Create a class that provide 4 methods: minus, plus, multi, divide. 2 parameters will be passed from contructor of class. With each method, it will pass parameters and calculate result, then print out console
      4. Create a package, named: test
      5. Create a main class to test.
    3. From Me
      1. Overvỉew
        1. Java is
          1. Object Oriented
        2. Class
          1. class
          2. interface
          3. abstract class
      2. Constructor
        1. Hàm khởi tạo các thuộc tính
  2. Selenium
    1. Plan
      1. Selenium overview
        1. Introduction
          1. Hướng dẫn bằng Tiếng Việt
          2. http://www.tutorialspoint.com/selenium/selenium_webdriver.htm
          3. http://www.guru99.com/selenium-tutorial.html
        2. Ghi lại hành động trên web và thưc thi kịch bản
        3. Working With Selenium IDE
          1. Installing
          2. Firefox
          3. www.seleniumhq.org/download/
          4. cài Add on Selenum IDE
          5. Chọn đúng ver Firefox và Selenium
          6. Selenium IDE Basics
          7. Recording a Test
          8. https://www.youtube.com/watch?v=PpeQB0T89uY&list=PLpTCO0Fa9GR16Y11kfMynOl80YHVrkSrS&index=3
          9. Create Scenario
          10. open URL
          11. Record the steps
          12. verify result
          13. Perform on Browser
          14. Running the Test
          15. Run on Selenium IDE of browser
          16. verifyTest Message
          17. Selenese
          18. Looking at Commands
          19. waitForElement
          20. Chờ element hiển thị
          21. deleteAllVariableCookie
          22. Xóa biến cookie (sản phẩm giỏ hàng)
          23. Creating Commands
          24. insert comment for steps
          25. Điền tạm vào field sau đó sưa mục values
          26. Diểm đừng add breakpoint
          27. Pause breakpoint at each scenario
          28. Set Start Point
          29. chạy thẳng từ point đc set
          30. step
          31. chạy từng step
          32. Actions - directly interacts with page elements
          33. action
          34. click
          35. action+AndWait
          36. acction dùng khi page đc tải lại từ server
          37. waitFor...
          38. dùng khi biến đổi về giao diện với Javascipt
          39. ListBox ComboBox và CheckBox
          40. select
          41. multiple select
          42. addSelection
          43. removếlection
          44. checkbox
          45. click
          46. action check <=> uncheck
          47. check
          48. always check
          49. verifyCheck
          50. Subtopic 1
          51. uncheck
          52. always uncheck
          53. verifyNotCheck
          54. Accessors - "reads" an element property and stores it in a variable
          55. khai báo biến
          56. store
          57. echo - kiểm tra kết quả trả ra ntn
          58. target =${biến}
          59. target
          60. giá trị
          61. values
          62. x
          63. storeText
          64. khai baó text nằm giữa 2 thẻ html
          65. //p
          66. //div
          67. storeValue
          68. khai báo giá trị của thẻ có thuộc tính Value
          69. //input
          70. storeAttribute
          71. khai báo cho các thuộc tính trong thẻ HTML
          72. //div@align
          73. //input@value
          74. ~ storeValue
          75. Assertions - compares an actual value with an expected one
          76. Verifications
          77. target =${biến}
          78. verifyText
          79. dùng cho đối tượng có chứa Text
          80. verifyValue
          81. dùng cho thuộc tính value của thẻ HTML đối tươngj chứa Values
          82. verifyAttribute
          83. dùng cho các thuộc tính của thẻ HTML
          84. verifyElementPresent
          85. kiểm tra xem tồn tại trong source code hay không
          86. verifyVisible
          87. check element ẩn hiện khi expand
          88. addon screenshot on failed
          89. Using Assert and Verify
          90. verifyTest Message
          91. verify failed thì vẫn tiếp tục những cái dưới
          92. dùng để kiểm tra nhưng thứ ko ảnh hưởng đến bước theo
          93. asset gặp failed dừng lại luôn
          94. output liên quan đến logic cho những bước dưới
          95. Creating Test Suites
          96. Creat test case
          97. save as testsuit
          98. save as html
          99. Exporting
          100. File/Export Testcase As...
          101. Summary
        4. Practice
          1. Practice with Selenium IDE
          2. http://newtours.demoaut.com/
          3. Go to url
          4. Verify the title of page
          5. Verify the element present
          6. Verify link texts are correct
          7. Verify text is correct
          8. Input user name
          9. Input password
          10. Click to sign in
          11. Verify the title of page appeared
          12. Assert the sign-on link present
          13. Review the exercise of trainee
          14. SE_Prac01.html
      2. Working with Selenium WebDriver
        1. Introduction
          1. http://www.vntesters.com/gioi-thieu-selenium-webdriver/
        2. What is WebDriver?
          1. WebDriver is a web automation framework that allows you to execute your tests against different browsers,
          2. cho phép chúng ta sử dụng các ngôn ngữ lập trình để thiết kế test case.
          3. Java
          4. .Net
          5. PHP
          6. Python
          7. Perl
          8. Ruby
          9. ưu điểm
          10. FASTER than Selenium RC because of its simpler architecture.
          11. làm việc ở mức OS
          12. DIRECT talks to the browser while Selenium RC needs RC Server
          13. API is CONCISE than Selenium RC's
          14. xác định đôi tượng trc rồi mới đến hành động
          15. Support HtmlUnit
          16. nhanh vì không lòa element
          17. Limitations
          18. Cannot readily support new browsers, but Selenium RC can.
          19. No a built-in command for automatic generation of test results.
        3. Setting up Java, Eclipse, Junit
          1. Eclipse
          2. Setting up WebDriver
          3. Install Java
          4. Install Eclipse IDE
          5. Download the Selenium Java Client Driver
          6. Project_Properties/Java Build Path_Libraries/Add External JARs_Add JAR files in/out the "libs" folder
        4. Other Browsers
          1. Each other browser has its own driver server
        5. A Simple Script
          1. Importing Packages
          2. import org.openqa.selenium.WebDriver;
          3. import org.openqa.selenium.firefox.FirefoxDriver;
          4. Instantiation of objects/variables
          5. WebDriver driver = new FirefoxDriver();
          6. String baseUrl = "http://newtours.demoaut.com";
          7. String expectedTitle = "Welcome: Mercury Tours";
          8. String actualTitle = "";
          9. launch Firefox and direct it to the Base URL
          10. driver.get(baseUrl);
          11. get the actual value of the title
          12. actualTitle = driver.getTitle();
          13. compare the actual title of the page witht the expected one and print * the result as "Passed" or "Failed"
          14. if (actualTitle.contentEquals(expectedTitle)){
          15. System.out.println("Test Passed!");
          16. } else {
          17. System.out.println("Test Failed");
          18. }
          19. close Firefox
          20. driver.close();
          21. exit the program explicitly
          22. System.exit(0);
        6. common command
          1. Get Commands
          2. get()
          3. getTitle()
          4. getPageSource()
          5. getCurrentUrl()
          6. getText()
          7. Navigate commands
          8. navigate().to()
          9. navigate().refresh()
          10. navigate().back()
          11. navigate().forward()
          12. Closing and Quitting Browser Windows
          13. close()
          14. quit()
          15. Switching Between Frames
          16. switchTo().frame("classFrame")
        7. Finding Elements
          1. Web Element Identification Techniques
          2. Locate Web Elements
          3. By
          4. ID
          5. ID attribute of a HTML Tag
          6. Target: id=id_of_the_element
          7. driver.findElement(By.id(<element ID>))
          8. Name
          9. ID attribute of a HTML Tag
          10. Target: name=name_of_the_element
          11. value=value_of_filter
          12. driver.findElement(By.name(<element name>))
          13. Link Text
          14. Target: link=link_text
          15. ex: link=ABOUT
          16. driver.findElement(By.linkText(<linktext>))
          17. driver.findElement(By.partialLinkText(<linktext>))
          18. CSS Selector
          19. Tag and ID
          20. css=tag#id
          21. css=input#email
          22. Tag & Class
          23. css=tag.class
          24. css=div.wrapper
          25. only first element in source code is recognized
          26. Tag & Attribute
          27. css=tag[attribute=value]
          28. css=input[name=lastName]
          29. only first element in source code is recognized
          30. Tag, Class & Attribute
          31. css=tag.class[attribute=value]
          32. css=input.inputtext[tabindex=2]
          33. Inner Text
          34. css=tag:contains("inner_text")
          35. css=font:contains("Passwords:")
          36. inditify label on webpage
          37. driver.findElement(By.cssSelector(<css selector>))
          38. driver.findElement(By.tagName(<htmltagname>))
          39. driver.findElement(By.className(<element class>))
          40. XPath
          41. driver.findElement(By.xpath(<xpath>))
          42. Using Firebug or FirePAth
          43. //html/body/div/div[2]/div[2]/div[1]/form/div[1
          44. How To Locate Dynamic Elements By Xpath
          45. tìm vị trí tương đương
          46. xpath=//input[@id='f1_google']
          47. find a paragraph element
          48. xpath=//p[contains(text(),'aaaa']
          49. xpath=//p[starts-with(text(),'aaa')]
          50. xpath=//p[ends-with(text(),'aaa')]
          51. DOM (Document Object Model)
          52. getElementById
          53. Target: document.getElementById("id_of_the_elements")
          54. document.getElementById("input")
          55. getElementsByName
          56. Target: document.getElementByName("name")[index]
          57. document.getElementByName("servClass")[1]
          58. dom:name
          59. document.forms["name_of_the_form"].elements["name_of_the_element"]
          60. document.forms["home"].elements["userName"]
          61. dom:index
          62. document.forms[index_of_form].elements[index_of_element]
          63. Practice
          64. Practice with locating web elements
          65. Review the exercise of trainee
        8. Page Elements
        9. A More Complex Script
        10. Assert and Verify
        11. Waits
          1. Implicit wait
          2. Explicit Waits
          3. Import these two packages
          4. import org.openqa.selenium.support.ui.ExpectedConditions;
          5. import org.openqa.selenium.support.ui.WebDriverWait;
          6. Declare a WebDriverWait variable
          7. myWaitVar.until(ExpectedConditions.visibilityOfElementLocated(By.id("username")));
          8. driver.findElement(By.id("username")).sendKeys("tutorial");
        12. How to work with Excel file (reading and writing)
          1. reading form file
          2. import POI
          3. create workbook
          4. create sheet
          5. cell
          6. write to file
        13. Practice
          1. Practice with Selenium WebDriver
          2. Write a test script
          3. Write a script using reading/writing from Excel file
          4. Review the exercise of trainee
      3. Hybrid framework (basic)
        1. Introduction
        2. Setting up Civica framework
        3. How to create a test case
        4. Run the test suite
        5. Reporting
        6. Practice with Hybrid framework (basic)
        7. Review the exercise of trainee
      4. Hybrid framework (Advanced)
        1. How to create new keyword
        2. How to run with multibrowser
        3. Practice with Hybrid framework (advanced)
        4. Review the exercise of trainee
    2. Practice
      1. Go to url: http://newtours.demoaut.com/
      2. Verify the title of page
      3. Verify the element present