Một sinh viên viết cho tôi: “Khác biệt gì giữa kiểm thử phần mềm và kiểm thử web? Em cần làm kiểu kiểm thử gì cho ứng dụng web? Xin thầy lời khuyên.”

Đáp: Về căn bản, không có khác biệt giữa kiểm thử ứng dụng web và kiểm thử ứng dụng phần mềm. Người phát triển phải chắc rằng các ứng dụng của họ đáp ứng yêu cầu và có chất lượng tốt.

Để phát triển phần mềm, người lập trình viết mã (nó có thể là mô đun phần mềm, trang web, hay chức năng của một trang web) và kiểm thử nó để chắc nó làm việc. Họ phải chắc rằng phần lớn lỗi được sửa (kiểm thử đơn vị).

Vì có nhiều người lập trình làm việc này, mã của họ phải được tích hợp và kiểm thử để chắc chúng tất cả đều làm việc tốt và không can nhiễu lẫn nhau (kiểm thử tích hợp). Mọi mã (mô đun phần mềm, trang web, lớp, cơ sở dữ liệu) được đặt vào môi trường kiểm thử nơi chúng có thể được kiểm thử như một tổng thể. Kiểm thử tích hợp yêu cầu nhiều trường hợp kiểm thử và kịch đoạn kiểm thử dựa trên các yêu cầu chức năng của ứng dụng (sản phẩm phần mềm, trang web hay website.)

Vì phần mềm thường được dùng hay truy nhập tới bởi nhiều người, kiểm thử hiệu năng và kiểm thử găng được cần để chắc rằng ứng dụng làm việc tốt mà không sập. Kiểm thử găng được dùng để đảm bảo ứng dụng có thể đáp ứng cho một số lượng người dùng (chẳng hạn 100 người dùng đồng thời) và kiểm thử hiệu năng được dùng để đảm bảo rằng ứng dụng đáp ứng cho người dùng theo cách chấp nhận được (nó thực hiện nhanh thế nào).

Sau khi mọi kiểm thử được thực hiện (kiểm thử đơn vị, kiểm thử tích hợp, kiểm thử hiệu năng, kiểm thử găng v.v.) ứng dụng phần mềm được cài đặt trong môi trường của người dùng để chắc rằng nó thực hiện như được người dùng mong đợi. Một số kịch đoạn kiểm thử và trường hợp kiểm thử được dùng trong các kiểm thử trước có thể được dùng lại, nhưng chúng phải được người dùng cho chạy trên hệ thống của họ. Nếu nó qua được thì ứng dụng có thể chuyển cho môi trường sản xuất hay đưa lên sống trên internet.

—-English version—-

Web testing

A student wrote to me: “What is the difference between software testing and web testing? What types of test do I need to test web application? Please advice.

Answer: Basically, there is no difference between Web application testing and Software application testing. Developers must make sure that their applications work, meet requirements, and have good quality.

To develop software, programmers write code (It can be a software module, a web page, or a function of a web page) and test it to make sure it works. They must make sure that most bugs are fixed. (Unit Test)

Because there is more than one programmer doing the work, their codes must be integrated and tested to make sure they all work well and not interfere with others. (Integration test) All code (software modules, web pages, classes, databases) are placed in a test environment where they can be tested as a whole. Integration test requires several test cases and test scripts based on the functional requirements of the application (Software product, web page or website.)

Since the software are often used or accessed by many people, performance test and stress test are needed to make sure that the application works well without crash. Stress test is used to ensure the application can handle a number of users (for example 100 users or 1000 users at the same time) and performance test is used to ensure that the application response to users in an acceptable manner (How fast it perform).

After all testing is done (Unit tests, Integration test, Performance test, Stress test etc.) the software application is installed in the users’ environment to make sure that it performs as users’ expected. Some test scripts and test cases used in previous tests can be reused, but they must be run by users in their system. If it passes then the application can be moves to the production environment or go live on the internet.