---
# System prepended metadata

title: Some rules for automation test

---


1. Element locator name should be: **${name-type}: ${add-employee-button}**
    
2. Action file:
    - Action will call to locator and define single action based-on locator
    - In action file, each keyword should do only one action(except special case)
3. Keyword:
    - Keyword name should have a meaning
    - Combining multiple actions to a keyword(Keyword will not call to locator directly. It just call to action file only)
4. Testcase:
    - Combining multiple keywords to create a testcase(Testcase will not call to action or locator directly. It just call to keyword file only)
    - Test case should follow Gherkin format:
        - Given
        - When
        - Then
5. Core:
    - If the function/keyword will be used many times/modules. We should define it as a common keyword in core folder
    - If you want to update keyword in core. Please check be careful before do it(Maybe your change will impact to multiple testcases)
6. Push/Pull code:
    - In every day morning: please help me from main before you starting write code
    - If you have many testcase/keyword/api/function,... Please separate them to 2 or 3 or 4 commits. Do not put all of them into one commit
7. Gitlab Merge Request(MR):
    - Branch name should be clean: It should describe what is your task/module
    - Title should be clean. It should describe overview what did you do
    - If you have multiple commits in MR(do not recommend). You should add decribe what are you doing
    - If MR include 2 more commits. Those commits should define for 1 task. For example: You are working on login module. Your MR should include login testcase/api/keyword/function/locator relate to login only
    - 5 testcase is maximum in each MR. You do not push a lot of testcase in each MR. It's difficult to review