Topic Học Kiểm thử phần mềm tự động sẽ tiếp tục giới thiệu các lệnh về trong Selenium Webdriver.  Trong baì này, chúng ta sẽ cùng thực hành về Kéo và thả chuột từ vị trí nguồn đến vị trí đích ( Drag and Drop) 

Như các bạn đã biết, một số ứng dụng web có chức năng kéo thả một item từ nơi này đến nơi khác . Làm sao để tự động hóa chức năng này ? 

Selenium Webdriver có cung cấp lớp xử lý " Action"  nhằm xử lý các tương tác về sự kiện chuột và bàn phím như chức năng Hover , Kéo thả  đã nói ở bài trước 

Cách thức hoạt động : 
- Trước tiên nó sẽ xác định vị trí của đối tượng cần di chuyển thông qua lệnh Find Element, Sau đó lại xác định vị trí cần chuyển đến . 
- Gọi lớp Action  của Selenium Webdriver
- Sau đó gọi phương thức Build () để thực hiện hành động

Ví dụ nhé : Hãy viết 1 script thực hiện chức năng KÉO THẢ một Folder "Học kiểm thử phần mềm tự động " Sang Folder "Tài Liệu Selenium WebDriver ".

Tài liệu Selenium Webdriver

Ta lần lượt thực hiện các bước sau :

1) Đăng nhập vào Google Driver  gồm :
 - Email
- Password
- Không check remember
- Click nút đăng nhập

2) Xác định vị trí của Folder " Học Kiểm thử phần mềm tự đông "

3) Xác định vị trí của Folder " Tài liệu WebDriver"

4) Thực hiện Move " Học Kiểm thử phần mềm tự động " Sang " Tài Liệu Selenium WebDriver"

5) Kiểm tra kết quả thực hiện

Đoạn Script như sau

package Tài Liệu Selenium Webdriver Tiếng Việt ;

import java.util.concurrent.TimeUnit;

import org.openqa.selenium.By;

import org.openqa.selenium.WebDriver;

import org.openqa.selenium.WebElement;

import org.openqa.selenium.firefox.FirefoxDriver;

import org.openqa.selenium.interactions.Action;

import org.openqa.selenium.interactions.Actions;

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


public static void main(String[] args) throws InterruptedException {

WebDriver driver = new FirefoxDriver();

// Get URL của Google driver
String URL = "https://drive.google.com/drive/my-drive";
driver.get(URL);
 // It is always advisable to Maximize the window before performing DragNDrop action - Phóng to của sổ

driver.manage().window().maximize();

//Đăng nhập gmail
// Find element Email ID sau đó điền email đã đăng ký 
driver.findElement(By.id("Email")).sendKeys("thanhsuong.py3");

//Find element password sau đó nhập password

driver.findElement(By.id("Passwd")).sendKeys("6677028@123");
WebElement checkRemember = driver.findElement(By.id("PersistentCookie"));

// Bỏ chọn Remember cookies nếu default đã chọn - Bên Firefox nhớ dai lắm, tốt nhất là không nên chọn , hjhj

if (checkRemember.isSelected() == true) {
                   checkRemember.click();
                 }
// Click đăng nhập button 
driver.findElement(By.id("signIn")).click();

// Đợi load trang
driver.manage().timeouts().implicitlyWait(10000, TimeUnit.MILLISECONDS);

WebElement From = driver.findElement(By.xpath
("/html/body/div[4]/div[2]/div[2]/div[2]/div/div/div[3]/div/div/div/div/div[1]/div/div/div[2]/div/div/div[1]/div/div/div/div[1]/div/div/div[2]/div/div[1]/div[2]/div[3]/div"));

WebElement To = driver.findElement(By.xpath
("/html/body/div[4]/div[2]/div[2]/div[2]/div/div/div[3]/div/div/div/div/div[1]/div/div/div[2]/div/div/div[1]/div/div/div/div[1]/div/div/div[2]/div/div[2]/div[2]/div[3]/div"));

Actions builder = new Actions(driver);

Action dragAndDrop = builder.clickAndHold(From)

.moveToElement(To)

.release(To)

.build();

dragAndDrop.perform();

}

}

Xem video : 

----------------------------
Học kiểm thử phần mềm tự động trong topic " Học Selenium Webdriver" cơ bản


Selenium WebDriver - Bài 6 -Keyboard Mouse Events , Uploading Files - Webdriver

Topic Học Kiểm thử phần mềm tự động sẽ tiếp tục giới thiệu các lệnh về trong Selenium Webdriver.  Trong baì này, chúng ta sẽ tìm hiểu cách xử lý chuột ,  bàn phím trong WebDriver  và cách xử lý file upload

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



Xử lý bàn phím và chuột  được thực hiện bằng cách sử dụn Advanced User Interactions API . Nó chứa các Action và Action class  cần thiết để  thực hiện các sự kiện này. Sau đây là các sự kiện bàn phím và chuột thường được sử dụng nhất được cung cấp bởi Actions class



Method
Ý nghĩa
  
clickAndHold()

Nhấp giữ chuột  tại vị trí chuột hiện tại.
contextClick()

Nhấp chuột tại vị trí hiện tại
doubleClick()

Nhấp đôi chuột
dragAndDrop(source, target)
Thực hiện nhấn và giữ ở vị trí của các thành phần nguồn, di chuyển đến vị trí của phần tử mục tiêu, sau đó nhả chuột.
tham số:
Source : Vị trí element
Target : Vị trí move chuột và thả chuột
dragAndDropBy(source, x-offset, y-offset)
Thực hiện nhấn và giữ ở vị trí của các phần tử nguồn, di chuyển và nhả chuột
tham số:
source : vị trí element
xOffset- : Vị trí ngang
yOffset-  : Vị trí dọc
keyDown(modifier_key)
Nhấn giữ phím  trong modifier_key
Modifier_key : Phím bất kỳ trên bàn phím
((Keys.ALT, Keys.SHIFT, or Keys.CONTROL)

keyUp(modifier _key)
Nhấn phím
modifier_key -  phím nhấn bất kỳ  (Keys.ALT, Keys.SHIFT, or Keys.CONTROL)
moveByOffset(x-offset, y-offset)

Move chuột từ vị trí x đến vị trí y
moveToElement(toElement)

Move chuột tới một phần tử
release()

Thả chuột tới 1 vị trí hiện tại
sendKeys(onElement, charsequence)



Một ví dụ về trường hợp Hover chuột nhé .


Mở trang web Demo : http://newtours.demoaut.com/ 
Bình thường  , khi không  Hover chuột, phần tử đó có giá trị màu cam #FFC455  , khi Hover , nó trở thành trong suốt và màu nền  sẽ hiển thị ( Màu xanh )


Kiểm thử phần mềm


Step 1 :
Import the Actions and Action classes.

import org.openqa.selenium.interactions.Action;
import org.openqa.selenium.interactions.Actions;


Step 2 : Khởi tạo  new Actions object.

 Actions builder = new Actions(driver);
 Step 3:
Khởi tạo hành đồng cho new Actions object ở Step 2

 Action mouseOverHome = builder.moveToElement(link_Home).build();


Trong trường hợp này, chúng ta sẽ sử dụng phương thức  moveToElement (), Nó sẽ thực hiện hành động rê chuột qua đối tượng  "Home" . Dùng  build ()  để hoàn thành hành động rê chuột
Step 4:
Sử dụng phương thức perform()  khi thực thi lệnh Action ở Step 3

mouseOverHome.perform();  


Dưới đây là đoạn Script  WebDriver để kiểm tra màu nền của ô đầu tiên ở menu  trước và sau khi chuột  rê chuột

package HocKiemThuPhanMem;

import org.openqa.selenium.*;
import org.openqa.selenium.firefox.FirefoxDriver;

import org.openqa.selenium.interactions.Action;
import org.openqa.selenium.interactions.Actions;

public class HocKiemThuPhanMemPractice{

public static void main(String[] args) {

String baseUrl = "http://newtours.demoaut.com/";
        WebDriver driver = new FirefoxDriver();
      driver.get(baseUrl);      

// Lấy xpath của đối tượng cần kiểm tra
     WebElement ObjectToHover =driver.findElement(By.xpath("/html/body/div/table/tbody/tr/td[1]/table/tbody/tr/td/table/tbody/tr/td/table/tbody/tr[1]"));
    // Lấy màu nền của đối tượng cần kiểm tra
        String bgColorGet = ObjectToHover.getCssValue("background-color");
     
// In màu nền trước khi Hover chuột
       System.out.println("Before hover: "+bgColorGet);

// Thực hiện việc rê chuột
     Actions builder = new Actions(driver);
     Action mouseOverHome = builder
             .moveToElement(ObjectToHover)
             .build();
     mouseOverHome.perform();

// Lấy màu nền khi rê chuột
     bgColorGet = ObjectToHover.getCssValue("background-color");
   
// In màu khi rê chuột
     System.out.println("After hover: "+bgColorGet);
    driver.quit();
}
}


Thực thi đoạn Script sau đó dùng bản màu CSS để kiểm tra kết quả trả về đúng không nhé !

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

Qua bài sau, Bài thứ 7- Chúng ta sẽ thực hành Drag and Drop element nhé 

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




Chuyên mục Kiểm thử di động ( Mobile testing ) hôm nay sẽ bàn luận về vấn đề UI trên Smart Phone .  Là vấn đề mà bất kỳ một kiểm thử viên nào cũng nên biết rõ .

Khách hàng là thượng đế , Khách hàng muốn Team của bạn phát triển thêm nhiều chức năng mới cho ứng dụng của họ . Đương nhiên là phải đồng ý rồi, thế nhưng , bạn nên nhớ, Có thể việc nhồi nhét nhiều chức năng có thể giết chết ứng dụng của bạn đó ! 
Tại sao lại như vậy ? 

Là tại vì, trên smartphone, diện tích màn hình là có giới hạn và số nút, số chức năng trên 1 màn hình liên quan mật thiết đến chất lượng và tính thân thiện của ứng dụng. Những cải thiện hợp lí, những yêu cầu chính đáng đi nữa cũng sẽ trở thành thảm họa nếu số lượng tăng lên và hiển thị " chen chúc" nhau trên màn hình nhỏ hẹp . Và người làm ứng dụng trên di động nên hiểu rằng : 
 -  Nhiều lựa chọn không hẳn là tốt vì có thể nó  gây hoang mang cho người dùng . Nếu chức năng mà bạn thêm vào đó không quá cần thiết thì nghĩa là bạn đang mất nhiều hơn là được.
 -  Khả năng phán đoán của con người sẽ yếu đi nếu mọi chức năng, mọi lựa chọn đều được phơi bày . Diện tích màn hình có thể coi như tiền bảo hiểm, bạn có thể dùng xả láng tùy ý. Tuy nhiên, đến lúc thật sự cần đến nó bạn sẽ bó tay không làm được gì.
 - Không gian màn hình là tài nguyên có hạn , đồng thời cũng là thứ bảo đảm cho sinh mạng của ứng dụng nên phải  biết " tiết kiệm" và sử dụng   họp lý . Vấn đề “mỗi yếu tố chiếm mấy phần màn hình?” là câu hỏi lớn nhất dành cho các nhà thiết kế giao diện cho smartphone. Thêm chức năng cũng đồng nghĩa với việc lấy khả năng mở rộng của app, tính bao quát và diện tích màn hình ra để đánh đổi lấy tính tiện lợi.  
- Không nên quá tham lam, những chức năng thêm vào có thể là vô hạn, nhưng những cái cần được nhấn mạnh thì có hạn. Việc thêm chức năng là việc không  thể Undo được  , Vì sao ư ? 
Chức năng hiển thị ắt sẽ có người dùng, và họ sẽ quen với nó, Nếu  chúng ta undo chức năng đó, nghĩa là chúng ta sẽ nhận một loạt những phàn nàn từ phía user - điều này chẳng ai muốn. Thường thì những người có vai trò đưa ra quyết định trong 1 dự án sẽ không đánh đổi việc bỏ chức năng để gánh lấy rủi ro đó. Kết quả là, chức năng thường chỉ có thêm vào chứ không có bớt đi.
 Đây như  tuyên ngôn chứng minh cho trường hợp , Nếu làm theo tất cả những gì User và khách hàng của bạn yêu cầu thì 99% sẽ  dẫn đến việc ứng dụng đó sẽ bị " phá cho tan nát" và " chết yểu" trước khi trình làng. 


Kiểm thử tự động

 Đây là  MS-Word ở tình trạng hiển thị toàn bộ chức năng của toolbar. Nếu hiển thị hết các chức năng đó thì chúng ta chỉ còn 3 dòng để soạn thảo văn bản trong khi đó chức năng chính của chương trình này là để soạn thảo văn bản .
- Tiếp theo là việc User không thích học lại từ đầu
 Việc thêm chức năng đồng nghĩa với việc cập nhật và làm quen với cái mới . Thực tế đã chứng minh, thói quen người dùng như một loại quán tính, Nếu bạn muốn user học lại cách sử dụng để dùng app được tiện hơn, rất nhiều khả năng user sẽ rời bỏ bạn cùng với cuộc “cách mạng” đó của bạn. Mất thời gian , thay đổi vì một chút tiện lợi hơn thôi mà phải trải nghiệm, làm quen lại từ đầu là một cái giá quá đắt.
Với tâm lí đó, user thường ghét việc layout và vị trí các button trong app bị thay đổi cho dù đó là những thay đổi hợp lí đi chăng nữa. Còn nếu những thay đổi thậm chí không thật sự hợp lí mà chỉ là kết quả của việc mở rộng chức năng vô tổ chức thì bạn nên chuẩn bị tinh thần để đón nhận việc user sẽ xóa app, hơn là việc họ học lại cách sử dụng nó.
- Tất cả không thể cùng đóng vai chính
Khi trên một màn hình đã có quá nhiều thứ rối rắm thì một giải pháp thường được đưa ra là “hãy làm cho cái ABC nào đó  nổi bật lên”.

Bàn về  tính dễ nhìn, về UI nói chung người ta thường có suy nghĩ “cứ nổi bật là sẽ dễ nhìn”. Đây là một sai lầm rất lớn.  “Làm nổi bật cái ABC” nào đó  cũng đồng nghĩa với việc “khiến những gì ngoài cái ABC bớt nổi bật đi”.

- Độ quan trọng của các yếu tố cũng là một khái niệm tương đối. 

Thiết kế layout cho smartphone cũng gần giống với việc nghĩ xem trước khi đi du lịch, nên bỏ những thứ gì trong nhà vào vali để xách đi. Nhà bạn có thể hiểu là ứng dụng trên PC, còn vali của bạn có thể hiểu là ứng dụng trên smartphone.
Về lí mà nói, mang theo tất cả những gì có trong nhà là tiện nhất. Tuy nhiên vấn đề là cái vali của bạn chỉ chứa được một số lượng đồ nhất định thôi. Một chiếc vali nhét đầy những đồ linh tinh, ngược lại sẽ trở thành gánh nặng của bạn. Bạn nhét chúng vào vì muốn tiện lợi nhưng rồi chính chúng sẽ khiến cho tính tiện lợi của chuyến du lịch mất đi.

Đối với app hay đối với chuyến du lịch của bạn cũng vậy, vấn đề không phải là “thứ gì ta cần mang theo?” mà là “thứ gì mà ta không cần mang theo cũng được?”.

Sau khi cho đồ vào vali bạn sẽ cảm thấy nặng lên ngay, nhưng đối với app thì khác – bạn không thể cảm nhận sức nặng đó bằng các giác quan được. Bạn sẽ tiếp tục thêm nhiều thứ vào mà không cảm thấy gì, đến lúc giật mình nhận ra thì app của bạn đã ở tình trạng không thể cứu vãn được nữa rồi.
Mang theo toàn bộ đồ đạc trong nhà đi du lịch là một việc làm vô nghĩa. Đối với app cũng vậy.


Kiem-thu-phan-mem-tu-dong


Xem thêm : Mobile testing 
 Những gạch đầu dòng quan trọng khi kiểm thử ứng dụng trên điện thoại di động
-------------------
Nguồn : tech.blog.framgia 

Học kiểm thử 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 



Xem nhiều nhất

Zui Zui

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