Showing posts with label TIN-CONG-NGHE. Show all posts
Showing posts with label TIN-CONG-NGHE. Show all posts


1. Điện toán đám mây (cloud computing ) là gì? và dịch vụ  kiểm thử phần mềm hướng cloud


 - Ra đời từ năm 2007 - Điện toán đám mây đã châm ngòi cho một cuộc cách mạng trong cách cung cấp thông tin và dịch vụ của các tổ chức. Nó hứa hẹn nhiều lợi ích nhưng cũng đặt ra cho nhà cung cấp nhiều thách thức hơn mặc dù điện toán đám mây chỉ là một cách khác để cung cấp tài nguyên máy tính chứ chưa phải là một công nghệ mới mẻ. 

Vậy điện toán đám mây là gì? Có thể hiểu đơn giản, các nguồn điện toán khổng lồ như phần mềm, các dịch vụ… sẽ nằm tại các máy chủ ảo (đám mây) trên Internet thay vì trong máy tính gia đình và văn phòng (trên mặt đất) để mọi người kết nối và sử dụng mỗi khi họ cần. Với các dịch vụ sẵn có trên Internet, doanh nghiệp không phải mua và duy trì hàng trăm, thậm chí hàng nghìn máy tính cũng như phần mềm mà chỉ cần tập trung sản xuất bởi đã có người khác lo cơ sở hạ tầng và công nghệ thay họ. Ta có thể truy cập đến bất kỳ tài nguyên nào tồn tại trong “đám mây (cloud)” tại bất kỳ thời điểm nào và từ bất kỳ đâu thông qua hệ thống Internet.


                        Kiểm thử tự động

Cũng như các nhà cung cấp phần mềm tại Việt Nam, một số công ty cũng đang tận dụng thế mạnh của các đơn vị trực thuộc từng bước đưa những phần mềm dùng chung của các bưu điện trên khắp các tỉnh/ thành trở thành các dịch vụ phần mềm dưới dạng phần mềm hướng cloud based. Bên cạnh đó còn tích cực đẩy mạnh việc cung cấp, kinh doanh các dịch vụ CNTT ra ngoài thị trường. Đây là mảng hứa hẹn nhiều tiềm năng nhưng cũng bị cạnh tranh gay gắt không kém các dịch vụ Viễn thông. Với vai trò kinh doanh các dịch vụ như vậy, Tập đoàn có hai phương thức để tạo các sản phẩm dịch vụ: tự phát triển hoặc mua để kinh doanh dịch vụ.

Cả hai phương thức này đều đặt ra yêu cầu kiểm định phần mềm chặt chẽ bởi việc kinh doanh các dịch vụ CNTT cũng giống như các dịch vụ Viễn thông, cần đảm bảo cam kết chất lượng phần mềm, dịch vụ tới khách hàng. Với những yêu cầu như vậy, cộng với xu thế các phần mềm, hệ thống được cung cấp dưới dạng cloud nêu yêu cầu kiểm định phần mềm cloud là một bài toán cần phải giải quyết ngay.

2. Đặc điểm khác biệt giữa phần mềm hướng cloud với các phần mềm truyền thống

Phần mềm hướng cloud có nhiều đặc điểm khác so với phần mềm và ứng dụng web truyền thống. Đây là phần mềm có kiến trúc multi-tenant (nhiều bên thuê) trong đó tất cả người dùng và các ứng dụng được chia sẻ trong một cơ sở hạ tầng và một nền code chung được duy trì tập trung. Đây là một điểm mạnh của phần mềm hướng cloud vì nó tiết kiệm được khá nhiều chi phí cho cả nhà cung cấp lẫn người sử dụng. Ngoài ra, nó còn thuận tiện trong việc triển khai trên diện rộng và dễ dàng trong việc sửa chữa, bảo trì, v.v... 
Tuy nhiên, bên cạnh những điểm mạnh thì phần mềm hướng cloud cũng ẩn chứa một  số rủi ro, nguy cơ do những đặc điểm kiến trúc phần mềm của mình. Một số rủi ro mà
các phần mềm hướng cloud thường gặp phải bao gồm: rủi ro về mặt hiệu năng, bảo mật, khả năng sẵn sàng hay khả năng bảo trì, v.v.... 

Khóa học kiểm thử phần mềm

3.  Một số nguy cơ cần kiểm soát đối với phần mềm hướng cloud

Những nguy cơ liên quan đến hiệu năng là mục tiêu quan trọng trong một thời gian dài. Với điện toán đám mây, càng nhiều kết  nối được thực hiện trên Internet thì rủi ro về hiệu năng càng nhiều hơn.

 Khi nhiều hệ thống khác được sử dụng với sự trợ giúp của đám mây thì việc sử dụng internet có thể dẫn đến nguy cơ về hiệu năng đối với tất cả các quy trình nghiệp vụ. 

Một hướng quan trọng trong lựa chọn điện toán đám mây là khả  năng mở rộng của dịch vụ. Khi nhu cầu tăng thì năng lực của hệ thống tự động tăng một  cách nhanh chóng, sau đó khi nhu cầu giảm thì năng lực hệ thống cũng sẽ giảm đi. Đây chính là khả năng đàn hồi, một khía cạnh test riêng trong cloud.

 Những rủi ro xuất hiện đối với hiệu năng  cũng đi cùng với bảo mật: đây cũng chính là điều mà người quản lý kiểm thử luôn luôn quan tâm. Khi sử dụng đám mây có nghĩa là những nguy cơ về bảo mật phải được giải quyết một cách rõ ràng. Sự cố bảo mật có thể  dẫn đến thiệt hại ngay lập tức cho doanh nghiệp và có thể dẫn đến vi phạm pháp luật. Có rất nhiều các quy định về an toàn thông tin và bảo mật. 

Việc chia sẻ tài nguyên CNTT với các khách hàng khác cũng sẽ dẫn  đến các vấn đề an ninh. Trong tất cả các mô hình thực hiện điện toán đám mây thì sự nguy hiểm nhất là một nhân viên không được quyền nhưng lại truy cập được vào các dữ liệu nhạy cảm.
 Đây chính là vấn đề cần phải được kiểm soát. Một đặc điểm quan trọng  khác của các dịch vụ trên đám mây là việc không khóa Internet, thông qua các dịch vụ có thể thu được ở khắp mọi nơi và trên tất cả các loại nền tảng. 

Hiện nay có một xu hướng mới, đó là nhân viên sử dụng các thiết bị của mình để làm việc. Mọi người thường làm việc ở nhiều địa điểm khác nhau, hầu hết là ngoài văn phòng và sử dụng thiết bị riêng của mình. Điều này dẫn đến một lỗ hổng mới. Vậy làm thế nào để giữ an toàn cho các thiết bị và làm thế nào để người dùng sử dụng một cách an toàn. Đó cũng là điều mà các bài kiểm thử cần phải đưa ra để kiểm tra. Rủi ro về tính sẵn sàng và liên tục ảnh hưởng trực tiếp ngay đến quá trình kinh doanh của người sử dụng. 
Một số vấn đề có thể xảy ra như mất kết nối Internet, một thiết bị bị lỗi trong dịch vụ riêng của mình, hoặc không truy cập được vào dữ liệu công ty. Việc phân tích rủi ro sẽ đánh giá được những  gián đoạn có thể xảy ra và lường trước được hậu quả của nó. 

Tùy thuộc vào nguy cơ để đưa ra các phương pháp kiểm thử  nhằm làm giảm nhẹ các rủi ro đó.

Kiểm thử tự động

 4. Các khía cạnh kiểm thử của phần mềm hướng cloud

- Kiểm thử bảo mật

Mục đích: nhằm đảm bảo hệ thống phòng chống được các sự tấn công từ bên ngoài, đảm bảo an ninh dữ liệu của các bên thuê. 
Bao gồm : 
Đánh giá bảo mật mạng Kiểm tra bảo mật thông tin khách hàng Kiểm thử khả năng mã hóa Kiểm thử khả năng xác thực Kiểm thử khả năng ủy quyền Kiểm thử bảo mật chống lại những tấn công từ Internet. Kiểm thử những bản vá bảo mật 

- Kiểm thử hiệu năng

Mục đích: nhằm kiểm tra hiệu suất hoạt động, phản ứng của hệ thống trong các trường hợp tải khác nhau, trường hợp quá tải cũng như khi hệ thống sử dụng tải lớn trong một thời gian đủ dài. 
Bao gồm :

+ Kiểm thử tải (Load test)

+ Kiểm thử quá tải (Stress test),

 + Kiểm thử độ bền hoặc kiểm thử khối lượng, 

 + Kiểm thử tính mềm dẻo và khả năng mở rộng 

-  Kiểm thử chức năng

Mục đích: nhằm đảm bảo các quy trình nghiệp vụ được thực hiện chuẩn xác, có thể cấu hình theo từng bên thuê.

- Kiểm thử tương thích

Mục đích: nhằm bảo đảm khả năng tương thích của ứng dụng với các mục tiêu khác nhau như trình duyệt web, các nền tảng phần cứng, người dùng (ngôn ngữ, vùng miền khác nhau) hay hệ điều hành, v.v...) 
Bao gồm : 

+ Kiểm thử khả năng tương thích của dịch vụ với các quy tŕnh nghiệp vụ
+ Kiểm thử tính tương thích với các trình duyệt
+ Kiểm thử tính tương thích với các hệ điều hành khác nhau
+ Kiểm thử khả năng nội địa hoá (Localization)
+ Kiểm thử khả năng quốc tế hoá (Internationalization testing)
+ Kiểm thử khả năng tương thích ngược về mặt giao diện

- Kiểm thử Live

Mục đích: Mục đích của kiểm thử live nhằm đảm bảo ứng dụng được test trong một môi trường thực sự. Có hai loại kiểm thử live cần được quan tâm là: 

 Kiểm thử khả năng phục hồi sau thảm hoạ và Kiểm thử khả năng nâng cấp trực tuyến

- Kiểm thử tính sẵn sàng và liên tục 

Gồm : 

Kiểm thử độ tin cậy của phần cứng
Kiểm thử độ tin cậy của phần mềm
Kiểm tra kết nối internet
Kiểm thử dự phòng

5. Kết Luận 


Từ những phân tích rủi ro và các khía cạnh kiểm thử cho phần mềm hướng cloud, chúng tôi đưa ra khung để đánh giá, kiểm tra nhằm xác định các bài kiểm thử cụ thể cho từng phần mềm với đặc điểm riêng của nó


(sưu tầm) 
---------------------------------------------------------------------------------------------------

Kiểm thử tự động, Học kiểm thử phần mềm 

Chú ý nho nhỏ cho những người lười đọc như mình :  Nếu bạn thuộc típ người lười đọc nhiều chữ, củm thấy hoa mắt chóng mặt vì phải tìm những ý chính trong búa lua xua chữ thì các bạn đọc những dòng chữ màu xanh nhé :)) .  Màu đen lướt qua là được rồi nhưng dù gì cũng khuyến khích đọc hết ;)) nếu đã lở tay mở trang này ra 

Tiếp theo bài 1 - Tìm hiểu CMMI trong kiểm thử phần mềm  , bài 2 - Lợi ích khi sử dụng CMMI 

I. Những lợi ích của CMMI

The CMMI Product Suite is at the forefront of process improvement because it provides the latest best practices for product and service development and maintenance.                 Cải tiến năng lực của các tổ chức phần mềm bằng cách nâng cao kiến thức và kỹ năng của lực lượng lao động.

            Đảm bảo rằng năng lực phát triển phần mềm  là thuộc tính của tổ chức không phải của một vài cá thể.

            Hướng các động lực của cá nhân với mục tiêu tổ chức.

            Duy trì tài sản con người, duy trì nguồn nhân lực chủ chốt trong tổ chức.

Lợi ích CMM mang lại cho Doanh nghiệp gói gọn trong  4 từ: Attract, Develop, Motivate và Organize.



1) Đối với doanh nghiệp: 

Có thêm những quyết định rõ ràng, dứt khoát trong việc quản lý và hoạt động cho các đối tượng
kinh doanh.

Giải thích về phạm vi và tầm nhìn trong vòng đời phát triển của phần mềm, cũng như các hoạt động nhằm đảm bảo sản phẩm hoặc dịch vụ đáp ứng được nhu cầu của khách hàng.

Kết hợp những gì đã có được và cộng thêm vào những thực hành tốt nhất. Ví dụ: như cách đo

lường, quản lý mạo hiểm, quản lý cung cấp.

Thực hiện thêm đầy đủ và thuần thục với cách thức làm việc.

Thêm vào chức năng nhận phê bình từ sản phẩm và dịch vụ của công ty.

Thêm vào những điều tuân theo chuẩn ISO.

2) Đối với người quản lý/thực hiện:

Hiểu được ai là người quan trọng và chia sẻ các  thông tin, phạm vi, yêu cầu của dự án.

Di chuyển từ sự không cần đồng ý đến việc dàn xếp dựa trên tác động.

Quản lý sau sửa chữa tới đo lường tiêu điểm, thêm những quản lý tiên phong thực hiện xuyên suốt chương trình.

Quản lý rủi ro sử dụng trong hệ thống và rèn luyện kỹ năng phần mềm.

Quản lý tập trung được chuyển từ “giao tiếp là bước thường lệ trong quy trình” sang “giao tiếp là cần thiết để giữ cho quy trình hoạt động” Lợi ích khi sử dụng CMMI
Đối với người quản lý cấp cao:

Tập trung vào yêu cầu như là một phần cơ bản của việc lên kế hoạch và thay đổi.

Các thông tin sớm về rủi ro và vấn đề của dự án.

Bớt sự chữa cháy

Bớt sự nhận định thiếu đầy đủ trong phân tích va chạm.

Bớt thỏa mãn về sự chữa cháy và ngăn ngừa hành động đó.

Giảm bớt những phàn nàn từ khách hàng không hài lòng với hệ thống.

Bớt đi những vận chuyển trong việc “cho đến khi vấn đề được giải quyết”

Thêm năng lực quản lý kế hoạch hệ thống và ngân sách thực hiện.

3) Đối với người lao động :


Lợi ích CMM mang lại cho người lao động:

  - Môi trường làm việc, văn hóa làm việc tốt hơn.
  - Vạch rõ vai trò và trách nhiệm của từng vị trí công việc.
  - Đánh giá đúng năng lực, công nhận thành tích.
  - Chiến lược, chính sách đãi ngộ luôn được quan tâm.
  - Có cơ hội thăng tiến.
  - Liên tục phát triển các kỹ năng cốt yếu.

Kiểm thử phần mềm



II. Khác biệt giữa ISO 9001:2000 và CMM/CMMI?

•  ISO 9001 là một tiêu chuẩn quốc tế về quản lý, các điều khoản gọi là “yêu cầu” quy định những điểm cần phải làm (what to do), không chỉ ra việc đó nên làm như thế nào (how to do).

•  CMM/CMMi là một mô hình, cung cấp các hướng dẫn và kinh nghiệm thực tế dùng để phát triển, cải tiến và đánh giá năng lực của quy trình.

•  CMMi không phải là một tiêu chuẩn, tùy vào từng tổ chức, cách thực hiện khác nhau rất nhiều.

•  Về nguyên tắc, ISO bao gồm (ở mức cao) hầu hết các quy trình chủ chốt của CMM/CMMi, tuy nhiên ISO được dùng cho hầu hết mọi ngành nghề, do vậy không cụ thể và gần gũi với công việc đặc thù có liên quan đến phần mềm như CMM/CMMi. ISO không cung cấp các ví dụ và kinh nghiêm cụ thể như CMM/CMMi

III. KẾT LUẬN 

            Thứ nhất phải khẳng định CMM là bước phát triển tất yếu của các tổ chức trong thời đại kinh tế tri thức, bởi vì nó là việc kết hợp qui chuẩn và sáng tạo cho cách hoạt động của tổ chức, không cứng nhắc mà linh hoạt thay đổi theo thực tế. Mô hình về tiến hoá của tổ chức khẳng định điều này. Chúng ta cũng hiểu được vì sao bất kì thời đại, nền văn minh nào cũng có thời kì huy hoàng rồi bị sa sút và diệt vong. Mọi tổ chức không thực hiện việc đổi mới, đưa hiểu biết mới của các lớp trẻ vào, tất yếu sẽ bị diệt vong, đây là điều các cấp lãnh đạo cần nhận rõ. Ngày xưa diệt vong của từng triều đại là hàng trăm năm. Ngày nay sự diệt vong của các tổ chức chỉ là hàng chục năm hoặc chưa đến thế.

            Nếu đó đã là qui luật chung thì các tổ chức của Việt Nam cũng không ngoại lệ. Do đó càng đưa sớm CMM vào thực tế càng tốt và thúc đẩy sự phát triển ở Việt Nam. Nhưng điều thứ hai cần khẳng định là chỉ có thể thực hiện được CMM nếu đấy là nỗ lực của toàn tổ chức, và trong đó cam kết của lãnh đạo là quyết định. Vì vậy việc huấn luyện về CMM phải là huấn luyện cho toàn tổ chức, không phải chỉ là huấn luyện cho đội ngũ kĩ thuật, tuy rằng ban đầu chúng ta vẫn phải xuất phát từ phía kĩ thuật. Các cấp lãnh đạo, có quyền lực cần được học về CMM theo góc độ bảo đảm sự phát triển tiến hoá của tổ chức.


            Và thứ ba, chúng ta cần có được một đội ngũ những người am hiểu về CMM để giới thiệu cho nhiều tổ chức thực hiện. Đội ngũ này phải có khả năng dạy cho mọi loại người trong tổ chức, không chỉ cho các chuyên viên kĩ thuật, người đã sẵn sàng học cái mới. Chúng ta phải đủ khả năng để đối diện với mọi cấp lãnh đạo và cung cấp cho họ những tri thức mới về cách làm việc mới, nhưng phải biết nói theo ngôn ngữ của họ.

Nói chung mình hơi chán đọc lý thuyết suông - chỉ khi nào đi phỏng vấn mới " nghía " qua xíu . Thế nhưng biết được một số mô hình - biết được quy trình của một số công ty lớn để lựa chọn . 

Học kiểm thử phần mềm 
------------------





1) CMMI là gì?

CMMI viết tắt cho Capability Maturity Model Integration - Mô hình trưởng thành năng lực tích hợp - và là khuôn khổ cho cải tiến qui trình phần mềm. Nó dựa trên khái niệm về các thực hành tốt nhất về kĩ nghệ phần mềm và giải thích kỉ luật mà các công ty có thể dùng để cải tiến  tối ưu hóa quy trình phát triển phần mềm và là mô hình gồm nhiều mô hình CMM đơn lẻ 

Như vậy, CMM là khung tiêu chuẩn để đảm bảo sản phẩm làm ra đạt chất lượng. (tương tự tiêu chuẩn ISO ở các lĩnh vực khác). Mô tả các thành phần chính yếu của 1 quá trình phát triển phần mềm hiệu quả. Khi tuân thủ tiêu chuẩn này sẽ làm đơn vị phát triển phần mềm đặt các mục tiêu về chi phí, thời gian, đảm bảo chức năng và chất lượng sản phẩm.

Kiểm thử phần mềm

2) Mục đích sử dụng 

Các công ty thương mại và chính phủ sử dụng mô hình CMMI để hỗ trợ viêc xác định cải tiến quy trình để xây dựng hệ thống, xây dựng phần mềm và phát triển quy trình và sản phẩm tích hợp.
            Công ty sử dụng quy trình này để phát triển, thu thập và duy trì các sản phẩm và dịch vụ và để làm chuẩn cho chính họ chống lại các công ty khác. Các quy trình tốt hơn cũng có thể là những quy trình có giá rẻ hơn và kết quả chất lượng tốt hơn, cũng như là những quy trình này ước tính thời gian thực cho dự án chính xác hơn.
Như vậy , CMMI được sử dụng với các mục đích chính sau: 
- Cải tiến quy trình, nâng cao năng suất, chất lượng sản phẩm, nâng cao lợi nhuận
- Cải thiện khả năng quản lý và giải quyết vấn đề, rủi ro
- Đảm bảo tính ổn định cho các hoạt động và sự phát triển của tổ chức

3) 5 Cấp độ của CMMI 

3.1) CMMI Level 1: (Initial) 

- Khởi đầu (lộn xộn, không theo chuẩn): đây là điểm khởi đầu để sử dụng một quy trình mới.
Level 1 là bước khởi đầu của CMMI,  mọi doanh nghiệp, công ty phần mềm, cá nhóm, cá nhân đều có thể đạt được. Ở lever này CMMI chưa yêu cầu bất kỳ tính năng nào. Ví dụ: không yêu cầu quy trình, không yêu cầu con người, miễn là cá nhân, nhóm, doanh nghiệp… đều làm về phần mềm đều có thể đạt tới mức này 

- Đặc điểm 

Hành chính: Các hoạt động của lực lượng lao động được quan tâm hàng đầu nhưng được thực hiện một cách vỗi vã hấp tấp.

Không thống nhất: Đào tạo quản lý nhân lực nhỏ lẻ chủ yếu dựa vào kinh nghiệp cá nhân.

Quy trách nhiệm: Người quản lý mong bộ phận nhân sự điều hành và kiểm sóat các hoạt động của lực lượng lao động.

Quan liêu: Các hoạt động của lực lượng lao động được đáp ứng ngay mà không cần phân tích ảnh hưởng.

Doanh số thường xuyên thay đổi: Nhân viên không trung thành với tổ chức.

3.2) CMMI Level 2- Managed

Là cấp độ tiếp theo sau level 1, tại level này quy trình đánh giá và phân tích được áp dụng trong quá trình phát triển phần mềm. Đặc điểm:
- Đã có quy trình quản lý yêu cầu, quản lý tiến độ, quản lý sản phẩm và dịch vụ
- Đã có các mốc cho từng trạng thái của sản phẩm, các mốc bàn giao sản phẩm, dịch vụ
- Đã thiết lập và xem xét những ràng buộc giữa các bên liên quan
- Sản phẩm được xem xét bởi tất cả các bên liên quan và phải được kiểm soát
- Sản phẩm hoặc dịch vụ, kết quả của quá trình phải triển phải thỏa mãn được yêu cầu, tiêu chuẩn…

Kiểm thử phần mềm

3.3) Level 3- Defined:

Xác lập (thể chế hóa): Quy trình này được xác lập/ xác nhận như một quy trình doanh nghiệp tiêu chuẩn.

Là cấp độ mà tại đó ngoài các quy trình được áp dụng ở level 2 còn có thêm các quy trình khác như: phát triển yêu cầu, giải pháp kỹ thuật, tích hợp hệ thống, kiểm định, phê duyệt, quản lý rủi ro và phân tích quyết định. 
Đặc điểm:
- Tiêu chuẩn, quy trình, thủ tục trong dự án được biến đỏi để phù hợp với quy trình tiêu chuẩn của mỗi dự án đặc thù hoặc cho mỗi phần của tổ chức
- Các quy trình được định nghĩa chi tiết và khắt khe hơn so với level 2
- Quy trình được quản lý một cách chủ động hơn
- Quy trình chỉ được quản lý theo phỏng đoán
Như vậy , Các vùng tiến trình chủ chốt ở mức 3 nhằm vào cả hai vấn đề về dự án và tổ chức, vì một tổ chức (công ty) tạo nên cấu trúc hạ tầng thể chế các quá trình quản lý và sản xuất phần mềm hiệu quả qua tất cả các dự án. Chúng ập trung Tiến trình Tổ chức (Organization Process Focus), Phân định Tiến trình Tổ chức (Organization Process Definition), Chương trình Đào tạo (Training Program), Quản trị Phần mềm Tích hợp (Integrated Software Management), Sản xuất Sản phẩm Phần mềm (Software Product Engineering), Phối hợp nhóm (Intergroup Coordination), và Xét duyệt ngang hàng (Peer Reviews).

Kiểm thử phần mềm tự động

3.4 Level 4- Quantitatively Managed
Kiểm soát (định lượng): Tiến hành kiểm soát và đo lường quy trình sản xuất phần mềm
Các vùng tiến trình chủ yếu ở mức 4 tập trung vào thiết lập hiểu biết định lượng của cả quá trình sản xuất phần mềm và các sản phẩm phần mềm đang được xây dựng. 

Đó là Quản lý quá trình định lượng (Quantitative Process Management) và Quản lý chất lượng phần mềm (Software Quality Management).



Để đạt được level 4 thì phải đo lường và chuẩn hóa. Đo lường hiệu quả đáp ứng công việc, chuẩn hóac phát triển các kỹ năng, năng lực cốt lõi.

Level 4 này sẽ chú trọng vào những người đứng đầu của một công ty, họ có khả năng quản lý các công việc như thế nào

Tài liệu kiểm thử phần mềm
3.5) Level 5- Optimizing:

Tối ưu (cải tiến quy trình): Kiểm soát quy trình bao gồm việc cân nhắc kỹ để cải tiến/ tối ưu hóa quy trình.
Các vùng tiến trình chủ yếu ở mức 5 bao trùm các vấn mà cả tổ chức và dự án phải nhắm tới để thực hiện hoàn thiện quá trình sản xuất phần mềm liên tục, đo đếm được. Đó là Phòng ngừa lỗi (Defect Prevention), Quản trị thay đổi công nghệ (Technology Change Management), và Quản trị thay đổi quá trình (Process Change Management) Để đạt được level 4 thì phải đo lường và chuẩn hóa. Đo lường hiệu quả đáp ứng công việc, chuẩn hóac phát triển các kỹ năng, năng lực cốt lõi.

Để đạt được Level 5 thì doanh nghiệp đó phải liên tục cải tiến hoạt động tổ chức, tìm kiếm các phương pháp đổi mới để nâng cao năng lực làm việc của lực lượng lao động trong tổ chức, hỗ trợ các nhân phát triển sở trường chuyên môn. 
Chú trọng vào việc quản lý, phát triển  năng lực của nhân viên.

Huấn luyện nhân viên trở thành các chuyên gia.


Xem thêm bài 2: Các lợi ích khi sử dụng CMMI Trong quy trình quản lý chất lượng phần mềm 



Bạn đã từng học kiểm thử tự động , nghe qua và tìm hiểu rất nhiều tool kiểm thử Nhưng bạn có khi nào sử dụng kiểm thử tự động vào Project của mình chưa ? 

Bạn có bao giờ boan khoăn , Project của mình liệu có nên sủ dụng Kiểm thử tự động ?  Khi nào thì sử dụng Kiểm thử tự động , ưu và nhược điểm của kiểm thử tự động là gì ? 

Bài viết dưới đây có thể cho bạn câu trả lời !

1) Kiểm thử phần mềm tự động là gì ?

Là quá trình kiểm tra hệ thống với dữ liệu đầu vào và đầu ra đã xác định trước một cách tự động


Kiểm thử phần mềm

2) Ưu điểm và nhược điểm của Kiểm thử phần mềm tự đông 

2.1. Ưu điểm của kiểm thử tự động :

 - Tính hiệu quả trong công việc : 
Ưu điểm lớn nhất của Kiểm thử tự động là thay thế con người lặp đi lặp lại các bước kiểm thử nhàm chán và làm việc không biết mệt mỏi, không xin nghỉ phép đột xuất khi cần, không lướt web, facebook, chát chit làm ảnh hưởng đến quá trình test , rất tập trung, không hay ăn và vặt và tám chuyện , làm việc chuyên nghiệp,  không hay viện cớ đi WC để nhìn mây nhìn trời . Không than phiền với các trường hợp kiểm tra quy hồi , tránh hao phí về mặt thời gian 

- Độ tin cậy : 
Với những script chuyên nghiệp , một khi đã Execute thành công và nhận về kết quả thì chúng ta có thể an tâm rằng nó sẽ chạy đúng với những gì được yêu cầu . Dù lặp đi lặp lại nhiều lần cũng cho ra các thao tác và kết quả giống nhau do vậy độ ổn định cao , do đó tránh được những rủi ro có thể phát sinh . Ngoài ra, kiểm thử tự động tái tạo lỗi một cách hiệu quả, nhưng bug dạng thinh r thoảng mới xayd ra (sometimes ) hoặc xảy ra một cách ngẫu nhiên ( random) sẽ được repdure một cách dễ dàng , ( tránh gây " xung đột" và " chia rẽ nội bộ" cũng như " ức chế" giữa Dev và QC , góp phần bảo vệ hòa bình thế giới . hjhj) nhờ việc lưu lại các bước một cách tự động giúp dễ dàng kiểm tra 

- Cải thiện chất lượng 
Kiểm thử phần mềm tự động sẽ làm giảm rủi ro về chất lượng sản phẩm, việc kiểm thử được thực hiện một cách nhanh chóng, Không gây mệt mỏi và tránh trương hợp chủ quan cho những trường họp test quy hồi , test tích hợp và test hệ thống ...Có thể tái sử dụng các trường họp kiểm thử 

- Tốc độ xử lý cực nhanh : 
Đương nhiên rồi, bạn cần 5 phút để thực hiện 1 testcase thủ công thì có thể chưa đầy 30s nếu thực hiện tự động , bạn chỉ việc "Run" rồi ngồi chờ kết quả thôi .

- Chi phí thấp : 
Việc rút ngắn thời gian và tiết kiệm nhân lực giúp cho công việc kiểm thử tự động trở nên hiệu quả 

2.2 Nhược điểm của kiểm thử phần mềm tự động 

- Ban đầu, chi phí cho kiểm thử tự động sẽ cao hơn so với kiểm thử bằng tay .
- Tuy kiểm thử tự động có nhiều điểm ưu việt nhưng nó không thể thay thế hoàn toàn kiểm thử bằng tay được . Để thực hiện việc tự động hóa thì vẫn cần có con người , phải bỏ thời gian, công sức và tiền bạc . 
- Mất chi phí cho các công cụ tự động hóa như bản quyền, bảo trì, tìm hiểu , training ...
- Khó mở rộng, khó bảo trì (Poor scalability and maintainability): Trong cùng một dự án, để mở rộng phạm vi cho kiểm thử tự động là khó hơn nhiều so với kiểm thử cách thủ công. 
Số lượng công việc phải làm để mở rộng phạm vi cho kiểm thử tự động là nhiều hơn và khó hơn kiểm thử thủ công.
 Cũng vậy, để cập nhật một test case thủ công, chúng ta chỉ cần mở ra và gõ, rất đơn giản. Nhưng kiểm thử tự động lại không đơn giản như vậy, cập nhật hay chỉnh sửa yêu cầu rất nhiều công việc như debug, thay đổi dữ liệu đầu vào, và cập nhật code mới.

3) Khi nào thì áp dụng Kiểm thử tự động 

 -  Những trường hợp kiểm thử cần thực hiện nhiều lần, thường xuyên phải thực hện regression test ,  một số lượng testcase lớn cần thực hiện trong một thời gian ngắn 

 -Kiểm thử cần thực hiện ở nhiều môi trường khác nhau 

 - Những project có tính ổn định, đặc điểm kĩ thuật được xác định trước , test màn hình・chức năng không thay đổi trong tương lai.
- Những trường họp kiểm thử  xác nhận hoạt động cơ bản( Di chuyển giữa các màn hình , )
- Kiểm tra sự kết hợp của nhiều giá trị đầu vào ở một bước nào đó
 - Kiểm tra nhiều màn hình của dữ liệu đầu vào
 - Mục đầu vào ở nhiều màn hình đăng kí
 - Khi muốn thực thi performance test hoặc load test, kiểm thử tự động gần như là lựa chọn duy nhất

4) Khi nào không nên áp dụng Kiểm thử tự động 

- Đương nhiên là các trường hợp khác với mục " Khi nào cần áp dụng kiểm thử tự động " rồi  , những lại kiểm thử không có tính quy hồi, không được thường xuyên lặp lại .
- Nên nhớ Kiểm thử tự động không thể áp dụng 100% , bởi vậy cho nên  vớii nhiều trường hợp test không yêu cầu hồi quy, đặc điểm kĩ thuật luôn thay đổi thì tự động hóa không mang lại chút hiệu quả mà còn phản tác dụng .
-----------------------------------
Nguồn : tech.blog.framgia 

Học kiểm thử phần mềm tự động 
Group : https://www.facebook.com/groups/1549328495322684/









Kiểm thử phần mềm là một phần của quy trình phần mềm và nó cũng ảnh hưởng theo theo quy trình phát triền phần mềm đã chọn

 ( Xem thêm, sự liên quan giữa Kiểm thử phần mềm và quy trình phần mềm )

1) Đặt vấn đề :

Có rất nhiều quy trình phần mềm được đưa ra và áp dụng , nhưng nhìn chung, vẫn có những hạn chế . Nhất là về mặt thời gian . Một trong những ám ảnh lớn nhất của PM, Dev, QC... chính là vấn đề deadline, phải OT (Overtime) điên cuồng để chạy theo tiến độ dự án tuy nhiên kết quả không khả quan và thường xuyên bị thất bại.
Một trong những nguyên nhân chính cho sự việc trên đó là việc khách hàng thường xuyên thay đổi yêu cầu , ảnh hưởng đến một phần hoặc toàn bộ hệ thống , phải thay đổi và lập lại kế hoạch cho quy trình kế tiếp.  Khiến cho sản phẩm bàn giao không đúng thời hạn .  Vậy vấn đề cấp bách nhất đó chính là hạn chế sự thay đổi quá trình phát triền , vì mọi sự thay đổi sẽ kéo dài thêm thời gian cho dự án, gây mệt mỏi và tốn kém.

2) Giải quyết vấn đề:

Đưa cho khách hàng những gì họ cần một cách nhanh nhất, cấp tốc nhất để họ " không kịp trở tay, không có thời gian suy nghĩ để " đổi chát" , thêm bớt hoặc thay đổi  giúp họ quyết đoán hơn với sự lựa chọn ban đầu .  Đó chính là cốt lỗi của quy trình phát triền tinh gọn  mà ta cùng tìm hiểu dưới đây .

3) Tìm hiểu  quy trình phát triền tinh gọn 

 Hạn chế lãng phí một cách tối đa chính là giá trị cốt lỗi mà quy trình phát triền phần mềm tinh gọn hướng tới  giúp  chúng ta đạt được lợi nhuận tối đa từ phía khách hàng và khách hàng có được những gì họ mong muốn.

Ví dụ như :

- Khách hàng yêu cầu : Anh cần tôi làm 1 cuốn tập, bìa gỗ , hình tam giác , 32 trang, chất liệu giấy trắng, tốt , ngoài bìa có dòng chữ " Học kiểm thử phần mềm" , sau sách có lời cảm ơn và một vài hình ảnh vui nhộn cho phần phụ lục .

- Nhân viên phân tích những rủi ro mà khách hàng có thể thay đổi :

- Bìa gỗ ư , gỗ gì , sơn màu gì , to nhỏ, mỏng dày như thế nào ?
- Hình tam giác đều , tam giác cân hay tam giác vuông ?
- 32 trang là cả phụ lục, giới thiệu hay không ?
- Giấy trắng, tốt ấy dày hay mỏng , muốn có ô ly hay không kẻ ô ly , nếu kẻ ô ly thì theo Style nào ?
- Dòng chữ " Học kiểm thử phần mềm" ghi hoa hay thường, canh giữa hay canh trái, canh phải , Style chữ là gì ....?

Sau khi hỏi xong, có câu trả lời là tiến hành làm ngay, trong quá trình làm không thêm hỏi thêm những phần khác làm khách hàng phân tâm và bắt đầu " đòi hỏi" . Kết thúc công việc và bàn giao với những mục nó đã yêu cầu. Nhận lấy tiền và kết thúc dự án. Không để Khách hàng có cơ hội so sánh quyển tập này với quyển tập khác rồi thay đổi yêu cầu.  Xây dựng nguyên tắc cho thời điểm đưa ra quyết định , hạn chế lãng phí từ tiến trình .

Một số công ty đã áp dụng quy trình này và đạt thành công vang dội như  Microssoft với việc thay đổi hệ điều hành Hoặc IBM với việc cho ra mắt hệ quản trị cơ sở dữ liệu DB2...

4)  Quy tắc vàng của quy trình phát triển phần mềm tinh gọn

-  Thứ nhất là hạn chế lãng phí : Mọi thứ không tăng thêm giá trị cho khách hàng được gọi là lãng phí , bao gồm :

  •   Mã nguồn và chức năng không cần thiết 
  •   Sự chậm trễ trong quá trình phát triền
  •   Yêu cầu mơ hồ, không rõ ràng
  •   Kiểm thử để lặp lại quá trình có thể tránh được 
  •   Những phần việc chưa hoàn chỉnh như Tạo tài liệu, tạo testcase ...
  •   Những chức năng mở rộng 
  •   Overload thời gian khi bị giao quá nhiều việc trong 1 thời điểm 
  •   Thời gian chờ ( Chờ file thiết kế, chờ bản phân tích, chờ Q&A ( question and Answer) 
  •   Thời gian chuyển giao sản phẩm ( chuyển giao và feedback) 
  • Defect - những lỗi không được tìm thấy trong quá trình kiểm thử 
- Thứ 2 Nâng cap kiến thức :
 Mỗi thành viên cần phải học hỏi nhiều nhất có thể để biết được mình làm gì là đúng với yêu cầu khách hàng đưa ra.  Tuy nhiên, môi trường phát triển phần mềm không yêu cầu mọi thứ phải hoàn hảo, không yêu cầu chúng ta phải lên kế hoạch và chỉ làm việc theo kế hoạch, không yêu cầu phải thực hiện đúng ngay từ lần đầu tiên…

- Quy trình phát triển phần mềm tinh gọn tập trung vào việc tăng các phản hồi và rút ra bài học từ đó.

Kiểm thử phần mềm


- Nguyên tắc thứ 3: Trì hoãn quyết định càng muộn càng tốt 
Trì hoãn quyết định là nguyên tắc giúp cho các quyết định trở nên linh hoạt hết mức có thể trong thời gian cho phép trong các trường hợp chưa chắc chắn về yêu cầu khách hàng đưa ra
- Có rất nhiều cách để thực hiện nguyên tắc trên. Ví dụ như:
Chia sẻ từng phần thiết kế hoàn chỉnh
 Tổ chức, hợp tác trực tiếp giữa các thành viên cùng mục đích
Xây dựng các yếu tố phát hiện ra thời điểm chính xác để đưa ra các quyết định
Xây dựng các yếu tố hạn chế thay đổi

Sử dụng các bộ kiểm thử tự động

- Thứ tư là Bàn giao nhanh 

 Càng phát hành sớm các gói sản phẩm, bạn càng nhận lại được nhiều phản hồi sớm hơn về sản phẩm, và chúng có thể được đưa vào các cải tiến trong các phân đoạn tiếp theo của quá trình phát triển. Phân đoạn càng ngắn thì quá trình học tập và giao tiếp càng hiệu quả.
Khách hàng thì luôn đánh giá cao việc chuyển giao nhanh chóng các sản phẩm chất lượng vì chúng
thường giúp gia tăng tính linh hoạt trong hoạt động của họ. Công ty có thể chuyển giao nhanh hơn tốc
độ thay đổi tư duy của khách hàng.

Thứ năm là Trao quyền quyết định cho nhom  phát triển 
Cách tiếp cận tinh gọn ủng hộ việc “tìm người giỏi và để cho họ làm công việc của riêng mình”, quy trình khích lệ, tìm lỗi, loại bỏ những trở ngại, và không quản lý vi mô. Công việc chính của các cấp quản lí không phải là chỉ cho các nhà phát triển những gì họ phải làm, mà chủ yếu lắng nghe họ, đưa ra các phân tích, lời khuyên và tìm kiếm các cải tiến. Với niềm tin “tất cả là ở con người”, Lean ủng hộ chủ trương động viên và khuyến khích để vươn cao hơn trong công việc của mình. Các nhà phát triển nên được trao quyền tiếp cận khách hàng, các lãnh đạo cung cấp hỗ trợ và giúp đỡ trong các tình huống khó khăn, cũng 

Thứ 6: Xây dựng chất lượng 

 Nếu chúng ta muốn của bàn giao sản phẩm nhanh điều đó phụ thuộc vào việc phản hồi của khách hàng, nếu chúng ta muốn thỏa mãn yêu cầu của khách hàng một cách tối đa thì không thể coi nhẹ chất lượng sản phẩm

Thứ 7 , Có cái nhìn bao quát 

Hệ thống phần mềm ngày nay không đơn giản là tổng gộp của các bộ phận, mà còn là sản phẩm của
sự tương tác giữa các thành phần đó. Vì vậy cần thiết phải tính đến các tác động toàn cục khi thực hiện các công việc tối ưu hóa cục bộ. Lỗi trong phần mềm có xu hướng tích lũy trong quá trình phát triển và có liên hệ chặt chẽ với nhau. Cần dừng lại và phân tích các triệu chứng bất ổn khi bắt gặp. Hãy truy nguyên gốc rễ vấn đề. Bằng cách phân rã các nhiệm vụ lớn thành các nhiệm vụ nhỏ hơn, và tiêu chuẩn hóa các giai đoạn phát triển khác nhau, nguyên nhân gốc rễ của các lỗi này cần được phát hiện và loại bỏ.
Tư duy Tinh gọn (Lean Thinking) phải được thấu hiểu bởi tất cả các thành viên của dự án, trước khi triển khai thực hiện trong một tình huống cụ thể, trong thực tế cuộc sống, suy nghĩ. “Hãy suy nghĩ lớn, hành động nhỏ, thất bại nhanh chóng, và học ngay tức thì”. Chỉ khi tất cả các nguyên tắc tinh gọn được tuân thủ đầy đủ, kết hợp với các triển khai phù hợp với môi trường làm việc, chúng ta mới có một cơ sở cho sự thành công trong phát triển phần mềm tinh gọn

-------------------------------

Học kiểm thử phần mềm tự động 




Công nghệ phần mềm và Quy trình kiểm thử có nhiều đều thú vị . Cùng thư giản với  một vài so sánh vui nhé


Xem nhiều nhất

Zui Zui

Nếu bạn không đủ mạnh -Đừng cố đi ngược đám đông