Trang chủ » SOFTWARE TESTING LÀ GÌ? NHỮNG ĐIỀU BẠN CẦN BIẾT

SOFTWARE TESTING LÀ GÌ? NHỮNG ĐIỀU BẠN CẦN BIẾT

Đinh Thao 31 Th8, 2021

Nếu bạn là sinh viên mới ra trường, sinh viên đang theo đuổi ngành công nghệ thông tin và muốn đi theo con đường tester thì chắc chắn các bạn đang đặt ra trong đầu những câu hỏi mung lung như là: Software testing là gì? Tester sẽ phải làm những công việc gì,.. Hãy cùng chúng tôi tìm hiểu nhé!

Software testing là gì?

Software testing là gì

Software testing là gì

Kiểm thử phần mềm là quá trình thực thi 1 chương trình với mục đích tìm ra lỗi. Kiểm thử phần mềm đảm bảo sản phẩm phần mềm đáp ứng chính xác, đầy đủ và đúng theo yêu cầu của khách hàng, yêu cầu của sản phẩm đề đã đặt ra.

Vai trò của kiểm thử phần mềm: Kiểm thử phần mềm đóng vai trò quan trọng trong việc đánh giá và thu được chất lượng cao của sản phẩm phần mềm trong quá trình phát triển. Thông qua chu trình “ kiểm thử – tìm lỗi – sửa lỗi”, để sản phẩm mang lại độ hiệu quả cao nhất mà không còn lỗi.

Phân loại Software testing 

Phân loại Software testing 

Phân loại Software testing

Kiểm thử thủ công: Đó là tester sẽ làm mọi công việc hoàn toàn bằng tay, từ viết test case cho đến thực hiện test, mọi thao tác như nhập điều kiện đầu vào. Hay đó là việc quan sát kết quả thực tế, sau đó so sánh kết quả thực tế với các kết quả mong muốn trong test case, điền kết quả test hoàn toàn bằng thủ công không có một công cụ trợ giúp nào cả. 

Kiểm thử thủ công đòi hỏi bạn phải có vốn kiến thức về các định nghĩa, kỹ thuật test và tư duy tốt

Kiểm thử tự động: Kiểm thử phần mềm tự động là việc thực hiện kiểm thử phần mềm bằng một chương trình đặc biệt với rất ít hoặc sẽ không có sự tương tác của con người. công việc chính là viết code để thực hiện test tự động chủ yếu thời gian làm việc với code như một dev. 

Làm Auto thì không cần phải nắm chắc kiến thức về manual test mà cần chắc về các automation tool & frameworks cũng như làm việc trên nhiều ngôn ngữ lập trình như java, python, C++, PHP… tùy từng dự án.

Kiểm thử tự động hỗ trợ bạn thực hiện test nhanh chóng và thực hiện các ca test khó không thực hiện được bằng tay.

Kiểm thử bảo mật: Là kiểm thử phần mềm giúp đảm bảo hệ thống ứng dụng và các phần mềm được bảo vệ an toàn khỏi các mối đe dọa hay bất cứ mối nguy hiểm dẫn đến các tổn thất. Xác định các mối đe dọa đo lường các mối họa tiềm ẩn  để cho hệ thống không ngừng hoạt động hay bị khai thác ngoài ý muốn.

Các kỹ thuật sử dụng trong quá trình Software Testing

Kiểm thử hộp đen

Xem chương trình như 1 “hộp đen”.

Kiểm thử dựa trên đặc tả của phần mềm.

Không quan tâm cấu trúc bên trong của chương trình, tập trung tìm các trường hợp mà chương trình không thực hiện theo đặc tả của nó.

Kiểm thử hộp đen cố gắng tìm ra các lỗi trong các loại sau:

Các chức năng thiếu hoặc không đúng so với bản đặc tả

Các lỗi thi hành

Lỗi giao diện

Các lỗi cấu trúc dữ liệu trong việc truy cập cơ sở dữ liệu bên ngoài

Các lỗi khởi tạo hoặc kết thúc

Các lỗi khác.

Kiểm thử hộp trắng

Kiểm thử hộp trắng còn gọi là kiểm thử cấu trúc. Dựa vào thuật giải cụ thể, vào cấu trúc dữ liệu bên trong của đơn vị phần mềm cần kiểm thử để xác định đơn vị phần mềm đó có thực hiện đúng không

WBT đòi hỏi kỹ thuật lập trình am hiểu cấu trúc bên trong của phần mềm ( các logic nghiệp vụ, luồng dữ liệu, chức năng, kết quả ).

Phương thức: Chọn các đầu vào và xem các đầu ra.

Phụ thuộc vào các cài đặt hiện tại của hệ thống và của phần mềm, nếu có sự thay đổi thì bài test cũng phải thay đổi theo.

Được ứng dụng trong các kiểm tra ở cấp độ module ( điển hình), tích hợp ( có khả năng ) và hệ thống của quá trình test phần mềm.

kỹ thuật này chủ yếu được dùng để kiểm thử đơn vị, kiểm thử từng tác vụ của một lớp chức năng do nó phải tốn rất nhiều thời gian và công sức.

Kiểm thử hộp xám

Kiểm thử hộp xám là một phương pháp kiểm thử phần mềm được kết hợp giữa phương pháp kiểm thử Black Box và White Box. Trong kiểm thử hộp xám, cấu trúc bên trong sản phẩm chỉ được biết một phần. Tester có thể truy cập vào cấu trúc dữ liệu bên trong và thuật toán của chương trình với mục đích là để thiết kế các trường hợp kiểm thử, nhưng khi thực hiện kiểm thử thì test như người dùng cuối hoặc là ở mức hộp đen.

Unit Testing:

Kiểm thử trên các thành phần độc lập nhỏ nhất của phần mềm.

Thông thường, phần mềm được chia nhỏ ra các thành phần độc lập nhau: Function -> Class -> Module -> Package. Sau khi lập trình ra các thành phần, các lập trình viên tự viết chương trình unit testing để đảm bảo dữ liệu do mình tạo ra hoạt động bình thường.

Unit-testing thường được thực hiện bởi các developer làm trực tiếp hoặc các leader viết để kiểm thử source code của team phát triển. 

Integration Test: Kiểm thử tích hợp

Thực hiện test việc kết nối, ghép nối giữa các unit/module.

Phát hiện ra lỗi giao tiếp giữa các unit

Phát hiện lỗi giao tiếp giữa hệ thống và các hệ thống khác (DB, Queue, …)

Chuẩn bị cho System test

Giai đoạn này Developer phối hợp với bộ phận hạ tầng IT/devops để xây dựng các kết nối giữa các hệ thống (cron-job, queue/background job, database, api,…). Sau đó tester có thể bắt đầu các bài test về kết nối giữa các module. 

System Test – Kiểm thử hệ thống:

Kiểm thử thiết kế và toàn bộ hệ thống (sau khi tích hợp) có thỏa mãn yêu cầu đặt ra hay không.

System test bao gồm các loại kiểm thử: 

Kiểm thử chức năng (Functional Test)

Kiểm thử hiệu năng (Performance Test)

Kiểm thử khả năng chịu tải (Stress Test hay Load Test)

Kiểm thử cấu hình (Configuration Test)

Kiểm thử bảo mật (Security Test)

Kiểm thử khả năng phục hồi (Recovery Test)

 Acceptance Test – Kiểm thử chấp nhận sản phẩm:

Chứng minh phần mềm thỏa mãn tất cả yêu cầu của khách hàng và khách hàng chấp nhận sản phẩm.

Khách hàng có thể tự test hoặc thuê bên thứ ba thực hiện test.

Kiểm thử Alpha (Alpha Test) và kiểm thử Beta (Beta Test).

Kiểm thử Alpha: Được thực hiện trong nội bộ của ban phát triển phần mềm với các cộng tác viên là các tester, người dùng nội bộ hoặc các khách hàng được mời.

Kiểm thử Beta: Được thực hiện với số lượng các “tester” lớn hơn nhằm phát hiện các thay đổi hoặc lỗi trong quá trình đưa ra với người dùng.

Release Testing:

Release testing được thực hiện sau khi triển khai phần mềm lên hệ thống thật.

Các bộ phận liên quan sẽ chuẩn bị tập dữ liệu để kiểm thử trên hệ thống production. Đây là giai đoạn quan trọng, quyết định sản phẩm sẽ đưa ra để khách hàng sử dụng hay hoãn lại (nếu có thể) hoặc rollback lại version trước đó.

Quy trình SOFTWARE TESTING

Lập kế hoạch

Xác định yêu cầu kiểm thử.

Xác định các chiến lược kiểm thử: Xác định phương thức, loại kiểm thử cần thực hiện và tiêu chí đầu ra.

Xác định nguồn nhân lực và môi trường thực hiện kiểm thử.

Lập thời gian cho các giai đoạn kiểm thử:

Đánh giá kế hoạch: 

Thiết kế test case (thiết kế trường hợp kiểm thử)

Phát triển test script: Bước này không bắt buộc nó tạo ra các test script có khả năng chạy trên máy tính giúp tự động hóa việc thực thi các bước kiểm tra đã định nghĩa ở các bước thiết kế kiểm thử.

Thực hiện kiểm thử

Thiết lập môi trường và cài đặt: Để thực hiện kiểm thử trước tiên phải xác lập và khởi động môi trường kiểm thử đảm bảo tất cả các bộ phận liên quan (phần cứng, phần mềm, máy chủ, mạng, dữ liệu…) đã được cài đặt và sẵn sàng trước khi chính thức bắt đầu thực hiện kiểm thử.

Tiến hành kiểm thử theo các trường hợp kiểm thử đã chuẩn bị.

Thẩm định kết quả kiểm thử: Sau khi tiến hành kiểm thử, xem xét kết quả kiểm thử, xác định nguyên nhân của các lỗi được phát hiện. Nếu thực sự lỗi xảy ra do quá trình kiểm thử, cần phải sửa chữa và kiểm tra lại từ đầu.

Đánh giá quá trình kiểm thử

Bao gồm xem xét và đánh giá kết quả kiểm thử lỗi, chỉ định các yêu cầu thay đổi và tính toán số liệu liên quan đến quá trình kiểm thử (chẳng hạn số giờ, thời gian kiểm tra, số lượng lỗi…)

Thông báo tới các bên liên quan: Trưởng dự án sẽ thông báo cho các bên liên quan về kết quả kiểm thử đạt được.

Bên trên là những thông tin giúp bạn có thể hiểu được tầm quan trọng của Software Testing cũng như các công việc mà một tester cần làm.

 

Đinh Thao

Đinh Thao

Tôi là Đinh Thị Thao, hiện đang là giáo viên giảng dạy tại trung tâm testerpro và cũng là tác giả chính các bài blog liên quan đến tester, ngành công nghệ thông tin tại trên trang testerpro.vn. Với 5 năm kinh nghiệm làm việc, giảng dậy tại trung tâm thì tôi hy vọng sẽ có thể truyền tải cho các bạn những kiến thức tốt nhất của tester giúp các bạn phục vụ trong công việc của bản thân.

Từ khóa:
Bình luận
Icon Phone Icon Zalo