目前分類:軟體工程 (21)

瀏覽方式: 標題列表 簡短摘要

如果您是開發人員,QA工程師或DevOps,則需要進行不同類型的性能測試,以確保每次更改code或添加功能(a)不會中斷系統,並且(b)可以正常運作。但是你應該進行哪種類型的性能測試呢?負載測試和其他類型的測試之間有什麼區別,以及哪種測試適合於哪種情況? 在這篇文章中,我們將介紹這些問題。

 

What is Performance Testing? 什麼是效能測試?

效能測試是檢查系統如何運行和執行的測試通用名稱。 效能測試負責檢查軟體和基礎架構的響應性,穩定性,可擴展性,可靠性,速度和資源使用情況。 不同類型的效能測試為您提供不同的數據,我們將會進一步詳細說明。
 

橘子亂說話 發表在 痞客邦 留言(0) 人氣()

經由上一篇討論過KPI的指標特性,接下來,讓我們分析測試結果來找到bottlenecks吧!

 

Graph 1 - No Bottlenecks

 

graph1

第一張圖顯示了系統超強穩定度:虛擬用戶數量增加,但平均回應時間不受影響。 表示這個系統沒有遇到任何bottlenecks,用戶體驗是一致的。

 

Graph 2 - Bottlenecks that Might Need Fixing

 

文章標籤

橘子亂說話 發表在 痞客邦 留言(0) 人氣()

KPIs (Key Performance Indicators 關鍵效能指標),是衡量我們的結果是否成功的指標。在負載測試(Load Testing)下,KPI能顯示網站和應用程式的用戶和流量測量結果來確定他們的後端Server是否能承受一定數量的負載,舉例來說,販賣演唱會門票的網站在開放售票時,其後端Server是否能承受大量的使用者在同時間操作網站。

 

以下是使用JMeter進行負載測試時需要了解的7個KPI : 
 

1. Number of Users 使用者數量

文章標籤

橘子亂說話 發表在 痞客邦 留言(0) 人氣()

什麼是架構模式呢?總結來說,就是使程式有架構性的開發,目的是為了降底耦合,讓程式更有彈性,更容易維護或更貼近業務需求與目標。

 

Repository (Data-Centered, 類似資源中心)
描述 : 所有的data都是由central repository 管理 , 所有的components 不直接作用而是透過repository
使用時機 : 系統擁有龐大資料被產生且需要存儲時。
文章標籤

橘子亂說話 發表在 痞客邦 留言(0) 人氣()

能力成熟度模型整合(英文:Capability Maturity Model Integration,簡稱CMMI或「希邁」)是一個過程改進方法,它的目的是幫助組織改進他們的績效。「希邁」可以被用於啟動橫貫一個專案、一個部門或一個完整的組織的過程改進,同時他也存在兩種表現方式,「分階段的」(staged)「持續的」(continuous)

 

Staged
Staged 是一個綜合評估方式。分為1~5個階段,階段意義參考下表 : 

●  Initial:初始狀態,表示有經過CMMI評鑑。有管理,但沒有固定工作時程,仰賴組織成員本身能力,容易專案超時或預算超出。

文章標籤

橘子亂說話 發表在 痞客邦 留言(0) 人氣()

軟體配置管理(SCM)是指在開發過程中各階段,管理電腦程式演變的學科,它作為軟體工程的關鍵元素。已經成為軟體開發和維護的重要組成部分。SCM提供了結構化的、有序化的、產品化的管理軟體工程的方法。它涵蓋了軟體生命周期的所有領域並影響所有數據和過程。 配置管理是對產品進行標識、存儲和控制,以維護其完整性、可追溯性以及正確性的學科。

 

我列舉五項SCM主要的任務介紹給大家

Configuration Item Identification:標示配置項,正確標識軟體配置項對整個管理活動非常重要,對軟體開發過程中的所有軟體項目賦予唯一的標識符,便於對其進行狀態控制和管理。

●  由於大型專案會產生出很多文件,而有些文件要被維護很久,需要方便給人識別。

文章標籤

橘子亂說話 發表在 痞客邦 留言(0) 人氣()

Fagan's inspection 是一個結構化的過程,它嘗試在軟體開發的各個階段中發現開發檔案的缺陷,例如程式編碼,規範,設計等等。 它以Michael Fagan的名字命名,被認為是正式的軟體檢查發明者。

 

Steps : 

計劃(Planning):選擇檢驗小組的成員、準備文件和安排會議地點。

概觀(Overview)針對欲檢驗項目替檢驗小組作一般性文件的簡報。

文章標籤

橘子亂說話 發表在 痞客邦 留言(0) 人氣()

White-Box Testing (白箱測試)

又稱為結構測試,其測試方法是根據程式內的結構設計案例,分別驗證其行為的正確性。

通常使用Path testing進行,遍歷所有path。

 

Black-Box Testing (黑箱測試)

橘子亂說話 發表在 痞客邦 留言(0) 人氣()

What is SOLID?

程序設計領域, SOLID(單一功能、開閉原則、里氏替換、接口隔離以及依賴反轉)是由羅伯特·C·馬丁在21世紀早期引入的記憶術首字母縮略字,指代了物件導向編程物件導向設計的五個基本原則。當這些原則被一起應用時,它們使得一個程式設計師開發一個容易進行軟體維護和擴展的系統變得更加可能。[1] SOLID所包含的原則是通過引發編程者進行軟體原始碼代碼重構進行軟體的代碼異味清掃,從而使得軟體清晰可讀以及可擴展時可以應用的指南。SOLID被典型的應用在測試驅動開發上,並且是敏捷開發以及自適應軟體開發的基本原則的重要組成部分。

 

●  Single-responsiblity principle
一個class內應該只有一個改變的理由,意思是一個class應該只需要專注做一件事情,這個理由是當class內需要做兩件以上的工作時,一旦程式需要改變,因為他的耦合度比一件工作還要高,造成變更上的困難,所以盡量避免。

文章標籤

橘子亂說話 發表在 痞客邦 留言(0) 人氣()

MVC模式最早由Trygve Reenskaug在1978年提出 ,是全錄帕羅奧多研究中心(Xerox PARC)在20世紀80年代為程式語言Smalltalk發明的一種軟體架構。MVC模式的目的是實現一種動態的程式設計,使後續對程式的修改和擴充功能簡化,並且使程式某一部分的重複利用成為可能。除此之外,此模式通過對複雜度的簡化,使程式結構更加直覺。軟體系統通過對自身基本部分分離的同時也賦予了各個基本部分應有的功能。專業人員可以通過自身的專長分組:

●  控制器(Controller)- 負責轉發請求,對請求進行處理。

●  視圖(View) - 介面設計人員進行圖形介面設計。

●  模型(Model) - 程式設計師編寫程式應有的功能(實現演算法等等)、資料庫專家進行資料管理和資料庫設計(可以實現具體的功能)。

 

文章標籤

橘子亂說話 發表在 痞客邦 留言(0) 人氣()

功能性需求(Functional Requirements) : 

定義一個軟體系統或元件的功能,也是一個系統需提供的功能及服務。功能可以用一組輸入、行為及輸出的組合來表示。功能需求可以是計算、技術細節、資料處理或其他說明系統希望達成功能的內容。

 

Example : 

●  輸入輸出

文章標籤

橘子亂說話 發表在 痞客邦 留言(1) 人氣()

Extreme programming (XP) 

 

Major practices : 

●  Incremental planning

文章標籤

橘子亂說話 發表在 痞客邦 留言(0) 人氣()

由來 : 

先來說一說敏捷宣言的歷史吧,2001年2月,Martin Fowler,Jim Highsmith等17位著名的軟件開發專家齊聚在美國猶他州雪鳥滑雪聖地,舉行了一次敏捷方法發起者和實踐者的聚會。在這次會議上面,他們正式提出了Agile(敏捷開發)這個概念,並共同簽署了《敏捷宣言》。

 

那內容是什麼呢 ? 我將翻譯過後的版本貼上來分享給大家。

敏捷宣言 :  中文 英文

文章標籤

橘子亂說話 發表在 痞客邦 留言(0) 人氣()

RUP 統一軟體開發過程(Rational Unified Process,RUP)

UML associated process.

Brings together aspects of the above generic models

文章標籤

橘子亂說話 發表在 痞客邦 留言(0) 人氣()

Boehm's spiral model (Risk-Driven) :

圖片來源 : 維基百科

 

1988年,巴利·玻姆Barry Boehm正式發表了軟體系統開發的“螺旋模型”,它將瀑布模型快速原型模型結合起來,強調了其他模型所忽視的風險分析,特別適合於大型複雜的系統,他將模型分為四個階段,每一階段都有特別具體的目標被定義,且每一階段皆會進行風險的評價和降低,以及在開發時可用任何通用的Models,最重要的是每一階段皆會被審查於下一階段的規劃。

文章標籤

橘子亂說話 發表在 痞客邦 留言(0) 人氣()

Incremental delivery

增量式交付方法是介於瀑布式模型演進式開發兩個模型之間的開發方法,它結合了這兩個模型的優點。

Customer value can be delivered with each increment so system functionality is available earlier.  客戶價值在於可較早交付新增的系統功能

 

文章標籤

橘子亂說話 發表在 痞客邦 留言(0) 人氣()

Software prototyping

 

優點:

Improved system usability : 提高系統可用性

A closer match to users’ real needs :更貼近使用者需求

文章標籤

橘子亂說話 發表在 痞客邦 留言(0) 人氣()

Incremental development (be plan-driven or agile)

 

優點 :

文章標籤

橘子亂說話 發表在 痞客邦 留言(0) 人氣()

The waterfall model (Plan-driven)

需求分析與定義:

與系統使用者進行諮商後,定義出系統的服務、限制和目標,之後再詳細定義成系統的規格。

文章標籤

橘子亂說話 發表在 痞客邦 留言(0) 人氣()

學習軟體工程時常常會被問到什麼是V&V? 什麼是IV&V?以下來做個簡單的介紹吧

 

V&V (Verification & Validation) 軟體驗證及確認 : 

是指檢查軟體是否符合規格及其預期目的的程式。

從字面上意思來看,驗證及確認看似很白話,如果沒有實際例子來看實在很難理解它所代表的意思,來個實例說明一下吧 !

文章標籤

橘子亂說話 發表在 痞客邦 留言(1) 人氣()

1 2