ALDL

软件质量保证与测试 FQA

上一篇 / 下一篇  2007-06-18 22:48:10

针对大家对软件质量和测试的一些问题,参考了相关资料整理了此文档,并不断补充。

  • 什么是软件质量保证( Software Quality Assurance——SQA )
    主要从预防(prevention)的角度,透过监控来改近真个软件开发流程,并确认所有的标准与流程都被遵守,所有的问题都被找到并解决。所以,软件质量保证是与真个软件开发流程是息息相关的,而不是单单只有软梯测试而已。例如:在需求阶段,可能会要求真正的使用者参与,以确保需求真正的是使用者想要的,甚至透过互动的方式,帮助使用者找出更明确的需求。或者开发团队可能会采用问题跟踪管理。要求撰写文件。在编写代码阶段,可能会采取Code Review方式,减少defect产生的机会等。总之一切的活动在与预防软件质量的降低。
  • 什么是软件测试( Software Testing )
    主要从检测( detection )的角度,透过不同的条件验证系統的结果是否为预期的结果,例如使用者操作应用程序、执行某项的操作、并验证某个预期的结果是否发生,而验证的条件可以是正常与非正常的。
  • 最近有哪些严重的灾害或损失是由软件的臭虫( bugs )所造成的?
    • 2004年农历年前ATM跨行系统大当机!财金公司把矛头指向「瞬间交易量爆增」。不过,交易量还在系统的容许范围,财金公司无法确定系统当机的真正原因,已经向国外专家求援。
    • 200311月美商花旗银行台北分行日前发生网路信用卡客户资料外泄,财政部金融局今天要求花旗停止发行新信用卡一个月,至于花旗已经停止的网路申请及相关业务,必须继续停止三个月,直到问题有改善为止。
    • 20031020日财金公司因通讯控制机发生间歇不稳定,导致ATM交易延迟,财政部今天终于公布原因,金融局局长曾国烈表示,华南银行当天早上传送非约定信息,导致系统不稳定,经过专家建议已修改相关参数值,以处理瞬间大量的信息。

·        为什么管理层对于软件测试于保证( Quality Assurance )总是不重视?
解决问题大家都可以看到表现,但是预防问题确很难看到绩效,我们可以从一个简单的中国语言可以看出这个道理:
魏文王问名医扁鹊说:「你们家兄弟三人,都精于医术,到底哪一位最好呢?」
扁鹊答说:「长兄最好,二兄次之,我最差。」
文王再问:「那么为什么你最出名呢?」
扁鹊回答:「我长兄治病,是治于病情发作之前。由于一般人不知道他事先能铲除病因,所以他的名气无法传出去,只有我們家的人才知道。」
扁鹊又说:「我二兄治病,是治病于病情初起之时。一般人以为他只能治轻微的小病,所以他的名气只有本乡人知道。」
扁鹊再说:「而我扁鹊治病,是治病于病情严重之时。一般人都看到我在经脉上穿针管来放血、在皮肤上敷药等大手术,所以以为我的医术高明,名气因此传遍全国。」
文王说:「你说得好极了。」

  • 为什么软件会有臭虫( bugs )
    • 沟通不良或是完全沒有沟通:开发人员不了解客户要的时什么(软件需求)。
    • 软件太复杂:现今的软件已经太过于复杂,不管是Windows视窗软件、client/server、分散式架构、资料沟通、关联性资料库,每一部分都需要且具备专业知识,导致没有经验的开发人员无法全部了解并融会贯通。
    • 程序设计错误:程序设计师也是人,当然也会犯错。
    • 需求变更(不管有没有文件):需求的变更影响的层面非常广泛,如重新设计、重新安排计划、已经完成的工作可能要重做,甚至抛弃、硬件需求的影响等等,客户可能不了解变更的困难于成本,或是客户了解仍坚持要变更。
    • 时间压力:专家的时间表非常难以估计,通常都是以猜测的方式预估的。当结案的期限渐渐逼近,而危机也逐渐浮现时,错误也可能随之产生。
    • 过于自负:没问题、简单啦、我等一下就解决啦、更新程序代码很容易啦。
    • 缺乏文件:没有一个良好的文件管理体制,更严重的就根本没有文件记录。
    • 开发工具:视觉化开发工具、类库、编译器可能本身也有bug或是文件不足的问题,也有可能导致开发出有bug的软件。

·        什么是性能测试、负载测试、压力测试

o        性能测试——泛指所有测试系统的性能测试,如负载测试(Load Test)、压力测试(Stress Test),通常会以系统回应时间或是同时可以有多少使用者上线为指标。

o        负载测试(Load Test)——用以验证系统在真是使用的负载下,是否能达到预期的效果指标。

o        压力测试(Stress Test)——用以验证系统在超出预期的负载下,系统的功能是否还是正常的。

  • 如何将质量保证引进组织中?

  • 什么是验证( verification )什么又是确认( validation )

  • 什么是"walkthrough"

  • 什么是"inspection"

  • 哪些测试应该被考虑进来?

  • 5个开发流程中最常见的问题?

  • 5个解决开发流程中最常见问题的方案?

  • 什么是软件质量( quality )

  • 什么是好的程序代码?
  • 什么是好的设计?

  • 什么是SEICMM? ISOIEEEANSI可以带来什么好处?

  • 什么是软件生命周期?
  • 自动测试工具会让测试变得更容易吗?

TAG:

 

评分:0

我来说两句

日历

« 2024-04-22  
 123456
78910111213
14151617181920
21222324252627
282930    

我的存档

数据统计

  • 访问量: 139732
  • 日志数: 8
  • 建立时间: 2007-06-18
  • 更新时间: 2007-06-23

RSS订阅

Open Toolbar