#### 1.1外部質量
客戶或者應用程序的終端用戶最關心他們可見的質量問題。下面列出了外部質量包含的幾個方面:
● 功能性(Functionality):指應用程序能夠完成預期的任務。
● 易用性(Usability):指應用程序能夠高效工作并且能夠滿足用戶需求。可訪問性屬于易用性。
● 反應性(Reactivity):指應用程序能夠在短時間內作出反應,這對于滿足用戶需求至關重要。
● 安全性(Security):用戶可感覺到的安全性,尤其是構建成功的軟件的另一重要因素。
● 可用性(Availability)與可靠性(Reliability):對于擁有大量用戶的Web應用程序而言,可用性與可靠性是相當重要的。因為Web應用程序必須能夠承載高負荷甚至可以在異常情況下正常工作。
將應用程序作為一個整體進行測試能夠檢驗軟件外部質量的各個方面,這稱為終端到終端測試(end-to-endtest)。我們可以記錄客戶需求作為驗收測試(acceptancetest)的標準。驗收測試不僅是客戶與開發人員的一種很好的溝通方式,而且可以自動驗證軟件產品是否滿足所有功能需求。
為了提高應用程序的反應,需要檢測其響應時間。可以使用一些輔助的工具和技術手段以確保軟件的低耗費、實現軟件的最優化。將來需要修正應用程序或流量突增時,開發人員和管理者必須能夠知道軟件潛在的瓶頸在哪里,這樣才能確定項目規模。從長遠來看,所有這些信息均有助于軟件可用性與可靠性的質量保證。
#### 1.2內部質量
開發人員與管理人員對于應用程序的需求就是應用程序的內部質量。開發人員關注應用程序的易理解、易調整、易擴充。如果沒有滿足這些需求,以后修改應用程序將會很困難,修改的代價也會很高。這帶來的危害是,對應用程序的一個小小的改動都可能會導致意想不到的副作用。
客戶與終端用戶幾乎覺察不到軟件的內部質量。終端用戶希望軟件滿足其所有需求,至少需要滿足其預期功能并且軟件要易于操作。當然,如果軟件能夠通過驗收測試且運行速度還夠快,那么大多數客戶都會滿意。
但是,內部質量缺陷通常需要在使用一段時期后才能夠暴露出來。即使修正小的故障也不是一蹴而成的事情。對軟件的任何修改和擴展都會花費巨大代價。通常而言,開發人員早晚都會提出申請資金預算,用于整理或者重構代碼,但是客戶或者管理層看不到重構代碼帶來的好處,這樣的申請多半不會被批準。
第2章 將會討論獨立軟件模塊(單元測試)的自動測試。自動測試能夠立即反饋修改代碼時產生的bug,如不借助自動測試技術,代碼重構工作將會非常麻煩。
~~~
質量保證(qualityassurance),或者確切地說,質量管理(quality management)的主要目標是:參與項目的各個方面都認可內部質量的開支和受益。
~~~
* * * * *
[《開發高質量PHP框架與應用的實際案例解析》](http://item.jd.com/11020398.html)