SlideShare a Scribd company logo
Yung-Chun Chang
Introduction to Software Quality Assurance and Its
Implementation
12/12/2016
Institute of Information Science, Academia Sinica, Taipei, Taiwan.
Email: changyc@iis.sinica.edu.tw
Outline
12/12/2016
2
 Motivation
 Introduction to Unit Test
 AutoTest using Junit
 White-box and Black-box Testing
 Test-driven Development (TDD)
 Integration Testing & Web UI Testing
12/12/2016
3
Motivation - Salary
12/12/2016
4
Manual test Auto test
Motivation - Quality Assurance
12/12/2016
5
Motivation - Debugs
12/12/2016
6
User Guide (specification)
12/12/2016
7
Motivation – Refactoring (重構)
12/12/2016
8
Refactoring is a changing the
structure of code without
changing its behavior.
Improving the Design of Existing Code
Motivation - Continuous Integration (CI)
12/12/2016
9
Motivation - Continuous Integration (cont.)
12/12/2016
10
Version Control Server
Test Server Alert
Continuous
Integration
Development Team
hudson-tray-tracker
CI Server
Motivation - Continuous Integration (cont.)
12/12/2016
11
Test Servers
Test Projects
Motivation - Continuous Integration (cont.)
12/12/2016
12
Motivation - Test-driven Development (TDD)
12/12/2016
13
Q & A
Thanks for your listening
12/12/201614
Yung-Chun Chang
Introduction to Unit Test
12/12/2016
Institute of Information Science, Academia Sinica, Taipei, Taiwan.
Email: changyc@iis.sinica.edu.tw
Why?
12/12/2016
16
@程式發生錯誤,到底是誰錯了?
@交付的程式,到底測過哪些東西了?
@我改了這支程式,會不會害別的程式掛掉?
造成問題的測試案例,往往是最珍貴的,因
為最具代表性,也最具價值。
有了測試案例來輔助說明與保護,可確保在
這樣的測試案例下肯定如同預期般執行。
What?
12/12/2016
17
 Unit Test的定義與基本準則
 一個測試案例只測一種方法
 最小的測試單位
 不與外部(包括檔案、資料庫、網路、服務、物件、類別)直接相依
 不具備邏輯
 測試案例之間相依性為零
What? (cont.)
12/12/2016
18
FIRST
Fast
Independent
Repeatable
Self-
Validating
Timely
可反應驗證結果。單元測試不論成
功 或 失 敗 , 都 應 該 要 從 測 試 的
reporting直接瞭解其意義或失敗原因。
及時。單元測試應該恰好在使其通過的
production code之前撰寫。
Where?
12/12/2016
19
 單元測試的範圍,以定義來說,單元測試是最小的測試單位,在物件導
向中,就是測試一個方法。(all functions?)
 所以,單元測試通常就只關注在測試的目標物件上,而不管目標物件以
外的東西,例如:目標物件所相依的實體物件、相依服務、相依資源、
相依環境等等...
Where? (cont.)
12/12/2016
20
 驗證目標物件之回傳值
 驗證目標物件的狀態改變
 驗證目標物件與外部相依介面的互動方式
Test Target
Test Target
Test Target
1.call
2. evaluate
1.call
3. evaluate
status changes
Target
1.call
3. evaluate
2. interact
Who?
12/12/2016
21
 最應該撰寫的是developer,而非QA/QE
 幾個基本要點:
 設計物件的人員,才能知道物件該怎麼給外面使用。
 由外部使用物件的角度來設計測試案例(requirements)。
When?
12/12/2016
22
 外部需要使用物件,並對其執行結果有所預期時(developing, TDD)
 feature的異動時(modifying, requirement changed)
 出現非預期執行結果時(bug fixing)
軟體測試 V 模型
12/12/2016
23
程序(Process)
驗證(Verification)
確認(Validation)
使用者需求文件
需求擷取
系統分析
系統需求規格
高階設計
軟體設計規格
細部設計
軟體模組規格
程式撰寫
程式碼
單元測試
整合測試
單元測試計畫
整合測試計畫
系統測試
使用者驗收測試
系統測試計畫
驗收準則
測試軟體元件整合
測試系統特性
測試使用者操作
使用者
測試模組內部邏輯
Test Cases的意義
12/12/2016
24
系統分析書、程式規格書、SA/SD文件 等
等... ,最後線上的程式碼,究竟有多少是跟
這些文件中描述的相同呢?
文件越詳細,代表後面修改的effort越大。
Test Cases的意義
12/12/2016
25
可自動執行、馬上執行、快速執行的
物件使用說明書,不會有過期或漏了
更新的問題
不管什麼情況發生,不管在什麼環境
底下,都能確保其執行結果如同預期
所以,測試案例的意義與價值是什麼?
Q & A
Thanks for your listening
12/12/201626
Yung-Chun Chang
AutoTest using JUnit
12/12/2016
Institute of Information Science, Academia Sinica, Taipei, Taiwan.
Email: changyc@iis.sinica.edu.tw
Environment Setting
12/12/2016
28
 安裝J2EE
 下載JDK,並且安裝
 下載Eclipse Neon,安裝至c:
Name Download URL
Eclipse-win32.zip https://goo.gl/DiR5n0
Eclipse-win64.zip https://goo.gl/Ywouwe
Add JUnit Library
12/12/2016
29
 先對專案按右鍵 > Build Path > Configure Build Path
 選擇libraries頁籤,點選Add Library
 選擇JUnit後點Next,選擇JUnit4後點Finish
Create a JUnit Test Case
12/12/2016
30
 New->Other-> JUnit TestCase
Create a JUnit Test Case (cont.)
12/12/2016
31
 Junit不需要任何的main
 Junit 執行時,@Test下的 method就會被執行
 每一個@Test都是獨立的策是個案
 method 名稱必須要 test開頭
 assert..這是Junit 提供的驗證函數,
可以用來檢查兩個值是否相等
assertEquals(預期結果, 實際結果);
右鍵->Run as-> JUnit Test
Junit程式的架構
12/12/2016
32
 New->Other-> JUnit TestCase
Junit程式的架構
12/12/2016
33
在每一個@test前先執行一次:用來作該測試案例的準備工作
在每一個@test後再執行一次:用來作該測試案例的清理工作
在執行class前會先執行一次:用來作測試的準備工作
執行完class後會執行一次:用來作測試的清理工作
一個測試案例
Let’s try it
12/12/2016
34
Case Study:購物網站
12/12/2016
35
系統需求規格 –使用案例圖簡化版
12/12/2016
36
搜尋商品
購物
使用者
瀏覽商品
處理訂單
登入驗證
<<include>>
<<extend>>
<<extend>>
<<include>>
管理者
需求規格 –使用案例規格
12/12/2016
37
 使用者功能
 登入驗證
 輸入帳號密碼,登入系統。
 搜尋商品
 輸入商品名稱,搜尋商店內一個符合該名稱商品的價格。
 購物
 瀏覽所有商品,選取所要購買商品,送出。
 計算購物(車)商品的總和。
 管理者
 處理訂單
 針對每筆購物車訂單中所有商品,查詢是否有庫存,若有庫存則從
庫存中扣除,並處理出貨。
 取得商品類型
 public String getType();
 取得商品名稱
 public String getTitle();
 取得商品價格
 public int getPrice();
 回傳原始價格
軟體模組規格 – Product
38
Product
- type: String
- title: String
- price: int
+ getId()
+ getType()
+ getTitle()
+ getPrice()
 搜尋商品
 Public int searchPriceByTitle()
 回傳原始產品價格
軟體模組規格 – Store.java
39
Store
- items: Product []
- vip: int
- promote: int
- discount: int
- vipDiscount: int
- mass: int+ init()
+ searchPricetByTitle(): int
+ setPromote(int, int, int, int)
+ getTotal()
+ getPromoteTotal()
+ addItem()
+ removeItem()
+ getItemCount()
+ getItem(int)
 計算商品價格
 public int getTotal();
 回傳原始總價格
軟體模組規格 – ShoppingCart.java
40
ShoppingCart
- items: Product []
- vip: int
- promote: int
- discount: int
- vipDiscount: int
+ setPromote(int, int, int, int)
+ getTotal()
+ getPromoteTotal()
+ addItem()
+ removeItem()
+ getItemCount()
+ getItem(int)
+ empty()
購物網站系統畫面
12/12/2016
41
Query
Shopping
menu
QueryResult
Login
建立Web 購物網站系統
12/12/2016
42
 下載專案,並解壓縮至c:
 開啟Eclipse,設定Workspace path = C:SQAworkspace
Name Download URL
SQA.zip https://goo.gl/pM8Htf
Reset Tomcat Server
12/12/2016
43
1
2
4
3
5
Run….
12/12/2016
44
Completed!!
12/12/2016
45
Let’s getting started your first unit test
12/12/2016
46
 點選EC2-Java Resources-src-model-Product.java
 右鍵new – other… - JUnit TestCase
Let’s getting started your first unit test (cont.)
12/12/2016
47
 ProductTest.java
 setUp, tearDown 打勾
 Finish
Let’s getting started your first unit test (cont.)
12/12/2016
48
Let’s getting started your first unit test (cont.)
12/12/2016
49
Success!!!
Let’s getting started your first unit test (cont.)
12/12/2016
50
Failure!!!
Add one more test
12/12/2016
51
Test result - Error
12/12/2016
52
Run all tests of your project
12/12/2016
53
Q & A
Thanks for your listening
12/12/201654
Yung-Chun Chang
White-box and Black-box Testing
12/12/2016
Institute of Information Science, Academia Sinica, Taipei, Taiwan.
Email: changyc@iis.sinica.edu.tw
Basic Concept
12/12/2016
56
 白箱測試(靜態分析 / 靜態程式碼安全性檢測):是種根據程式碼產生測試案
例與測試資料的技術,根據程式碼的內部構造,測試是否依照設計規格
正確運行,找出所有可能的危險以事先預防。
所以,乍看之下似乎白箱測試可
以「完全的」修正程式的錯誤?
Basic Concept (cont.)
12/12/2016
57
 黑箱測試 (動態分析 / 動態程式碼安全性檢測):在不知程式碼的情況下
(Black-box),只能依照產品表現在外的功能效果,測試是否正確地達成任
務。
 黑箱測試的目的在檢驗輸入正確資料時是否會產生正確結果 ,而依據使
用者需求規格設計測試案例的黑箱測試,可以了解程式是否滿足使用者
需求。
了解軟體產品需求功能後進行測試。
不考慮軟體內部邏輯的結構。
Analysis of the pros and cons
12/12/2016
58
 白箱測試
 白箱測試最主要的優點是因為擁有程式碼,所以很容易就能找出弱點的位置,
提供最適當的修正建議,可以有效的幫助測試應用程式。
 有效測試程式細節,確保程式穩定性。
 對程式結構或資料變數使用的錯誤特別有效。
 [缺點]:成本高。
 黑箱測試
 測試案例設計成本低
 從規格及使用者角度考慮問題,對程式外部功能有很 好的效果。
 不容易受到程式影響而產生偏見。
 [缺點]:不容易測到程式細節,無法明確指出是哪一行程式碼有問題。
 [缺點]:若設計大 量測試案例,容易造成重複設計與浪費測試時間。
白箱測試覆蓋率
12/12/2016
59
 透過「覆蓋率」(Coverage Rate) 的分析,可以進一步了解所使用 的測試
方法或是所設計的測試案例,對於所要測試的標的能測試 的範圍、程度
到何種等級。
敘述覆蓋 (Statements Coverage)
12/12/2016
60
 測試個案要能使程式的每個敘述至少都執行一次
 敘述覆蓋是最弱邏輯覆蓋準則
 白箱測試至少要做到此測試。
 指令敘述覆蓋率 = 被測試到的指令敘述 / 全部的指令敘述
1. int foo(int A, int B, int X) {
2. if ((A>1) && (B==0)) {
3. Y=A;
4. }
5. if ((A==2) || (X>1)) {
6. Y=X;
7. }
8. return Y;
9. }
input Expected output
A B X Y
2 0 3 3
1. int foo(int A, int B, int X) {
2. if ((A>1) || (B==0)) {
3. Y=0;
4. }
5. if ((A==2) || (X>0)) {
6. Y=X;
7. }
8. return Y;
9. } 無法測出錯誤!!
分支決策覆蓋(Branches/Decision Coverage)
12/12/2016
61
 使程式每個分支判斷,True和False分支至少執行一次。
 分支決策測試方法嚴密性比敘述覆蓋高。
 使 ((A>1) && (B==0))和((A==2) || (X>1))兩個分支判斷均產生 True 和False
的值。
1. int foo(int A, int B, int X) {
2. if ((A>1) && (B==0)) {
3. Y=A;
4. }
5. if ((A==2) || (X>1)) {
6. Y=X;
7. }
8. return Y;
9. }
Branch 1
Branch 2
input Expected output Branch 1 Branch 2
A B X Y
3 0 3 3 True True
3 1 1 1 False False
1. int foo(int A, int B, int X) {
2. if ((A>2) && (B==0)) {
3. Y=A;
4. }
5. if ((A==2) || (X>1)) {
6. Y=X;
7. }
8. return Y;
9. } 無法測出錯誤!!
條件覆蓋(Condition Coverage)
12/12/2016
62
 程式中每個簡單條件判斷至少執行 True 與 False 一次。
 ((A>1)&&(B==0))分支條件包含(A>1)和(B==0)兩簡單條件。
 ((A==2)||(X>1))分支條件包含(A==2)和(X>1)兩簡單條件。
1. int foo(int A, int B, int X) {
2. if ((A>1) && (B==0)) {
3. Y=A;
4. }
5. if ((A==2) || (X>1)) {
6. Y=X;
7. }
8. return Y;
9. }
Branch 1 Branch 2
input Expected output Branch 1 Branch 2 Branch 3 Branch 4
A B X Y
2 0 3 3 True True True True
1 1 1 1 False False False False
Branch 3 Branch 4
多重條件組合覆蓋(Multiple-condition
Combination Coverage)
12/12/2016
63
 覆蓋每個分支判斷的各種條件組合(不同組合的判斷情況都至少執行一次)。
 第一個分支判斷 4 種條件組合
 (1) A>1,B==0 (2) A>1,B!=0
 (3) A<=1,B==0 (4) A<=1,B!=0
 第二個分支判斷 4 種條件組合
 (5) A==2,X>1 (6) A==2,X<=1
 (7) A!=2,X>1 (8) A!=2,X<=1
input Expected output Case Path
A B X Y
2 0 4 4 (1), (5) a-c-e
2 1 1 1 (2), (6) a-b-e
1 0 2 2 (3), (7) a-b-e
1 1 1 1 (4), (8) a-b-d
1. int foo(int A, int B, int X) {
2. if ((A>1) && (B==0)) {
3. Y=A;
4. }
5. if ((A==2) || (X>1)) {
6. Y=X;
7. }
8. return Y;
9. }a
b c
d e
(A>1) && (B==0)
Y=A
(A==2) || (X>1)
Y=X
沒有覆蓋a-c-d,所以測試還不完全
全面路徑覆蓋(All-Paths Coverage)
12/12/2016
64
 其目標為使測試案例執行 所有程式路徑,每種路徑皆須有一種測試案例,
因此又可稱為窮 舉測試。
 這種測試方法相當嚴密,但所需時間與成本也相當高,實用性不 大。
白箱測試 - 基本路徑測試 (Basic Path)
12/12/2016
65
 主要分析程式碼的執行邏 輯,找出所有可能執行路徑的基本路徑,設計
測試案例以執 行測試。如何由程式碼轉換成流程圖,進而推算基本路徑
則是本測試 的主要程序。
Sequence IF WhileDo WhileCase
if ((x>5) && (y<3)) {
z = z+2;
}
else {
z = z-3;
}
1
2
3,4
1 2
3
4
5
6
7
5,6,7
true
true
false
false
基本路徑測試(cont.)
12/12/2016
66
 針對每條路徑,設計判斷條件的測試案例
 Path 1:
 Path 2:
 Path 3:
 執行每個測試案例,並與期望輸出比較。
 完成所有測試案例後,保證程式中所有敘述都至少被執行一次
1
2
3,4
5,6,7
true
true
false
false
1 2 3,4
1 2 5,6,7
1 5,6,7
Java Code Coverage for Eclipse
12/12/2016
67
 From your Eclipse menu select Help → Install New Software...
 In the Install dialog enter http://update.eclemma.org/ at the Work with field.
 Check the latest EclEmma version and press Next
 Follow the steps in the installation wizard.
1 2
3
4
Restart Eclipse
and then you can see it.
Using the Coverage View
12/12/2016
68
Coverage of ProductTest.java
12/12/2016
69
 Why 88.4?
 Try to fix the failure test
Add a Test Case for Store.SearchPriceByTitle()
12/12/2016
70
 點選類別 Store -> New -> Other -> JUnit -> JUnit Test Case
input Expected output
Product Key price
{("Book", "Java", 50)} Java 50
Coverage of Store.SearchPriceByTitle()
12/12/2016
71
 點選 StoreTest.java,按右鍵 Coverage As – Junit Test
綠色為通過
紅色未通過測試
黃色為部分條件判斷未通過
double click
Toward 100% Coverage Rate
12/12/2016
72
1
2
1
2
找不到的情況
i > 1找到的情況
Refactoring
12/12/2016
73
Refactoring (cont.)
12/12/2016
74
Refactoring (cont.)
12/12/2016
75
Q & A
Thanks for your listening
12/12/201676
Yung-Chun Chang
Test-Driven Development (TDD)
12/12/2016
Institute of Information Science, Academia Sinica, Taipei, Taiwan.
Email: changyc@iis.sinica.edu.tw
Test-driven Development (TDD)
12/12/2016
78
let's getting started
12/12/2016
79
我沒有看到Login.java裡面有驗證登入相關的function,
你藉此試看看TDD吧!!
RED: Write a test, watch it fail
12/12/2016
80
Add-> Other-> JUnit Test Case
GREEN: Write just enough code to pass the test
12/12/2016
81
REFACTOR: Improve the code without
changing its behavior
12/12/2016
82
The developed method cannot be used directly!!
REFACTOR: Improve the code without
changing its behavior (cont.)
12/12/2016
83
於是修改loginValidation
怪怪的!!
但是測試就不通過了!!
測試還要 Customers.read() ??
REFACTOR: Improve the code without
changing its behavior (cont.)
12/12/2016
84
 Break the dependency:測試不用外部資源
 驗證通過後要得到customer,方能setAttribute
REFACTOR: Improve the code without
changing its behavior (cont.)
12/12/2016
85
Strategy Pattern
<<interface>>
ICustomers
+getCustomer()
+getCustomer()
Customers
+getCustomer()
FakeCustomers
Login
Customer : ICustomers
REFACTOR: Improve the code without
changing its behavior (cont.)
12/12/2016
86
REFACTOR: Improve the code without
changing its behavior (cont.)
12/12/2016
87
Q & A
Thanks for your listening
12/12/201688
Yung-Chun Chang
Integration Testing & Web UI Testing
12/12/2016
Institute of Information Science, Academia Sinica, Taipei, Taiwan.
Email: changyc@iis.sinica.edu.tw
Integration Testing
12/12/2016
90
 整合測試,針對的其實就是各物件之間的互動,或是模組運作是否正常。
 如果單元測試的定義,是要獨立的測試目標物件上的行為,那麼整合測
試就是不獨立的測試目標物件。在測試環境中,仿真地黑箱測試每一個
物件的行為,並驗證是否如同預期。
 整合測試大多需耗費較多的時間,善用夜間時間!!
Web UI Testing
12/12/2016
91
How to test multi-browsers??
Selenium
12/12/2016
92
 Browser based Web Application testing tool
 Open Source License
 Support Mobile Testing Android / IOS
 Write Test case using Language of Java, C#, Python, Ruby….
Selenium IDE
12/12/2016
93
 請先到Selenium官網(http://www.seleniumhq.org/download/)下載Selenium
IDE。如下圖所示:
 在 Firefox 瀏覽器的『工具』選單,
點選『自訂』將Selenium IDE拉到
選單中即可使用。
Selenium IDE (cont.)
12/12/2016
94
 操作 Selenium IDE 就像錄影機,在開始「錄製」後,在瀏覽器操作網站的動作就
會被捕捉,產生測試案例(Test Case)的內容。錄製完成後,可以用「播放」重新
把網站操作過程重播一次。
 以 Yahoo搜尋為例,建立一組測試案例包含:
 打開網址 URL:「https://tw.yahoo.com/」
 找到填寫關鍵字的表單文字欄位 ,填入字串『1111』
 按下「搜尋」按鈕
 取得搜尋結果,將第一筆『1111人力銀行|求職找工作、工作找人才的求職網』按下右鍵
選擇『Show All Available commands』->『assertText link= 1111人力銀行|求職找工作、工
作找人才的求職網』
Selenium IDE (cont.)
12/12/2016
95
Selenium WebDriver
12/12/2016
96
 Download Selenium WebDriver
 Add External JARs (all JAR files in lib & client.jar)
selenium-java-3.0.1
Download Selenium.zip
https://goo.gl/Lr982F
Driver for different browsers
12/12/2016
97
 Launching Firefox browser we need Geckodriver
 https://github.com/mozilla/geckodriver/releases
 Launching Chrome browser we need Chrome Driver
 https://sites.google.com/a/chromium.org/chromedriver
Let’s start your first selenium test
12/12/2016
98
 Add a Junit Test Case
Let’s start your first selenium test (cont.)
12/12/2016
99
Import Libraries
12/12/2016
100
1
2
3
4
Run as Junit Test
12/12/2016
101
If you want to launch Chrome browser
12/12/2016
102
Refactoring
12/12/2016
103
Refactoring (cont.)
12/12/2016
104
Q & A
Thanks for your listening
12/12/2016105
12/12/2016
106
Reference
12/12/2016
107
 [軟體工程聯盟] https://sec.openedu.tw/
 [30天快速上手TDD] http://ithelp.ithome.com.tw/articles/10109845
 [本課程完整範例] https://goo.gl/3dGeUH

More Related Content

Viewers also liked

Selenium interview questions
Selenium interview questionsSelenium interview questions
Selenium interview questions
girichinna27
 
Selenium Basics Tutorial
Selenium Basics TutorialSelenium Basics Tutorial
Selenium Basics Tutorial
Clever Moe
 
Introduction to Selenium Web Driver
Introduction to Selenium Web DriverIntroduction to Selenium Web Driver
Introduction to Selenium Web Driver
Return on Intelligence
 
Java Basics for selenium
Java Basics for seleniumJava Basics for selenium
Java Basics for selenium
apoorvams
 
Quality Assurance in Software Ind.
Quality Assurance in Software Ind.Quality Assurance in Software Ind.
Quality Assurance in Software Ind.
Heritage Institute Of Tech,India
 
Automation Testing using Selenium
Automation Testing using SeleniumAutomation Testing using Selenium
Automation Testing using Selenium
Naresh Chintalcheru
 
Quality assurance
Quality assuranceQuality assurance
Quality assurance
surendra sharma
 
Quality Assurance Vs Quality Control
Quality Assurance Vs Quality ControlQuality Assurance Vs Quality Control
Quality Assurance Vs Quality Control
Yogita patil
 
Quality control and quality assurance
Quality control and quality assuranceQuality control and quality assurance
Quality control and quality assurance
Leola Ramirez
 
Quality Assurance & Control
Quality Assurance & ControlQuality Assurance & Control
Quality Assurance & Control
Anand Subramaniam
 
Introduction To Software Quality Assurance
Introduction To Software Quality AssuranceIntroduction To Software Quality Assurance
Introduction To Software Quality Assurance
ruth_reategui
 
Quality assurance
Quality assuranceQuality assurance
Quality assurance
Hareesh Sasidharan
 
QUALITY ASSURANCE
QUALITY ASSURANCEQUALITY ASSURANCE
QUALITY ASSURANCE
Pharmaceutical
 
Test Management introduction
Test Management introductionTest Management introduction
Test Management introduction
Oana Feidi
 

Viewers also liked (14)

Selenium interview questions
Selenium interview questionsSelenium interview questions
Selenium interview questions
 
Selenium Basics Tutorial
Selenium Basics TutorialSelenium Basics Tutorial
Selenium Basics Tutorial
 
Introduction to Selenium Web Driver
Introduction to Selenium Web DriverIntroduction to Selenium Web Driver
Introduction to Selenium Web Driver
 
Java Basics for selenium
Java Basics for seleniumJava Basics for selenium
Java Basics for selenium
 
Quality Assurance in Software Ind.
Quality Assurance in Software Ind.Quality Assurance in Software Ind.
Quality Assurance in Software Ind.
 
Automation Testing using Selenium
Automation Testing using SeleniumAutomation Testing using Selenium
Automation Testing using Selenium
 
Quality assurance
Quality assuranceQuality assurance
Quality assurance
 
Quality Assurance Vs Quality Control
Quality Assurance Vs Quality ControlQuality Assurance Vs Quality Control
Quality Assurance Vs Quality Control
 
Quality control and quality assurance
Quality control and quality assuranceQuality control and quality assurance
Quality control and quality assurance
 
Quality Assurance & Control
Quality Assurance & ControlQuality Assurance & Control
Quality Assurance & Control
 
Introduction To Software Quality Assurance
Introduction To Software Quality AssuranceIntroduction To Software Quality Assurance
Introduction To Software Quality Assurance
 
Quality assurance
Quality assuranceQuality assurance
Quality assurance
 
QUALITY ASSURANCE
QUALITY ASSURANCEQUALITY ASSURANCE
QUALITY ASSURANCE
 
Test Management introduction
Test Management introductionTest Management introduction
Test Management introduction
 

Similar to Introduction to software quality assurance and its implementation

PHPUnit slide formal
PHPUnit slide formalPHPUnit slide formal
PHPUnit slide formaljameslabs
 
同济优秀课程设计 - 软件测试报告
同济优秀课程设计 - 软件测试报告同济优秀课程设计 - 软件测试报告
同济优秀课程设计 - 软件测试报告
Kerry Zhu
 
PHPUnit
PHPUnitPHPUnit
PHPUnit
jameslabs
 
Part04 软件测试方法论
Part04 软件测试方法论Part04 软件测试方法论
Part04 软件测试方法论aellaw
 
Foundation of software development 1
Foundation of software development 1Foundation of software development 1
Foundation of software development 1netdbncku
 
Foundation of software development 2
Foundation of software development 2Foundation of software development 2
Foundation of software development 2netdbncku
 
Nhibernate+sqlite測試實戰經驗分享
Nhibernate+sqlite測試實戰經驗分享Nhibernate+sqlite測試實戰經驗分享
Nhibernate+sqlite測試實戰經驗分享Wade Huang
 
Junit使用指南及作业规范
Junit使用指南及作业规范Junit使用指南及作业规范
Junit使用指南及作业规范
dong jiang
 
Unit test
Unit testUnit test
Unit test
shan chen
 
软件工程 第十一章
软件工程 第十一章软件工程 第十一章
软件工程 第十一章浒 刘
 
2.ie培訓教材
2.ie培訓教材2.ie培訓教材
2.ie培訓教材營松 林
 
軟體系統測試簡介
軟體系統測試簡介軟體系統測試簡介
軟體系統測試簡介
Wei-Tsung Su
 
從理想、到現實的距離,開啟品味軟體測試之路 - 台灣軟體工程協會 (20220813)
從理想、到現實的距離,開啟品味軟體測試之路 - 台灣軟體工程協會 (20220813)從理想、到現實的距離,開啟品味軟體測試之路 - 台灣軟體工程協會 (20220813)
從理想、到現實的距離,開啟品味軟體測試之路 - 台灣軟體工程協會 (20220813)
Rick Hwang
 
分布式系统测试实践
分布式系统测试实践分布式系统测试实践
分布式系统测试实践drewz lin
 
使用 Pytest 進行單元測試 (PyCon TW 2021)
使用 Pytest 進行單元測試 (PyCon TW 2021)使用 Pytest 進行單元測試 (PyCon TW 2021)
使用 Pytest 進行單元測試 (PyCon TW 2021)
Max Lai
 
复件 大型网站性能测试方案的制定与实践
复件 大型网站性能测试方案的制定与实践复件 大型网站性能测试方案的制定与实践
复件 大型网站性能测试方案的制定与实践sharetojsl
 
软件设计原则、模式与应用
软件设计原则、模式与应用软件设计原则、模式与应用
软件设计原则、模式与应用yiditushe
 
Efficient JavaScript Unit Testing (Chinese Version), JavaOne China 2013
Efficient JavaScript Unit Testing (Chinese Version), JavaOne China 2013Efficient JavaScript Unit Testing (Chinese Version), JavaOne China 2013
Efficient JavaScript Unit Testing (Chinese Version), JavaOne China 2013
Hazem Saleh
 

Similar to Introduction to software quality assurance and its implementation (20)

PHPUnit slide formal
PHPUnit slide formalPHPUnit slide formal
PHPUnit slide formal
 
同济优秀课程设计 - 软件测试报告
同济优秀课程设计 - 软件测试报告同济优秀课程设计 - 软件测试报告
同济优秀课程设计 - 软件测试报告
 
PHPUnit
PHPUnitPHPUnit
PHPUnit
 
Part04 软件测试方法论
Part04 软件测试方法论Part04 软件测试方法论
Part04 软件测试方法论
 
Foundation of software development 1
Foundation of software development 1Foundation of software development 1
Foundation of software development 1
 
Foundation of software development 2
Foundation of software development 2Foundation of software development 2
Foundation of software development 2
 
Nhibernate+sqlite測試實戰經驗分享
Nhibernate+sqlite測試實戰經驗分享Nhibernate+sqlite測試實戰經驗分享
Nhibernate+sqlite測試實戰經驗分享
 
Junit使用指南及作业规范
Junit使用指南及作业规范Junit使用指南及作业规范
Junit使用指南及作业规范
 
Unit test
Unit testUnit test
Unit test
 
软件工程 第十一章
软件工程 第十一章软件工程 第十一章
软件工程 第十一章
 
2.ie培訓教材
2.ie培訓教材2.ie培訓教材
2.ie培訓教材
 
軟體系統測試簡介
軟體系統測試簡介軟體系統測試簡介
軟體系統測試簡介
 
從理想、到現實的距離,開啟品味軟體測試之路 - 台灣軟體工程協會 (20220813)
從理想、到現實的距離,開啟品味軟體測試之路 - 台灣軟體工程協會 (20220813)從理想、到現實的距離,開啟品味軟體測試之路 - 台灣軟體工程協會 (20220813)
從理想、到現實的距離,開啟品味軟體測試之路 - 台灣軟體工程協會 (20220813)
 
分布式系统测试实践
分布式系统测试实践分布式系统测试实践
分布式系统测试实践
 
使用 Pytest 進行單元測試 (PyCon TW 2021)
使用 Pytest 進行單元測試 (PyCon TW 2021)使用 Pytest 進行單元測試 (PyCon TW 2021)
使用 Pytest 進行單元測試 (PyCon TW 2021)
 
复件 大型网站性能测试方案的制定与实践
复件 大型网站性能测试方案的制定与实践复件 大型网站性能测试方案的制定与实践
复件 大型网站性能测试方案的制定与实践
 
1 Dmaic D
1 Dmaic D1 Dmaic D
1 Dmaic D
 
软件设计原则、模式与应用
软件设计原则、模式与应用软件设计原则、模式与应用
软件设计原则、模式与应用
 
Efficient JavaScript Unit Testing (Chinese Version), JavaOne China 2013
Efficient JavaScript Unit Testing (Chinese Version), JavaOne China 2013Efficient JavaScript Unit Testing (Chinese Version), JavaOne China 2013
Efficient JavaScript Unit Testing (Chinese Version), JavaOne China 2013
 
jasmine入门指南
jasmine入门指南jasmine入门指南
jasmine入门指南
 

Introduction to software quality assurance and its implementation