Tagged Under:

Quy tắc để cải thiện test Automation Code

Share

1 - Xác thực các trường hợp không đúng

- Đây là một điều cực kì quan trọng để bảo đảm test automation của bạn thật sự hoạt động đúng. Nói cách khác liệu test automation của bạn bắt được bug cũng như ngăn regression trong app khi được test (UAT) hay không? Liệu automated tests của bạn có xác thực được rằng app hoạt đúng theo yêu cầu?
Thật tiếc, những người mới làm test automation sẽ rất hiếm khi xác thực việc assertion có thật sự. Thậm chí tôi còn thấy nhiều developer kinh nghiệm viết ra code không bao giờ fail. Vì thế khi viết automated test, hãy bảo đảm các điều kiện fail thật sự gợi ra những hành vi đúng như bạn mong đợi.
Để áp dụng qui luật này, bạn chỉ cần thử cho vào một breakpoint trong code của bạn trên dòng assertion. Chạy code của bạn cho tới breakpoint đó. Hãy bắt fail diễn ra trong UAT và theo dõi dòng code chứa assertion đó. Nếu nó fail đúng thì automated test của bạn thật sự đã chạy tốt.

2 - Đừng tự lặp lại chính mình

- Ví dụ:

Mình viết automation testing cho trường hợp Sign-in
describe("Login"function() {
it("should login successfully "function() { 
const user = {
      email"Nhutdeptrai1",
      password"1236"
    }
   cy.visit("https://abc.net/Login.aspx");
      cy.get("#UserName").type(user.email);
      cy.get("#Password").type(user.password);
      cy.get("input#Submit1").click();
      cy.url().should("include""#");

   })
})
describe("Login"function() {
it("should login successfully "function() { 
const user = {
      email"Nhutdeptrai2",
      password"1231236"
    }
   cy.visit("https://abc.net/Login.aspx");
      cy.get("#UserName").type(user.email);
      cy.get("#Password").type(user.password);
      cy.get("input#Submit1").click();
      cy.url().should("include""#");

   })
})

Và đây là cách để mình cải thiện:

describe("Login"function() {
  [
    {
      email"Nhutdeptrai1",
      password"1236"
    },
    {
      email"Nhutdeptrai2",
      password"1231236"
    }
  ].forEach(user => {
    it("should login successfully ", () => {
      cy.visit("https://abc.net/Login.aspx");
      cy.get("#UserName").type(user.email);
      cy.get("#Password").type(user.password);
      cy.get("input#Submit1").click();
      cy.url().should("include""#");
    });
  });
});

==> Có rất nhiều cách để bảo đảm là không lặp lại code của mình, đây chỉ là ví dụ đơn giản để làm gọn code mà thôi!

3 - Hãy giữ cho các functions luôn gọn nhẹ

- Nghe có vẻ không hợp lí với test automation code, nhưng đây là một quy tắc rất quan trọng. Khi bạn tạo ra những function nhỏ, ta sẽ đạt được nhiều điều khác nhau. 
- Đầu tiên, functions sẽ dễ đặt tên hơn cũng như dễ hiểu hơn và nó sẽ hiệu quả hơn.
- Việc viết function không dài quá 10 dòng sẽ cho phép code bạn dễ đọc hơn. Đặt tên cho method cũng tiện lợi bởi nó chỉ làm đúng một chức năng thôi. Và khi bạn thử nhìn vào bên trong thì sẽ không có bất cứ thứ gì “ngoài ý muốn”, mọi thứ đều hoàn hảo đúng theo ý bạn.


4 - Chỉ viết code theo yêu cầu hiện tại

-----------------------------------------------------------------------
Nếu mọi người có ví dụ hay hơn xin để lại comment nhé! Thanks

0 Comments:

Đăng nhận xét

Ý kiến của bạn là điều tuyệt vời nhất

Cho xin ý kiến nhé!

Tên Email * Thông báo *

Our Location