Get in touch
or send us a question?
CONTACT

Sự khác nhau giữa Static Testing và Dynamic Testing

Sự khác nhau giữa Static Testing và Dynamic Testing

Bài đăng này đã được cập nhật cách đây 3 năm 3 kể từ khi nó được cập nhật lần cuối.

Thử nghiệm tĩnh và thử nghiệm động là những phương pháp thử nghiệm quan trọng dành cho các Developer và Tester trong vòng đời Phát triển của phần mềm. Đây là những kỹ thuật kiểm thử phần mềm mà tổ chức phải lựa chọn cẩn thận để thực hiện trên ứng dụng phần mềm. Trong hầu hết các loại thử nghiệm, thì mỗi loại thử nghiệm sẽ phù hợp và được chọn đúng công cụ cho một yêu cầu nhất định. Điều quan trọng là chúng ta phải biết được lợi ích và hạn chế của từng loại thử nghiệm để lựa chọn phù hợp cho ứng dụng phần mềm Trước tiên chúng ta cần hiểu Thử nghiệm tĩnh (Static testing) và Thử nghiệm động (Dynamic testing) là gì

1.Thử nghiệm tĩnh (Static testing) là gì?

Thử nghiệm tĩnh là loại kiểm tra trong đó code không được thực hiện. Nó có thể được thực hiện bằng tay hoặc bằng một bộ công cụ. Loại kiểm tra này thực hiện kiểm tra code, tài liệu yêu cầu và tài liệu thiết kế và đưa ra nhận xét, lưu nhận xét vào tài liệu công việc. Khi phần mềm không thực thi và không làm gì, chúng ta thực hiện kiểm tra trạng thái an toàn để phân tích phần mềm trong môi trường không chạy. Với thử nghiệm tĩnh, chúng ta cố gắng tìm ra lỗi, các lỗi code và mã độc tiềm ẩn trong ứng dụng phần mềm. Static test bắt đầu sớm hơn trong vòng đời phát triển, và do đó nó còn được gọi là thử nghiệm xác minh (verification testing). Kiểm tra tĩnh có thể được thực hiện trên các tài liệu làm việc như yêu cầu kỹ thuật (requirement), tài liệu thiết kế (documents) , mã nguồn (Source code), kế hoạch kiểm tra (Test plan), kịch bản thử nghiệm (test script) và các trường hợp thử nghiệm (test case) , nội dung trang web.

Các kỹ thuật Thử nghiệm tĩnh bao gồm

  • Inspection: Ở đây mục đích chính là tìm ra các khiếm khuyết. Việc kiểm tra được thực hiện bởi người kiểm duyệt. Đây là loại đánh giá thông thường có một danh sách kiểm tra được chuẩn bị để kiểm tra xem tài lài liệu công việc hoàn thành tới đâu.
  • Walk-through: Trong loại kỹ thuật này, Leader mở một cuộc họp để giải thích sản phẩm. Những người tham gia có thể đặt ra những câu hỏi nếu chưa hiểu và ghi chú lại, phục vụ cho việc hoàn thành công việc.
  • Technical reviews: Trong loại kiểm tra này, kiểm tra về kỹ thuật sẽ được kiểm tra 1 vòng. Việc này tiến hành để kiểm tra xem code được thực hiện theo đúng các thông số kỹ thuật và tiêu chuẩn hay không. Nói chung các kế hoạch kiểm tra, chiến lược kiểm thử và các tập lệnh kiểm tra được xem xét ở đây.
  • Informal reviews: Kỹ thuật kiểm tra tĩnh trong đó tài liệu được xem xét, nhận xét một cách không chính thức và Đưa ra các ý kiến không chính thức.

2.Thử nghiệm động (Dynamic testing) là gì?

Thử nghiệm động được thực hiện khi code đang ở chế độ thực thi. Thử nghiệm động được thực hiện trong môi trường thực thi chạy chương trình ứng dụng. Khi code được thực thi, thì đầu vào được truyền một giá trị, kết quả hoặc đầu ra của việc thực hiện được so sánh với kết quả dự kiến ban đầu đã đưa ra. Với việc này chúng ta có thể quan sát được các hành vi chức năng của phần mềm, giám sát hệ thống bộ nhớ, thời gian phản hồi của CPU, hiệu suất của hệ thống. Thử nghiệm dynamic còn được gọi là thử nghiệm xác nhận (Validation testing), đánh giá sản phẩm. Thử nghiệm động gồm hai loại: Kiểm tra chức năng và Kiểm tra phi chức năng.

Các loại kỹ thuật Thử nghiệm động

Unit Testing: Thử nghiệm từng mô-đun của các developer .. Với kỹ thuật này, sẽ phù hợp cho kiểm tra source code Integration Testing: Kiểm tra việc thực hiện lien kết giữa các mô-đun khác nhau, phù hợp với việc của tester System Testing: Thử nghiệm thực hiện trên toàn bộ hệ thống. Với thử nghiệm này, hệ thống được thực hiện liên kết xuyên suốt tất cả các chức năng, kiểm tra sự hoạt động thông suốt, chính xác Acceptance Testing: Thử nghiệm được thực hiện từ quan điểm của người dùng cuối. Với thử nghiệm này, thì ứng dụng đã được đưa tới người sử dụng

3. Sự khác nhau giữa Static Testing và Dynamic Testing

Static TestingDynamic Testing
1. Static testing chính là kiểm thử hộp trắng (white box testing ) được thực hiện ở giai đoạn đầu của chu kỳ phát triển. Việc này hiệu quả hơn so với dung dynamic testing1. Dynamic testing được thực hiện ở giai đoạn sau của vòng đời phát triển.
2. Trong thời gian ngắn hơn, thì Statis testing có nhiều phạm vi xác nhận hơn so với Dynamic testing2. Dynamic testing có phạm vi xác nhận ít hơn vì nó chỉ bao gồm các khu vực giới hạn của code
3. Nó được thực hiện trước khi triển khai code3. Nó được thực hiện sau khi triển khai code
4. Nó được thực hiện trong Bước Xác minh4. Nó được thực hiện trong Giai đoạn Xác nhận
5. Loại thử nghiệm này được thực hiện mà không thực hiện code.5. Loại thực hiện này được thực hiện với việc thực thi code.
6. Static testing đưa ra đánh giá của code cũng như tài liệu.6. Dynamic testing cho biết giới hạn của hệ thống phần mềm.
7. Trong kỹ thuật Static testing một danh sách nội dung kiểm tra được chuẩn bị cho quá trình kiểm tra7. Trong kỹ thuật Dynamic testing, các trường hợp thử nghiệm được thực thi.
8. Các phương pháp Static testing bao gồm Walkthroughs, code review.8. Dynamic testing bao gồm việc kiểm tra chức năng và phi chức năng

Ví dụ để phân biệt giữa kiểm tra tĩnh và kiểm tra động

Ứng dụng phần mềm: Giỏ hàng trực tuyến a. Sử dụng kỹ thuật kiểm tra tĩnh:

  • Rà soát các tài liệu yêu cầu, tài liệu thiết kế ban đầu
  • Kiểm tra GUI của ứng dụng  – Kiểm tra cấu trúc cơ sở dữ liệu của ứng dụng.    b. Sử dụng kỹ thuật kiểm tra động:
  • Kiểm tra chức năng của trang khác nhau.
  • Kiểm tra quy trình thanh toán và phương thức thanh toán.
  • Kiểm tra sự giao tiếp giữa các trang khác nhau.

Tổng hợp:

  • Trong vòng đời phát triển phần mềm, có Xác minh (Verification) và Xác nhận (Validation) là hai biện pháp được sử dụng để kiểm tra sản phẩm phần mềm đáp ứng đúng các yêu cầu kỹ thuật.
  • Thử nghiệm tĩnh là kỹ thuật kiểm tra phần mềm, mà thử nghiệm được thực hiện khi không thực hiện chạy trương trình. Loại thử nghiệm này nằm trong phần xác minh. Có nhiều loại kỹ thuật kiểm tra tĩnh như Kiểm tra, Hướng dẫn, Đánh giá kỹ thuật và Đánh giá không chính thức.
  • Thử nghiệm động là kỹ thuật kiểm tra phần mềm, mà thử nghiệm được thực hiện khi thực thi chương trình. Loại thử nghiệm này được đưa ra trong việc Xác nhận. Có các loại kỹ thuật kiểm tra động khác nhau như Kiểm tra đơn vị, Kiểm tra Tích hợp, Thử nghiệm Hệ thống và Chấp nhận, kiểm tra chức năng và kiểm tra phi chức năng

Trên đây là sự khác nhau giữa thử nghiệm tĩnh và thử nghiệm động. Cả hai kỹ thuật đều quan trọng cho việc ứng dụng phần mềm. Mỗi kỹ thuật có những điểm mạnh và điểm yếu khác nhau. Do đó, trong vòng đời phát triền của phần mềm, thì cả 2 phương pháp luôn được sử dụng để đưa ra sản phẩm phẩm mềm tốt nhất

Tài liệu tham khảo http://www.softwaretestingclass.com/difference-between-static-testing-and-dynamic-testing/