Categories
Dev's Corner

QA (Quality Assurance) là gì? Quy trình, phương pháp QA

Trước khi tìm hiểu Quality Assurance, chúng ta hãy hiểu:

Quality là gì?

Quality là điều cực kỳ khó xác định và nó chỉ được nói đơn giản: “Phù hợp với mục đích sử dụng hoặc mục đích”.

Tất cả là nhằm đáp ứng nhu cầu và mong đợi của khách hàng về chức năng, thiết kế, độ tin cậy, độ bền và giá cả của sản phẩm.

Assurance là gì?

Assurance không có gì khác hơn 1 tuyên bố tích cực về một sản phẩm hoặc dịch vụ, nhằm mang lại sự tự tin. Đó là sự chắc chắn về một sản phẩm hoặc dịch vụ, rằng nó sẽ hoạt động tốt.

Nó cung cấp sự đảm bảo rằng sản phẩm sẽ hoạt động mà không có bất kỳ sự cố nào.

QA - Đảm bảo chất lượng
QA – Đảm bảo chất lượng. Ảnh: callcentrehelper.com

Dừng lại chút nào, nếu bạn đang #open_to_work, thử nghía qua các công việc đang tuyển trên Gamba nhé. Vào LINK NÀY để xem các job Data hoặc scan QR Code ở bên dưới nhé.

Xem và ứng tuyển các 'QA' job
Xem và ứng tuyển các ‘QA’ job

Quality Assurance trong Software Testing (Kiểm thử phần mềm)

Quality Assurance (QA) được định nghĩa là một thủ tục để đảm bảo chất lượng của các sản phẩm hoặc dịch vụ phần mềm do một tổ chức cung cấp cho khách hàng.

QA tập trung vào việc cải tiến quá trình phát triển phần mềm và làm cho nó hiệu suất và hiệu quả theo các tiêu chuẩn chất lượng được xác định cho các sản phẩm phần mềm.

Quality Assurance cũng thường được gọi là QA Testing.

Quy trình Quality Assurance

Phương pháp Quality Assurance có một chu trình xác định được gọi là chu trình PDCA hoặc chu trình Deming. Các giai đoạn của chu trình này là:

  • Plan
  • Do
  • Check
  • Act
Quy trình Quality Assurance PDCA
Quy trình Quality Assurance PDCA

Các bước trên được lặp lại để đảm bảo rằng các quy trình trong tổ chức được đánh giá và cải tiến một cách định kỳ.

Hãy xem xét chi tiết các bước của Quy trình QA ở trên:

  • Plan – Tổ chức lập kế hoạch và thiết lập các mục tiêu liên quan đến quy trình và xác định các quy trình cần thiết để cung cấp sản phẩm cuối Chất lượng cao.
  • Do – Phát triển và kiểm tra các Quy trình và cả những thay đổi về mặt thực hiện trong các quy trình
  • Check – Giám sát các quy trình, sửa đổi quy trình và kiểm tra xem nó có đáp ứng các mục tiêu đã xác định trước hay không
  • Act – Quality Assurance tester thực hiện các hành động cần thiết để cải tiến quy trình

Một tổ chức phải sử dụng Quality Assurance để đảm bảo rằng sản phẩm được thiết kế và thực hiện với các quy trình chính xác. Điều này giúp giảm các vấn đề và lỗi trong sản phẩm cuối cùng.

Quality Control (Kiểm soát chất lượng) là gì?

Quality Control là gì?
Quality Control là gì? Ảnh: investopedia.com

Kiểm soát chất lượng thường được viết tắt là QC. Đây là một quy trình Kỹ thuật phần mềm được sử dụng để đảm bảo chất lượng trong một sản phẩm hoặc một dịch vụ.

Nó không liên quan đến các quy trình được sử dụng để tạo ra một sản phẩm mà thay vào đó, nó kiểm tra chất lượng của “sản phẩm cuối cùng” và kết quả cuối cùng.

Mục đích chính của QC là kiểm tra xem sản phẩm có đáp ứng các thông số kỹ thuật và yêu cầu của khách hàng hay không.

Nếu một vấn đề hoặc sự cố được xác định, nó cần được khắc phục trước khi giao cho khách hàng.

QC cũng đánh giá mọi người dựa trên bộ kỹ năng của họ và truyền đạt các khóa đào tạo và chứng chỉ.

Đánh giá này là bắt buộc đối với tổ chức dựa trên dịch vụ và giúp cung cấp dịch vụ “hoàn hảo” cho khách hàng.

Sự khác biệt giữa Quality Control và Quality Assurance?

Đôi khi, QC bị nhầm lẫn với QA.

  • Quality Control là kiểm tra sản phẩm hoặc dịch vụ và kiểm tra kết quả.
  • Quality Assurance là kiểm tra các quy trình và thực hiện các thay đổi đối với các quy trình dẫn đến sản phẩm cuối cùng.
Quality Control vs. Quality Assurance
Quality Control vs. Quality Assurance

Ví dụ về các hoạt động QC và QA như sau:

Hoạt động Quality ControlHoạt động Quality Assurance
Kiểm tra toàn bộ (walkthrough)Kiểm tra chất lượng
Kiểm thửĐịnh nghĩa quy trình
Phát hiện lỗiNhận diện và lựa chọn công cụ
Kiểm tra checkpointĐào tạo về Quy trình và Tiêu chuẩn Chất lượng

Các hoạt động trên liên quan đến các cơ chế Kiểm soát và Đảm bảo Chất lượng cho bất kỳ sản phẩm nào chứ không phải về cơ bản là phần mềm. Còn đối với phần mềm:

  • QA trở thành SQA (Đảm bảo chất lượng phần mềm)
  • QC trở thành Software Testing (Kiểm thử phần mềm)

Khác biệt giữa SQA và Software testing

Bảng sau giải thích về sự khác biệt giữa SQA và Kiểm thử phần mềm:

SQAKiểm thử phần mềm
SQA là về quy trình kỹ thuật đảm bảo chất lượngKiểm thử phần mềm là kiểm tra một sản phẩm để tìm các vấn đề trước khi sản phẩm đi vào hoạt động
Bao gồm các hoạt động liên quan đến việc thực hiện các quy trình, thủ tục và tiêu chuẩn. Ví dụ – huấn luyện kiểm toánBao gồm các hoạt động liên quan đến xác minh sản phẩm. Ví dụ – thử nghiệm đánh giá
Tập trung vào quy trìnhTập trung vào sản phẩm
Kỹ thuật phòng ngừaKỹ thuật khắc phục
Biện pháp chủ độngBiện pháp phản ứng
Phạm vi của SQA được áp dụng cho tất cả các sản phẩm sẽ được tạo ra bởi tổ chứcPhạm vi của Kiểm thử phần mềm áp dụng cho một sản phẩm cụ thể đang được kiểm tra.

Thực hành tốt nhất trong Quality Assurance

  • Tạo môi trường kiểm thử mạnh mẽ
  • Lựa chọn tiêu chí phát hành sản phẩm một cách cẩn thận
  • Áp dụng kiểm thử tự động cho các khu vực có rủi ro cao để tiết kiệm tiền
  • Phân bổ thời gian thích hợp cho mỗi quy trình
  • Điều quan trọng là ưu tiên sửa lỗi dựa trên việc sử dụng phần mềm
  • Hình thành đội ngũ chuyên biệt để kiểm tra hiệu suất và bảo mật
  • Mô phỏng tài khoản khách hàng tương tự như môi trường sản xuất

Các chức năng Quality Assurance

Có 5 chức năng QA chính:

  1. Chuyển giao công nghệ: Chức năng này liên quan đến việc lấy tài liệu thiết kế sản phẩm cũng như dữ liệu thử và sai và đánh giá của nó. Các tài liệu được phân phối, kiểm tra và phê duyệt
  2. Đánh giá: Kế hoạch đánh giá tổng thể cho toàn hệ thống được chuẩn bị. Phê duyệt các tiêu chí kiểm tra để xác nhận sản phẩm và quy trình được thiết lập. Lập kế hoạch nguồn lực để thực hiện kế hoạch xác nhận được thực hiện.
  3. Tài liệu: Chức năng này kiểm soát việc phân phối và lưu trữ tài liệu. Bất kỳ thay đổi nào trong tài liệu đều được thực hiện bằng cách áp dụng quy trình kiểm soát thay đổi thích hợp. Phê duyệt tất cả các loại tài liệu.
  4. Đảm bảo chất lượng sản phẩm
  5. Kế hoạch cải tiến chất lượng

Chứng nhận Quality Assurance

Có một số chứng nhận trong ngành để đảm bảo rằng các Tổ chức tuân theo Quy trình Chất lượng Tiêu chuẩn.

Khách hàng coi đây là tiêu chí đủ điều kiện trong khi lựa chọn nhà cung cấp phần mềm.

ISO 9000

Tiêu chuẩn này được thiết lập lần đầu tiên vào năm 1987, và liên quan đến Hệ thống quản lý chất lượng. Điều này giúp tổ chức đảm bảo chất lượng cho khách hàng của họ và các bên liên quan khác.

Một tổ chức muốn được chứng nhận ISO 9000 được đánh giá dựa trên các chức năng, sản phẩm, dịch vụ và quy trình của họ.

Mục tiêu chính là xem xét và xác minh xem tổ chức có đang tuân theo quy trình như mong đợi hay không và kiểm tra xem liệu các quy trình hiện có có cần cải tiến hay không.

Chứng nhận này giúp:

  • Tăng lợi nhuận của tổ chức
  • Cải thiện thương mại trong nước và quốc tế
  • Giảm lãng phí và tăng năng suất nhân viên
  • Mang lại sự hài lòng cho khách hàng

Cấp độ CMMI

Capability Maturity Model Integrated (CMMI) là một phương pháp cải tiến quy trình được phát triển đặc biệt để cải tiến quy trình phần mềm.

Nó dựa trên khuôn khổ hoàn thiện quy trình và được sử dụng như một biện pháp hỗ trợ chung cho các quy trình kinh doanh trong ngành phần mềm.

Mô hình này được đánh giá cao và sử dụng rộng rãi trong các Tổ chức phát triển phần mềm.

CMMI có 5 cấp độ. Một tổ chức được chứng nhận CMMI cấp độ 1 đến 5 dựa trên sự hoàn thiện của Cơ chế đảm bảo chất lượng của họ.

  • Mức độ 1 – Ban đầu: Trong giai đoạn này môi trường chất lượng không ổn định. Đơn giản, không có quy trình nào được tuân theo hoặc ghi lại
  • Cấp độ 2 – Lặp lại: Một số quy trình được tuân theo có thể lặp lại. Cấp độ này đảm bảo các quy trình được tuân thủ ở cấp độ dự án.
  • Cấp độ 3 – Đã xác định: Tập hợp các quy trình được xác định và lập thành văn bản ở cấp độ tổ chức. Các quy trình đã xác định đó có thể được cải thiện ở một mức độ nào đó.
  • Cấp độ 4 – Được quản lý: Cấp độ này sử dụng các thước đo quy trình và kiểm soát hiệu quả các quy trình được tuân theo.
  • Cấp độ 5 – Tối ưu hóa: Cấp độ này tập trung vào những cải tiến liên tục của các quy trình thông qua học tập và đổi mới.

Mô hình Test Maturity (TMM)

Mô hình này đánh giá sự trưởng thành của các quy trình trong Môi trường thử nghiệm. Mô hình này cũng có 5 cấp độ, được định nghĩa dưới đây:

  • Cấp độ 1 – Ban đầu: Không có tiêu chuẩn chất lượng nào được tuân theo cho các quy trình thử nghiệm và chỉ các phương pháp đặc biệt mới được sử dụng ở cấp độ này
  • Mức độ 2 – Định nghĩa: Quá trình xác định. Chuẩn bị chiến lược kiểm thử, kế hoạch, trường hợp kiểm thử được thực hiện.
  • Cấp độ 3 – Tích hợp: Kiểm thử được thực hiện trong suốt vòng đời phát triển phần mềm (SDLC) – không gì khác ngoài việc tích hợp với các hoạt động phát triển, ví dụ: V- Model.
  • Cấp độ 4 – Quản lý và Đo lường: Việc xem xét các yêu cầu và thiết kế diễn ra ở cấp độ này và các tiêu chí đã được thiết lập cho từng cấp độ kiểm tra
  • Cấp độ 5 – Tối ưu hóa: Nhiều kỹ thuật phòng ngừa được sử dụng cho các quy trình kiểm thử và công cụ hỗ trợ (Tự động hóa) được sử dụng để cải thiện các tiêu chuẩn và quy trình kiểm thử.

Tóm lại

Quality Assurance là kiểm tra xem sản phẩm được phát triển có phù hợp để sử dụng hay không.

Vì vậy, tổ chức cần phải tuân theo các quy trình và tiêu chuẩn cần được cải tiến định kỳ. Nó tập trung chủ yếu vào chất lượng sản phẩm / dịch vụ mà chúng ta cung cấp cho khách hàng trong hoặc sau khi triển khai phần mềm.

Tham khảo: guru99.com

Categories
Dev's Corner

4 Khóa học Automation Testing miễn phí hàng đầu về Selenium và Cucumber

Kiểm thử là một phần không thể thiếu trong quá trình phát triển phần mềm. Chúng ta từ lâu luôn dựa vào kiểm thử thủ công được thực hiện bởi các tester và QA chuyên nghiệp để tìm lỗi và mang đến phần mềm chất lượng.

Song, hiện nay, kiểm thử tự động (automation testing) ngày càng được chú trọng bởi tính bền vững của nó. Trong đó, Selenium WebDriver của Selenium đang là một trong những xu thế hàng đầu.

Bạn đã biết nhiều về Selenium chưa
Bạn đã biết nhiều về Selenium chưa? Ảnh: Christopher Gower – Unsplash

Selenium là một công cụ kiểm thử tự động miễn phí cho các ứng dụng web. Nó có thể hoạt động với các trình duyệt web khác nhau như Chrome, Firefox, Internet Explorer, Opera và mô phỏng hành vi giống con người.

Sử dụng Selenium, bạn có thể tương tác với tất cả các phần tử khác nhau trên trang web: nhấp vào, nhập hay trích xuất văn bản, v.v.

Selenium cũng hoàn toàn khác với các công cụ kiểm thử tự động khác như QTP, Win Runner, Load Runner, v.v., vì nó cho phép bạn ghi lại và phát lại cho mục đích kiểm thử tự động.

Selenium cung cấp một API cho phép tự động hóa mọi thứ trên một trang web. Bạn có thể kiểm tra xem một phần tử có tồn tại hay không hoặc một phần tử có giá trị gì.

Selenium cũng cho phép kiểm thử bất kỳ loại trang web nào được viết bằng ngôn ngữ gì như PHP, Perl, Python, Java, C#, v.v.

Nó hỗ trợ nhiều trình duyệt như Chrome, Firefox, Internet Explorer, Safari và Opera. Điều này có nghĩa là bạn có thể tự động kiểm thử ứng dụng của mình trên nhiều trình duyệt.

Ngoài ra, bạn có thể sử dụng Selenium cho các bài kiểm thử tự động trên nhiều ngôn ngữ như Java, C #, Perl, Python, v.v., nhưng 90% các công ty sử dụng Selenium với Java.

Vậy nên, nếu đang là manual tester và muốn học thêm Selenium để kiểm thử tự động, bạn nên học về Java.

Còn chờ gì nữa, hãy cùng Gambaru khám phá các khóa học tuyệt vời và hoàn toàn miễn phí sau cho mục đích trên!

Các khóa học Automation Testing (Selenium, Cucumber)

1. Selenium với C# và Java Titbits

Đây là một khóa học miễn phí về Selenium, giải thích một số khái niệm về Selenium trong Java và C# với các ví dụ ngắn.

Hầu hết các chủ đề đều bắt nguồn từ các câu hỏi trên Stack Overflow nhưng tựu chung, các kiến thức đều có giá trị và quan trọng nhất là nó miễn phí.

Nó sẽ giúp bạn hiểu những gì đang diễn ra khi dùng Selenium và các chi tiết cơ bản phải biết trước khi thực hiện các dự án lớn hơn sử dụng Selenium (ví dụ như framework development).

Bạn sẽ học cách làm việc với các trình duyệt khác nhau với Selenium Java web driver, cách tìm và làm việc với control, sử dụng explicit wait và implicit wait, chụp màn hình bằng Selenium và kiểm tra xem control có tồn tại với Selenium hay không.

Một khóa học thực hành hiệu quả về Selenium dùng Java và C#
Một khóa học thực hành hiệu quả về Selenium dùng Java và C#! Ảnh: freepik

Bạn cũng sẽ học cách kéo và thả, cách di và nhấp chuột bằng Selenium và làm việc với popup windowXPath.

Khóa học cũng giải thích cách cấu hình Selenium grid và thiết lập thực thi song song (parallel execution) bằng Java.

Lưu ý, các bài học tập trung vào Java nhiều hơn là C#.

2. Cucumber với Selenium Java (Cơ bản)

Đây là một khóa học Selenium miễn phí khác trên Udemy của cùng tác giả Karthik KK, người đã tạo ra khóa học phía trên, nó cung cấp những giải thích tường tận hơn về Cucumber và Phát triển theo hướng hành vi (Behavior-driven Development – BDD) cùng với Selenium.

Khóa học được chia thành hai phần.

  • Trong phần đầu tiên, bạn sẽ học các bài vỡ lòng về Cucumber và Behavior-driven Development.
  • Phần thứ hai tập trung vào Selenium với Cucumber, cách code đơn giản cho Selenium với Cucumber và cách tương tác với Page Object Model. Bạn cũng sẽ học cách chạy Selenium với Cucumber thông qua Maven và thực hiện kiểm thử với Cucumber thông qua TestNG. Khóa học cũng dạy báo cáo bằng Cucumber cho Selenium.
Đăng ký nếu bạn muốn một khóa học hiệu quả về Cucumber và Selenium trong thời gian ngắn
Đăng ký nếu bạn muốn một khóa học hiệu quả về Cucumber và Selenium trong thời gian ngắn. Ảnh: Pexels

3. Selenium WebDriver với C# cho người mới bắt đầu + Live Testing Site

Khóa học Selenium miễn phí này tập trung vào demo trực tiếp và thực hành
Khóa học Selenium miễn phí này tập trung vào demo trực tiếp và thực hành. Ảnh: Unsplash

Đây là một trải nghiệm học tập thú vị dành cho manual tester và QA chưa có kinh nghiệm về Selenium.

Trong khóa học này, bạn sẽ học Kiểm thử chức năng và giao diện đồ họa người dùng và cách làm việc với các selector của Selenium, ví dụ: Name selector, ID Selector, Class Name selector, CSS Path selector, và XPath selector.

Tiếp theo, bạn sẽ học cách làm việc với một số phần tử HTML phổ biến như Input text box, Checkbox, Radio button, Dropdown menu, và JavaScript Alert box.

Ngoài ra, khóa học còn cung cấp một vài bài giảng lý thuyết về việc khi nào bạn nên sử dụng selector nào, cách kiểm tra các phần tử, Automation Testing Framework là gì và tại sao chúng ta cần tạo nó.

4. Cucumber, Selenium & Java – Tạo một Framework trong 2,5 giờ!

Bạn có phải là automation tester muốn đưa thêm kinh nghiệm về BDD hoặc Cucumber vào hồ sơ xin việc của mình? Nếu vậy, đây là khóa học không thể nào phù hợp hơn.

Bạn sẽ học Cucumber BDD từ cấp độ mới bắt đầu đến cấp độ tương đương nâng cao, sử dụng Selenium WebDriver và Java.

Bạn cũng có thể học cách phát triển các Cucumber framework nhỏ và mạnh cho BDD.

Khóa học cũng sẽ dạy về Gherkin, Maven, Eclipse và các công cụ liên quan khác để bạn làm việc hiệu quả hơn với Selenium và Cucumber và trở thành một kỹ sư QA về kiểm thử tự động thành công.

Thành công với Automation Testing
Chúc bạn ngày một thành công với Automation Testing! Nguồn ảnh: freepik

Theo javinpaul