如下图为软件测试全景,我们根据如下图对软件测试有了一个大概的了解
狭义:检测
广义:检测(缺陷)+证明(软件可用)
A、测试是程序的执行过程,目的在于发现错误。
B、一个好的测试用例在于能发现至今未发现的错误。
C、一个成功的测试是发现至今未发现的错误的测试
证明(可以应用,达到需求,功能可用)+检测(并不能穷举)+预防(通过检测的问题,进行数据统计分析)
Alpha测试:内测
Beta测试:公测(未发布让潜在用户测试)
调试:在已知错误的情况下,对软件程序代码作出的一系列检查,矫正的过程。目的是为了解决当前已知的错误。
测试:未知错误的情况下,检查程序代码是否有问题。软件测试是从软件软件质量 保证的角度检查程序是否有误。
软件测试:在规定的条件下,对程序进行操作,以发现缺陷,对软件质量进行评估
软件质量:软件满足规定或潜在用户需求的能力,包括内部质量,外部质量和使用质量
质量保证:QA即英文quality assurance,中文意思是“品质保证”):主要工作是通过预防,检查与改进来保证软件质量。它所关注的是软件质量的检查与测量。着眼软件开发活动中的过程,步骤及产物,而不是对软件进行剖析进而找出问题。
软件测试:测试关心的不是过程的活动,而是对过程的产物以及开发书的软件进行剖析,测试人员要“执行”软件,对过程中的产物—开发文档和源代码进行走查,运行,以找出问题,报告质量。测试人员也必须假设软件存在问题,所以所做的操作都是为了找出更多的问题,而不仅仅验证每一件事是正确的。
A、所有的软件测试都应追溯到用户需求。
B、应当把“尽早地和不断地进行软件测试”作为软件测试者的座右铭。
C、完全测试是不可能的,测试需要终止。(原因1:输入量太大。原因2:输出结果太多
原因3:路径结合太多。)根据测试错误的概率以及软件可靠性要求,确定最佳停止测试时间。
D、测试无法显示软件潜在的缺陷。也就是说测试只能证明软件存在错误而不能证明软件没有错误。
E、充分注意测试的群集现象。经验表明,测试后程序中残存的错误数目与该程序中已发现的错误数目或者检错率成正比。
F、程序应避免检查自己的程序。
G、尽量避免测试的随意性。
按开发阶段来分:单元测试(Unit Testing),集成测试(Integration Testing),系统测试 (System Testing),验收测试(Acceptance Testing 接收测试)。
按测试的实施单位来分:开发方测试,用户测试,第三方测试。
测试依据: 黑盒测试和白盒测试以及灰盒测试(SRS-------黑盒;HLD-------灰盒; LLD--------白盒)
测试对象是否运行:静态测试和动态测试
是否借助工具: 人工测试和自动化测试
项目计划
需求计划:SRS(Software requirment specification):软件需求规格说明书
设计:概要设计(HLD:High lever design)和详细设计(LLD:Low lever
design)
编码:coding
测试:单元测试(LLD),集成测试(HLD):模块间集成,函数间集成,子系统间集成,系统测试(SRS)
运行
维护
最终产品:编译后的软件,用户手册等。
中间产品:如SRS,LLD,HLD,代码等
原文:http://www.cnblogs.com/shanshanliu/p/6347387.html