Sơ lược về API testing
Chúng ta đang sống trong một thời đại trí tuệ tuyệt vời, nơi sự tiến bộ chuyển động với tốc độ chóng mặt. Chúng ta được kết nối với thế giới và tất cả mọi thứ. API (Application Programming Interface) là anh hùng không được biết đến trong thế giới kết nối đó. Dưới đây là những điều bạn cần biết về ...
Chúng ta đang sống trong một thời đại trí tuệ tuyệt vời, nơi sự tiến bộ chuyển động với tốc độ chóng mặt. Chúng ta được kết nối với thế giới và tất cả mọi thứ. API (Application Programming Interface) là anh hùng không được biết đến trong thế giới kết nối đó. Dưới đây là những điều bạn cần biết về API và kiểm thử API đóng một vai trò quan trọng như thế nào.
Các API được sử dụng để tích hợp các hệ thống với nhau. Bạn có thể tạo sẵn dữ liệu cho các hệ thống khác truy cập thông qua API hoặc chấp nhận dữ liệu từ các hệ thống khác. Đây là cách các thiết bị và ứng dụng khác nhau nói chuyện với nhau và chia sẻ thông tin.
Các công ty thành công như Facebook, YouTube và Twitter sử dụng API để ứng dụng của họ có thể giao tiếp với các chương trình của bên thứ ba. Thông thường, API hoạt động tương tự như cách hoạt động của bất kỳ trang web nào. Yêu cầu (request) được gửi từ client tới server và kết quả phản hồi (response) thông qua giao thức http.
Ví dụ như người phục vụ trong một nhà hàng. Người phục vụ nhận yêu cầu - request (đơn đặt hàng) từ khách hàng (client) và chuyển nó đến nhà bếp (là server) và nhận thức ăn (phản hồi - response) từ bếp cho khách hàng. API thực hiện chính xác những điều đó. Một API là một sứ giả đưa ra yêu cầu của bạn và nói với các hệ thống những gì cần làm và sau đó trả về phản hồi cho bạn.
API testing là một loại kiểm thử phần mềm liên quan đến việc kiểm thử các giao diện lập trình ứng dụng (APIs) một cách trực tiếp và là một phần của kiểm thử tích hợp để xác định xem hệ thống có đáp ứng các yêu cầu về tính năng, độ tin cậy, hiệu suất và bảo mật. Vì các API không có GUI nên kiểm thử API được thực hiện ở tầng nghiệp vụ (bussiness layer) . Trong quá trình kiểm thử API, dữ liệu được trao đổi từ XML hoặc JSON thông qua các yêu cầu và phản hồi HTTP ( HTTP requests and responses). Đây là những công nghệ độc lập và sẽ làm việc với nhiều ngôn ngữ lập trình và công nghệ khác nhau.
1. Kiểm thử ứng dụng sớm và không cần giao diện người dùng
Khi bạn tìm thấy lỗi càng muộn thì càng mất nhiều thời gian, công sức để fix nó. API testing đưa người kiểm thử tham gia sớm vào vòng đời phát triển sản phẩm. Với API testing, bạn có thể bắt đầu kiểm thử ứng dụng sớm ngay cả khi không có giao diện người dùng. Điều này giúp xác định và khắc phục sớm các vấn đề trong vòng đời phát triển, nếu không thì sẽ tốn kém để khắc phục khi được xác định trong quá trình kiểm thử GUI. Ưu điểm của việc kiểm thử API là rất nhiều logic có thể được kiểm tra mà không bị phụ thuộc vào UI.
2. Để có được một chiến lược kiểm thử tự động tuyệt vời và giảm chi phí.
Nếu chúng ta hiểu được "Kim tự tháp Tự động hoá" ( Automation pyramid), chúng ta có thể đưa ra một chiến lược tự động hóa hiệu quả.
Khái niệm kim tự tháp được Mike Cohn phát triển và đã được mô tả trong cuốn sách "Thành công với Agile". Tầng thứ nhất của kim tự tháp là Unit test. Thực hiện unit test là cách nhanh nhất và mang lại kết quả cao nhất. Tầng thứ 2 là kiểm thử API dựa trên service layer. Cuối cùng, ở đỉnh của kim tự tháp là kiểm thử UI.
Đi từ tầng dưới kim tự tháp lên trên, chi phí liên quan đến việc tạo ra và duy trì các phương pháp kiểm thử, thời gian thực hiện kiểm thử, phạm vi kiểm thử sẽ tăng lên. Các kim tự tháp tự động (Automation pyramid) nói rằng bạn nên làm nhiều hơn nữa kiểm thử tự động thông qua Unit test và API hơn là kiểm thử dựa trên GUI. Sự thành công của Agile rất phụ thuộc vào phản hồi (feedback) sớm. Trong các thực tiễn, việc tích hợp liên tục, thời gian kiểm thử hồi quy GUI và nhận lại phản hồi quá dài. Kiểm tra giao diện người dùng rất tốn kém để phát triển và duy trì. Một sự thay đổi nhỏ trong giao diện người dùng cũng có thể dẫn đến việc thực hiện kiểm thử lại rất nhiều.
Trong một số trường hợp, người kiểm thử bắt buộc phải thực hiện tự động hoá ở tầng UI. Tuy nhiên, kiểm thử có thể chậm và tốn nhiều chih phí. Đây là một trong những lý do khiến nhiều công ty thất bại trong nỗ lực thực hiện chiến lược tự động hoá hiệu quả.
3. Phát triển phần mềm theo phương pháp Agile và giảm việc thực hiện kiểm thử hồi quy bằng tay
Theo một cuộc khảo sát gần đây của VersionOne, 95% người được hỏi cho biết tổ chức của họ sử dụng phương pháp Agile. Agile không chỉ sử dụng ở những công ty startup và những nhóm phát triển sản phẩm nhỏ. Lý do chính để áp dụng Agile thay vì phương pháp truyền thống là đẩy nhanh việc phân phối sản phẩm và chấp nhận những thay đổi. Agile cũng đã tăng tần số mà các ứng dụng được phát hành, do đó đã tạo ra nhu cầu ngày càng tăng về những phương pháp mới để nhanh chóng kiểm tra chúng. Kiểm tra tự động hóa đã trở thành một yếu tố quan trọng để duy trì tính nhanh chóng. Vì vậy, cần thiết cho các đội Agile tăng mức độ kiểm thử API và giảm sự phụ thuộc của họ vào việc kiểm tra GUI.
Tự động hóa API có thể giảm đáng kể áp lực của kiểm thử hồi quy của nhóm QA. Bằng cách tích hợp kiểm thử tự động API , nhóm QA có thể cung cấp phản hồi nhanh về chất lượng ứng dụng ngay khi được triển khai (deploy). Điều này cung cấp một đánh giá nhanh chóng về hệ thống trước khi kiểm thử GUI. Kiểm thử tự động API yêu cầu code ít hơn và cung cấp kết quả kiểm tra nhanh hơn và phạm vi kiểm tra tốt hơn. API được ổn định sớm và không thay đổi thường xuyên như giao diện người dùng.
API testing là một hình thức thử nghiệm phần mềm độc đáo và đặc biệt có giá trị đối với các doanh nghiệp nắm bắt quá trình hội nhập liên tục. Việc xây dựng trường hợp kiểm thử API trong quá trình phát triển bất kỳ phần mềm hoặc dịch vụ nào có những lợi ích sâu rộng trong các đội, tất cả đều là cách khách hàng trải nghiệm sản phẩm. Làm phần mềm mà khách hàng mục tiêu của bạn sẽ yêu thích là điều thiết yếu cho sự thành công của doanh nghiệp và bằng cách kiểm thử API một cách nghiêm túc và thường xuyên, là một cách đáng tin cậy để đạt được nó.
Postman là một ứng dụng Google Chrome giúp bạn tạo, lưu, gửi yêu cầu HTTP (HTTP request) và kiểm tra dữ liệu phản hồi ( request) . Nó giúp tự động hoá quá trình tạo ra các yêu cầu API và kiểm tra các phản hồi API, cho phép thiết lập một quy trình làm việc rất hiệu quả. Hầu hết các lập trình viên và người kiểm thử đều quen thuộc với Postman. Tuy nhiên, nhiều người sử dụng nó chỉ để kiểm tra phản hồi cho các dịch vụ mà họ đang làm việc trên. Họ không biết về các tính năng mạnh mẽ mà Postman đưa ra như: Collections, Tests and Pre-request scripts. Bài viết này sẽ ra một cái nhìn tổng quát của Postman .
Lý do chính tôi thích Postman là vì khả năng tự động hóa mạnh mẽ của nó. Hơn nữa, việc học tập để sử dụng nó là rất dễ dàng và ứng dụng cung cấp một giao diện người dùng rất trực quan để kiểm tra yêu cầu máy chủ của bạn.Nó sẽ xác nhận hợp lệ mỗi lần nếu đáp ứng đúng. Viết test trên Postman được thực hiện dễ dàng bằng các đoạn mã JavaScript, cho phép cả những tester thiếu kinh nghiệm kiểm thử một cách hiệu quả.
Postman là hệ thống thời gian thực giúp lập trình viên và QA kiểm thử API dễ dàng hơn. Postman giúp làm giảm áp lực khi thực hiện kiểm thử hồi quy của nhóm QA. Việc tự động hoá kiểm thử API giúp tiết kiệm thời gian hơn là tự động hoá kiểm thử UI. Ưu điểm chính của tự động hóa API là chúng ta có thể truy cập vào ứng dụng mà không có giao diện người dùng. Điều này cung cấp một đánh giá ban đầu về tổng thể sức mạnh hệ thống trước khi bắt tay vào kiểm thử GUI.
Bằng cách tích hợp tự động hoá kiểm thử API, nhóm QA có thể cung cấp phản hồi nhanh về chất lượng của ứng dụng ngay khi được triển khai.
Bài viết được dịch lại từ nguồn: http://www.logigear.com/magazine/api-testing/everything-you-need-to-know-about-api-testing/