26 Jan, 2021
Kiểm thử web
Một sinh viên gửi cho tôi một email: “Em đang làm việc như người kiểm thử cho một công ti phần mềm vào mùa hè. Việc của em yêu cầu em kiểm thử các website mà công ti xây dựng cho khách hàng của họ. Là sinh viên khoa học máy tính năm thứ ba, em biết rõ về ngôn ngữ lập trình (C++ và Java) nhưng chưa bao giờ được dạy về kiểm thử web. Làm sao em làm kiểm thử ứng dụng web? Em cần làm gì? Xin thầy giúp cho.”
Đáp: Phần lớn kiểm thử ứng dụng web đều yêu cầu ít nhất sáu kiểu kiểm thử: Kiểm thử chức năng, Kiểm thử hiệu năng, Kiểm thử tính dùng được, Kiểm thử giao diện, Kiểm thử phía phục vụ, Kiểm thử phía khách hàng và Kiểm thử an ninh.
Kiểm thử chức năng là về kiểm thử chức năng của ứng dụng web. Để bắt đầu bạn phải kiểm mọi móc nối để chắc nó làm việc tốt và không có móc nối bị đứt (như, móc nối trong, móc nối ngoài, móc nối thư và móc nối bị đứt). Bạn phải kiểm thử tính hợp thức của trường, thông báo lỗi về cái vào sai, và bất kì trường tuỳ chọn và bắt buộc nào trong ứng dụng. Bạn cũng phải kiểm tính toàn vẹn của cơ sở dữ liệu nơi dữ liệu được cất giữ. Bạn phải kiểm thử các cookies trên phía hệ thống khách và trên tệp internet tạm thời.
Kiểm thử hiệu năng là về kiểm thử tính đổi qui mô được của website. Để bắt đầu, bạn phải kiểm tốc độ kết nối bằng việc cho chạy kiểm thử của bạn trên các kết mạng đa dạng như quay số, ISDN v.v. Bạn cũng kiểm thử tải (Số người dùng truy nhập vào hệ thống theo phút hay giờ là gì? Tải giờ cao điểm là gì và hệ thống vận hành thế nào trong giờ này. Cái gì xảy ra khi có khối lượng dữ liệu lớn được người dùng truy nhập.) Bạn phải kiểm hiệu năng của bộ nhớ, CPU, xử lí tệp v..
Kiểm thử tính dùng được là quá trình qua đó các đặc trưng tương tác người-máy của hệ thống được đo đạc. Bạn có thể bắt đầu bằng kiểm thử tính dễ dùng, mọi người thấy học dùng ứng dụng web dễ hay khó thế nào, cách họ đi từ trang này sang trang khác, thông tin trên website được mô tả tốt thế nào, website trông như thế nào?
Trong kiểm thử web, giao diện phía nguồn phục vụ nên được kiểm thử để thẩm tra rằng trao đổi được thực hiện đúng. Tính tương hợp của máy phục vụ với phần mềm, phần cứng, mạng và cơ sở dữ liệu cũng nên được kiểm thử để chắc chúng tất cả làm việc tốt cùng nhau. Bạn cũng phải kiểm thử phía khách hàng về tính tương hợp vì họ có thể không dùng nền tương tự hay trình duyệt web như công ti của bạn.
Kiểm thử cuối cùng nên là về an ninh để nhận diện tính mong manh tiềm năng và sửa chúng. Để bắt đầu bạn có thể cần duyệt xét mạng để kiểm tra bất kì chỗ mong manh nào. Phải chắc mọi mật khẩu được đặt tương ứng với giao thức an ninh nào đó. Kiểm tra các sổ kí sự về nhưng tệp trung gian nào đó có thể chứa virus, kiểm thử tràn chồng, kiểm thử về bất kì virus nào hay kiểu ngựa thành Tơ roa mà có thể được chèn vào trong một phần của nhân.
—-English version—-
Web Testing
A student sent me an email: “I am working as tester for a software company in the summer. My job requires me to test websites that the company build for their customers. As a third year computer science student, I know programming language well (C++ and Java) but never been taught about web testing. How do I test the web applications? What do I need? Please help.”
Answer: Most web application testing require at least six types of test: Functionality Testing, Performance Testing, Usability Testing, Server Side Interface Testing, Client Side Compatibility testing and Security testing.
Functionality testing is about test the function of the web application. To start, you must check for all the link to make sure it work well and there is no broken link (i.e., Internal Links, External Links, Mail Links and identify any Broken Links). You must test for field validation, error message for wrong input, and any optional and mandatory fields in the application. You must also check the integrity of the database where data are stored. You must test for cookies on the client system side, and on the temporary Internet files.
Performance testing is about test the web site’s scalability. To start, you must check connection speed by run your tests over various networks like Dial Up, ISDN etc. You also test the load (What is the number of users access the system per minute or hour? What are the peak loads and how system operates during this time. What happen when there are large amount of data accessed by user. You must check the performance of memory, CPU, file handling etc.
Usability testing is the process by which the human-computer interaction characteristics of a system are measured. You may start by test the ease of use, how easy or difficult people learn to use the web application, how do they navigate from one page to other, how well described are the information on the website, how does the web site look?
In web testing the server side interface should be tested to verify that communication is done properly. Compatibility of server with software, hardware, network and database should also be tested to make sure they all work well together. You must also test the client side also for compatibility since they may not use similar platforms or web browsers as your company.
The last test should be on security to identify potential vulnerabilities and fix them. To start you may need to scan the network to check for any vulnerability. Make sure all password is set according to certain security protocol. Check the log review for certain temporary files that may contain virus, test for stack overflow, test for any virus or Trojan horse type of file that may be inserted into part of the kernel.