JQL là viết tắt của Jira Query Language – ngôn ngữ truy vấn trong Jira.
Giống như trong toán học, các hàm trong Jira đã được đơn giản hóa về mặt logic, khiến cho chúng trở nên dễ dàng truy cập và sử dụng. Sau đây là cách mà chúng hoạt động trong JQL.
Bạn sẽ học được cách tạo ra những truy vấn hiệu quả trong Jira software để có cái nhìn rõ ràng hơn về project, team và công việc.
Để bắt đầu, bạn nên có sẵn một số kiến thức cơ bản về các truy vấn JQL cũng như đã sử dụng các từ khóa “AND” và “OR”.
Chức năng: JQL dùng để làm gì?
Giống như trong math class, các hàm sẽ đơn giản hóa các logic phức tạp và giúp bạn dễ dàng truy cập cũng như sử dụng một cách đơn giản.
Ví dụ: Jira hỗ trợ một hàm có tên là membersof () để xem tất cả các issue được giao cho các thành viên của một nhóm. Các nhóm được định nghĩa bên trong Jira hoặc đến từ các nhóm hiện có trong directory server trước đây của công ty bạn.
project = Pipeline AND assignee in membersof(‘test-engineering’)
Truy vấn này trả về tất cả các issue được giao cho các kỹ sư kiểm thử. Các hàm cũng phản ứng linh hoạt khi môi trường thay đổi. Nếu thêm nhiều người dùng hơn vào nhóm kiểm thử, truy vấn này sẽ tự động cập nhật.
Hãy xem cách chúng ta có thể xem những issue nào đã được khắc phục trong bản phát hành gần đây nhất.
project = Pipeline AND status in (resolved, closed) and fixversion = “Sprint A”
Thao tác này sẽ trả về tất cả các issue đã được khắc phục trong bản phát hành đó. Điều gì sẽ xảy ra nếu chúng ta muốn một danh sách luôn hiển thị các issue đã được khắc phục trong bản phát hành cuối cùng bất cứ khi nào nó được chạy? Điều đó rất dễ thực hiện với truy vấn sau.
status in (resolved, closed) and fixVersion = latestReleasedVersion(Pipeline)
Sự khác biệt ở đây là gì? Cuối cùng, nhóm sẽ phát hành sprint B, C và D. Truy vấn đầu tiên chỉ trả về danh sách các issue được giải quyết trong Sprint A. Truy vấn thứ hai truy vấn Jira để tìm phiên bản được phát hành cuối cùng cho project Pipeline. Do đó, khi sprint B, C và D được phát hành, truy vấn này sẽ trả về dữ liệu tương ứng.
Kiểm tra quá trình kiểm thử
Bạn cũng có thể sử dụng JQL để xem công việc đã được thực hiện như thế nào theo thời gian. Ví dụ: nếu bạn muốn xem các bug mà John Smith đã giải quyết trong project Pipeline, bạn có thể sử dụng truy vấn sau:
project = Pipeline AND status CHANGED FROM “In Progress” TO “Resolved” BY jsmith
Đôi khi, các issue không xác minh được hoặc không được mở lại thường được quan tâm đặc biệt, chúng ta cần xem tại sao các thay đổi này không hoạt động như dự kiến. Bạn có thể dễ dàng tìm những bug đó bằng việc chạy truy vấn sau:
status CHANGED FROM “In Progress” TO “Open”
Để xem những issue nào đang được tiến hành trong tuần này, chúng ta có thể sử dụng JQL sau:
status was (“In Progress”) DURING (startofweek(), endofweek());
Vào cuối năm, bạn có thể xem tổng số lượng issue đã được giải quyết trong năm đó. Để làm như vậy, câu lệnh JQL sẽ là:
resolution changed to “Fixed” by currentUser()
during (startOfYear(), endOfYear())
Bí Quyết: Xác định phạm vi và phân loại
Thông thường, khi bạn bắt đầu tìm kiếm các Jira issue, bạn có thể bị trả về RẤT NHIỀU thông tin. Xác định phạm vi và sắp xếp các truy vấn sẽ giúp bạn dễ dàng xem được chính xác thông tin mà bạn cần.
- Phạm vi (Scoping) – tập trung truy vấn của bạn để truy vấn lấy lượng dữ liệu phù hợp để người dùng chỉ nhìn thấy thông tin liên quan đến item hiện tại
- Sắp xếp (Sorting) – sắp xếp dữ liệu của bạn sao cho tập dữ liệu quan trọng nhất được liệt kê đầu tiên
Xác định phạm vi
Bắt đầu với các open issue:
project = Pipeline AND status = open
Bạn có thể thấy rằng truy vấn trả về quá nhiều issue (gần như mọi thứ từ backlog cũng như các issue đang được giải quyết. Bạn có thể thu hẹp nó một chút bằng cách loại bỏ phần issue trong backlog.
project = Pipeline AND status = open AND fixVersion = “Current Sprint”
Kết quả này đã tốt hơn một chút, nhưng bạn hoàn toàn có thể thu hẹp nó nhiều hơn nữa. Hãy xem điều gì chưa thực hiện được trong sprint trước và được chuyển sang sprint này.
project = Pipeline AND status = open AND fixVersion = “Current Sprint”
AND fixVersion WAS “Last Sprint”
Bây giờ bạn có những issue mà bạn thực sự quan tâm ở phía trước, thật dễ dàng để xem xét từng issue này với mức độ tập trung cao độ và xem lý do tại sao chúng chưa được giải quyết trong sprint trước. Đó có phải là một vấn đề trong việc ước tính, các yêu cầu hay điều gì khác không? Các issue đã có trong truy vấn đầu tiên, nhưng chúng quá khó để tìm theo cách thủ công. Tạo truy vấn tốt là một quá trình lặp đi lặp lại: truy vấn, xem xét, xem liệu bạn có thể tập trung kết quả hay không. Bạn càng làm nhiều, nó càng trở nên dễ dàng hơn.
Sắp xếp
Giả sử bạn muốn xem tất cả các bug mở ra cho nhóm trong một sprint cụ thể:
project = Pipeline AND fixVersion = “Current Sprint” AND status = open
Bạn đang cố gắng thu thập điều gì từ dữ liệu này? Nếu bạn đang cố gắng tìm hiểu rủi ro, bạn có thể xem danh sách được sắp xếp theo mức độ ưu tiên hoặc theo danh sách kỹ sư để bạn có thể dễ dàng xem liệu một kỹ sư có hai bug mức độ ưu tiên cao hay không. Câu lệnh JQL có một từ khóa “ORDER BY” cho Jira biết để sắp xếp kết quả. Truy vấn trên có thể được mở rộng để bao gồm sắp xếp:
project = Pipeline AND fixVersion = “Current Sprint” AND status = open ORDER BY priority, assignee
Jira trước tiên sẽ sắp xếp danh sách theo mức độ ưu tiên và sau đó sắp xếp theo người được giao cho tất cả các issue có cùng mức độ ưu tiên. Hãy xem một ví dụ khác kiểm tra các bug sắp xuất hiện trong project. Chúng tôi muốn xem bất kỳ critical bug hoặc blocking bug nào xuất hiện gần đây để xem liệu các lần kiểm thử gần đây có giảm độ ổn định hay không.
project = Pipeline AND priority in (blocker, critical) AND created > -2w ORDER BY created DESC
Truy vấn kiểm soát mức độ ưu tiên và giới hạn thời gian được tạo phạm vi chính xác cho truy vấn. Tính năng phân loại sẽ hiển thị cho chúng ta các issue gần đây nhất trước tiên. Sử dụng từ khóa DESC để sắp xếp ngược lại (mới nhất đến cũ nhất). Bằng cách đó, bạn sẽ tập trung người xem vào những issue quan trọng nhất trước tiên. Không phải ai cũng sẽ xem xét từng issue trong report. Luôn sắp xếp các truy vấn để các issue quan trọng nhất hiển thị đầu tiên.
Tổng kết
Tại thời điểm này, bạn sẽ cảm thấy khá ổn về việc truy vấn Jira để giải quyết các vấn đề với JQL. Chúng tôi đã đề cập đến cấu trúc cơ bản, chức năng, dữ liệu hiện tại, dữ liệu lịch sử, phân loại và xác định phạm vi. Nếu bạn có nhu cầu mua bản quyền Jira, Confluence, Bitbucket và muốn tư vấn và demo giải pháp trọn gói các phần mềm này, hãy liên hệ với BiPlus – đại diện chính thức của Atlassian tại Việt Nam:
Địa chỉ:
Tầng 3, Bảo Anh building, số 85, Trần Thái Tông, Cầu Giấy, Hà Nội
Email:
Điện thoại
+84 979438100