Các mức độ trong kiểm thử phần mềm – Freetuts

Có nhiều mức độ trong quá trình kiểm thử phần mềm như kiểm thử chức năng, kiểm thử phi chức năng, kiểm thử đơn vị, kiểm thử tích hợp, kiểm thử hệ thống, kiểm thử chấp nhận… Bài viết này sẽ mô tả các mức độ đó.

test php

banquyen png

Bài viết này được đăng tại

freetuts.net

, không được copy dưới mọi hình thức.

Các mức độ trong kiểm thử gồm có nhiều giải pháp khác nhau được sử dụng trong khi thực thi kiểm thử phần mềm. Các mức độ chính của kiểm thử phần mềm là :

  • Kiểm thử chức năng
  • Kiểm thử phi chức năng

1. Kiểm thử chức năng (Functional Testing)

Đây là một loại của kiểm thử hộp đen dựa trên các thông số kỹ thuật kỹ thuật của phần mềm đã được kiểm tra. Ứng dụng được kiểm thử bằng cách cung ứng các nguồn vào, sau đó kiểm tra hiệu quả có tương thích với công dụng đã được phong cách thiết kế hay không. Kiểm thử công dụng được thực thi khi phần mềm các công dụng đã được kiến thiết xây dựng triển khai xong, tích hợp vào mạng lưới hệ thống để nhìn nhận mức đúng chuẩn của mạng lưới hệ thống với nhu yếu của người dùng .
Dưới đây là các bước trong kiểm thử tính năng của phần mềm :Bài viết này được đăng tại [ không tính tiền tuts. net ]

Bước Mô tả
1 Xác định chức năng mà phần mềm sẽ thực hiện
2 Tạo dữ liệu kiểm thử dựa trên các đặc điểm kỹ thuật của phần mềm
3 Xác định dữ liệu đầu ra dựa trên các đặc điểm kỹ thuật của phần mềm
4 Viết các kịch bản kiểm thử và thực thi các trường hợp kiểm thử (test cases)
5 So sánh kết quả thực tế và kết quả mong đợi dựa trên các trường hợp kiểm thử- đã thực hiện

Thực hiện kiểm thử hiệu suất cao sẽ vận dụng các bước ở trên cho các chủ trương thử nghiệm của mọi tổ chức triển khai và từ đó nó sẽ bảo vệ để các tổ chức triển khai duy trì các tiêu chuẩn khắt khe nhất khi nhắc đến chất lượng phần mềm .

2. Kiểm thử đơn vị (Unit testing)

Loại kiểm thử này được triển khai bởi những Developer trước khi chuyển giao cho đội Tester chính thức mở màn chạy các trường hợp kiểm thử ( test cases ). Unit testing được thực thi bởi chính lập trình viên đó theo những đơn vị chức năng mã nguồn tương ứng được chỉ định. Lập trình viên sử dụng tài liệu kiểm thử khác nhau từ testcase để bảo vệ chất lượng .
Mục đích của Unit testing là cô lập từng phần chương trình và cho thấy rằng những phần riêng không liên quan gì đến nhau cung ứng các nhu yếu và tính năng .
Hạn chế của Unit Testing :

  • Kiểm thử không thể bắt hết lỗi trong phần mềm. Không thể đánh giá được các luồng thực hiện trong mỗi phần mềm và Unit Testing cũng vậy.
  • Có giới hạn về số lượng kịch bản và dữ liệu kiểm thử mà lập trình viên có thể sử dụng để xác minh mã nguồn. Sau khi đã chay hết các trường hợp kiểm thử, không có lựa chọn nào khác ngoài việc dừng Unit Testing và tích hợp các phân đoạn mã nguồn với các thành phần khác.

3. Kiểm thử tích hợp (Integration Testing)

Integration Testing được định nghĩa như kiểm thử phối hợp các phần của ứng dụng để xác lập các công dụng chạy đúng. Có hai cách kiểm thử tích hợp :

  • Kiểm thử tích hợp từ trên xuống (Bottom-up integration testing).
  • Kiểm thử tích hợp từ dưới lên (Top-down integration testing).
STT Phương thức kiểm thử tích hợp
1 Kiểm thử tích hợp từ dưới lên: Phương thức này bắt đầu với Unit Testing, tiếp theo là tích hợp các thành phần cấp cao hơn như modules hoặc các bản builds.
2 Kiểm thử tích hợp từ trên xuống: Phương thức này sẽ kiểm tra từ module cấp cao nhất xuống module có mức độ thấp hơn.

Trong thiên nhiên và môi trường tăng trưởng phần mềm lúc bấy giờ, kiểm thử từ dưới lên luôn được hoàn thành xong trước, tiếp theo là kiểm thử từ trên xuống. Quá trình này sẽ kết thúc sau nhiều vòng kiểm thử trên phần mềm hoàn hảo, tốt nhât là phong cách thiết kế ngữ cảnh giả lập được các trường hợp thực tiễn .

4. Kiểm thử hệ thống (System Testing)

System Testing là kiểm thử hàng loạt mạng lưới hệ thống. Khi tổng thể các thành phần được tích hợp, hàng loạt phần mềm được kiểm thử một cách khắt khe để thấy rằng nó phân phối các tiêu chuẩn chất lượng. Loại kiểm thử này được thực thi bởi nhóm tester có kỹ năng và kiến thức về mạng lưới hệ thống .
System Testing rất quan trọng vì những nguyên do sau :

  • System Testing là bước đầu tiên trong vòng đời phát triển phần mềm (Software Development Life Cycle), giai đoạn mà hệ thống sẽ được kiểm thử toàn bộ.
  • Ứng dụng được kiểm tra kỹ càng để xác minh rằng các chức năng và thông số kỹ thuật của nó có được đáp ứng.
  • Ứng dụng được kiểm thử trong môi trường rất giống với môi trường thật, nơi mà các ứng dụng phần mềm được triển khai.
  • System Testing cho phép chúng ta kiểm tra, xác minh và xác nhận cả những yêu cầu chức năng cũng như phi chức năng.

5. Kiểm thử hồi quy  (Regression testing)

Có bất kể sự đổi khác trong một ứng dụng phần mềm sẽ trọn vẹn hoàn toàn có thể gây tác động ảnh hưởng tới những thành phần khác. Regression testing được thực thi để xác định rằng các lỗi đã được sửa không làm biến hóa hiệu quả của tính năng khác hoặc tác động ảnh hưởng đến các thành phần khác. Mục đích của Regression testing là để bảo vệ rằng biến hóa sẽ không dẫn đến lỗi khác được phát sinh trong ứng dụng phần mềm .
Regression testing được coi là quan trọng vì những nguyên do sau :

  • Regression testing giúp giảm thiểu lỗ hổng trong kiểm thử khi một ứng dụng có thay đổi.
  • Kiểm thử các thay đổi mới để xác minh các thay đổi không ảnh hưởng đến bất kỳ phần nào của ứng dụng.
  • Giảm thiểu rủi ro khi Regression testing trên ứng dụng.
  • Chất lượng phần mềm được tăng cường mà không ảnh hưởng đến mốc thời gian (timelines).
  • Tăng tốc độ release sản phẩm.

6. Kiểm thử chấp nhận (Acceptance Testing)

Đây được coi là một trọng những loại kiểm thử quan trọng và được triển khai bởi nhóm bảo vệ chất lượng ( QA Team ), nó sẽ nhìn nhận ứng dụng liệu hoàn toàn có thể cung ứng các thông số kỹ thuật kỹ thuật và nhu yếu của người mua hay không. Nhóm QA sẽ có một bộ ngữ cảnh được viết sẵn và sẽ được sử dụng để kiểm thử ứng dụng .
Nhiều ý tưởng sáng tạo về ứng dụng sẽ được san sẻ và hoàn toàn có thể triển khai nhiều testcase hơn để nhìn nhận độ đúng chuẩn về loại sản phẩm, đó là nguyên do tại sao dự án Bất Động Sản được mở màn. Acceptance Testing không riêng gì đưa ra các lỗi chính tả đơn thuần, lỗi giao diện hoặc làm giảm các lỗi, mà còn chỉ ra những lỗi phong cách thiết kế hoàn toàn có thể gây ra sự cố mạng lưới hệ thống hoặc lỗi nghiêm trọng trong ứng dụng .

Nhóm kiểm thử sẽ kết luận làm thế nào để bàn giao sản phẩm. Ngoài ra còn có các yêu cầu pháp lý và hợp đồng để chấp nhận hệ thống. 

7. Kiểm thử alpha (Alpha Testing)

Thử nghiệm này là quy trình tiến độ tiên phong của kiểm thử được thực thi nội bộ giữa các team ( lập trình viên và QA ). Kiểm thử đơn vị chức năng, kiểm thử tích hợp và kiểm thử mạng lưới hệ thống được phối hợp với nhau gọi là kiểm thử alpha. Trong quá trình này, các yếu tố sau sẽ được kiểm tra trong ứng dụng :

  • Lỗi chính tả
  • Liên kết bị hỏng
  • Định hướng của trang
  • Phần mềm sẽ được kiểm thử trên các thiết bị có đặc điểm kỹ thuật thấp nhất để kiểm tra thời gian tải và bất kỳ vấn đề về độ trễ nào.

8. Kiểm thử beta (Beta Testing)

Loại kiểm thử này được thực thi sau khi thử nghiệm alpha đã được thực thi xong. Beta Testing cũng được biết đến như là kiểm thử mẫu sản phẩm trước khi phát hành mẫu sản phẩm ( pre-release testing ). Phiên bản kiểm thử beta của phần mềm được phân phối cho nhiều đối tượng người dùng dùng thử, một phần sẽ đưa chương trình thử nghiệm ra ” quốc tế thực “, một phần sẽ cung ứng bản Preview của đợt phát hành tới. Trong tiến trình này, những người được thử nghiệm sẽ kiểm tra những yếu tố sau :

  • Người dùng cài đặt, chạy ứng dụng phần mềm và gửi phản hồi tới nhóm dự án.
  • Tạo lỗi chính tả, gây rối loạn chương trình và tạo ra những sự cố.
  • Khi nhận được phản hồi, nhóm dự án có thể khắc phục các vấn đề trước khi phát hành phần mềm cho người dùng thực tế.
  • Giải quyết được các vấn đề của người dùng thực tế, chất lượng ứng dụng sẽ càng cao hơn.
  • Ứng dụng có chất lượng cao hơn khi phát hành sẽ làm tăng sự hài lòng của khách hàng.

9. Kiểm thử phi chức năng (Non-Functional Testing)

Thực hiện loại kiểm thử này dựa trên việc kiểm thử một ứng dụng từ các thuộc tính phi tính năng của phần mềm. Non-Functional Testing tương quan đến việc kiểm thử phần mềm từ những nhu yếu phi công dụng nhưng quan trọng như hiệu suất, bảo mật thông tin, giao diện người dùng, v.v …
Một số loại kiểm thử Non-Functional Testing quan trọng :

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

Thực hiện loại kiểm thử này nhằm mục đích xác lập mạng lưới hệ thống có thê hoạt động giải trí không thay đổi và cung ứng với nhu yếu tải cao hay không. Chủ yếu được sử dụng để xác lập các yếu tố về hiệu năng hơn là tìm lỗi một phần mềm. Có nhiều nguyên do khác nhau góp thêm phần làm giảm hiệu năng của phần mềm .

  • Độ trễ mạng.
  • Xử lý phía máy trạm.
  • Xử lý giao dịch CSDL.
  • Tải cân bằng giữa các máy chủ.
  • Biên dịch dữ liệu.

Performance testing được coi là một trong những loại kiểm thử quan trọng và bắt buộc biểu lộ dưới góc nhìn sau :

  • Tốc độ
  • Sức chứa
  • Khả năng ổn định
  • Khả năng mở rộng

Performance testing có thể là định tính hoặc định lượng, có thể chia thành các loại khác nhau như Load testingStress testing.

Load testing

Là một quy trình kiểm thử hiệu năng của một phần mềm bằng cách vận dụng tải tối đa về mặt phần mềm truy vấn và thao tác với tài liệu nguồn vào lớn. Load testing hoàn toàn có thể được thực thi ở cả hai điều kiện kèm theo tải trọng thông thường và cao điểm. Loại kiểm thử này xác lập hiệu suất tối đa của phần mềm và hiệu suất của phần mềm vào thời hạn cao điểm .
Load testing được triển khai với sự trợ giúp của các công cụ tự động hóa như Load Runner, AppLoader, IBM Rational Performance Tester, Apache JMeter, Silk Performer, Visual Studio Load Test, v.v. .
Người dùng ảo ( Vusers ) được xác lập trong công cụ kiểm thử tự động hóa và tập lệnh được thực thi để xác định việc tải cho phần mềm. Số lượng người dùng hoàn toàn có thể được tăng hoặc giảm đồng thời hoặc thực thi dựa trên các nhu yếu .

Stress testing

Stress testing là kiểm thử hiệu năng của phần mềm trong điều kiện kèm theo không bình thường. Ví du : hoàn toàn có thể bỏ đi 1 số ít tài nguyên hoặc vận dụng tải trọng vượt quá số lượng giới hạn thực tiễn .
Mục đích của Stress testing là kiểm thử phần mềm bằng cách vận dụng tải trọng cho mạng lưới hệ thống và đảm nhiệm các tài nguyên được phần mềm sử dụng để xác lập điểm phá vỡ. Stress testing hoàn toàn có thể được triển khai bằng cách kiểm tra các ngữ cảnh như sau :

  • Tắt/bật các cổng mạng ngẫu nhiên.
  • Tắt/bật CSDL.
  • Chạy các chương trình tiêu thụ tài nguyên CPU, bộ nhớ, máy chủ,…

10. Kiểm thử tính hữu dụng (Usability testing)

Usability testing là một kỹ thuật hộp đen và được sử dụng để xác lập lỗi và nâng cấp cải tiến trong phần mềm bằng nhìn nhận giao diện người dùng .
Theo Nielsen, Usability testing hoàn toàn có thể được xác lập theo năm yếu tố : dễ sử dụng, dễ tìm hiểu và khám phá, dễ nhớ, bảo đảm an toàn và thỏa mãn nhu cầu nhu yếu người dùng .
Nigel Bevan và Mecleod cho rằng năng lực sử dụng là nhu yếu chất lượng hoàn toàn có thể được đo lường và thống kê như thể hiệu quả của sự tương tác với một mạng lưới hệ thống máy tính. Yêu cầu này hoàn toàn có thể được cung ứng và end-user sẽ hài lòng nếu tiềm năng đự định đạt được và hiệu suất cao với việc sử dụng các tài nguyên thích hợp .
Molich vào năm 2000 đã công bố một mạng lưới hệ thống thân thiện với người dùng phải triển khai xong năm tiềm năng sau : dễ điều tra và nghiên cứu, dễ nhớ, hiệu suất cao, thỏa mãn nhu cầu nhu yếu sử dụng và dễ hiểu .
Ngoài các định nghĩa về năng lực sử dụng, cố 1 số ít tiêu chuẩn quy mô chất lượng và giải pháp xác lập năng lực sử dụng như : ISO-9126, ISO-9241-11, ISO-13407 và IEEE std. 610,12, …

11. Kiểm thử Giao diện người dùng và kiểm thử tính hữu dụng (UI and Usability testing)

Kiểm thử giao diện người dùng tương quan đến việc kiểm tra giao diện đồ họa người dùng. Kiểm thử giao diện người dùng bảo vệ rằng các công dụng giao diện người dùng ( GUI ) theo nhu yếu và được kiểm thử về sắc tố, chỉnh sửa, kích cỡ và các thuộc tính khác .

Mặc khác, kiểm thử tính hữu dụng đảm bảo giao diện người dùng thân thiện, dễ sử dụng có thể dễ dàng xử lý. Kiểm thử giao diện người dùng có thể được coi là một phần của kiểm thử tính hữu dụng.

12. Kiểm thử bảo mật (Security testing)

Kiểm thử bảo mật thông tin tương quan đến việc kiểm thử phần mềm để xác lập bất kể sai sót và lỗ hổng, giải quyết và xử lý bảo mật thông tin tài liệu và ngăn ngừa sự mọi sự xâm nhập vào mạng lưới hệ thống. Dưới đây liệt kê các góc nhìn chính mà Security testing phải bảo vệ :

  • Tính Bảo mật
  • Tính đúng đắn
  • Tính Xác thực
  • Tính Khả dụng
  • Tính  Ủy quyền
  • Ngăn chăn các lỗ hổng bảo mật
  • Phần mềm được an toàn
  • Dữ liệu phần mềm được bảo mật
  • Phần mềm tuân theo mọi quy định bảo mật
  • Kiểm tra và xác thực đầu vào
  • Tấn công thêm dữ liệu SQL
  • Tấn công những sai sót
  • Vấn đề quản lý phiên
  • Tấn công Cross-Site Scripting(CSS)
  • Các lỗ hổng tràn Buffer
  • Tấn công qua các thư mục 

13. Kiểm thử tính di động (Portability testing)

Kiểm thử tính di động gồm có thử nghiệm một phần mềm với mục tiêu bảo vệ năng lực tái sử dụng và hoàn toàn có thể được chuyển sang một phần mềm khác. Sau đây là các kế hoạch hoàn toàn có thể được sử dụng để kiểm thử tính di động :

  • Chuyển phần mềm đã cài đặt từ máy hiện tại sang máy khác.
  • Xây dựng các testcase để chạy trên nhiều nền tảng khác nhau.

Kiểm thử di động hoàn toàn có thể được coi như một trong kiểm thử mạng lưới hệ thống, loại kiểm thử này tương quan đến việc sử dụng trên các môi trường tự nhiên khác nhau. Phần cứng máy tinh, hệ quản lý và điều hành và trình duyệt là trọng tâm chính của kiểm thử tính di động. Có 1 số ít điều kiện kèm theo kiểm thử tính di động như sau :

  • Phần mềm nên được thiết kế và phát triển, thỏa mãn các yêu cầu về tính di động.
  • Kiểm thử đơn vị đã được thực hiện trên các thành phần liên quan.
  • Kiểm thử tích hợp đã được thực hiện.
  • Môi trường thử nghiệm đã được thiết lập.

Source: https://bacxiunong.com
Category: Blog

Related Posts

Trả lời

Email của bạn sẽ không được hiển thị công khai.