软件测试相关概念

来源:互联网 发布:创业创业软件股票行情 编辑:程序博客网 时间:2024/05/16 10:05

一:软件生命周期和软件测试生命周期的区别

软件生命周期(SDLC,软件生存周期)是软件的产生直到报废的生命周期,周期内有问题定义、可行性分析、总体描述、系统设计、编码、调试和测试、验收与运行、维护升级到废弃等阶段,这种按时间分程的思想方法是软件工程中的一种思想原则,即按部就班、逐步推进,每个阶段都要有定义、工作、审查、形成文档以供交流或备查,以提高软件的质量。

具体的软件生命周期的六个阶段:

1。问题的定义及规划:此阶段是软件开发方与需求方共同讨论,主要确定软件的开发目标及其可行性。
2。需求分析:在确定软件开发可行的情况下,对软件需要实现的各个功能进行详细分析。
3。软件设计:此阶段主要根据需求分析的结果,对整个软件系统进行设计,如系统框架设计,数据库设计等。
4。程序编码:此阶段是将软件设计的结果转换成计算机可运行的程序代码。
5。软件测试:在软件设计完成后要经过严密的测试,以发现软件在整个设计过程中存在的问题并加以纠正。
6。运行维护:是软件生命周期中持续时间最长的阶段。软件的维护包括纠错性维护和改进性维护两个方面。


软件测试生命周期包括5个阶段(大体上):详情百度百科

测试周期分为计划、设计、实现、执行、总结。

计划:对整个测试周期中所有活动进行规划,估计工作量、风险,安排人力物力资源,安排进度等; 

设计:完成测试方案,从技术层面上对测试进行规划;

实现:进行测试用例和测试规程设计;  

执行:根据前期完成的计划、方案、用例、规程等文档,执行测试用例。 

总结:记录测试结果,进行测试分析,完成测试报告。


另外其联系如下:
软件测试生命周期并行与软件生命周期,存在于软件生命周期的各个阶段。


二: 软件质量

1.什么是软件的"质量"?

高质量的软件是适当的、无错误的,能在预算内按时交货,满足需求/或期望,并且是可维护的。所以,质量是一个主观的术语。它取决于谁是客户以及客户对项目计划的影响。对一个软件开发项目来说,"客户"的范围很广,包括最终用户、客户所接受的测试者、与客户合同有关的官员、客户管理、开发机构的管理者/会计/测试人员/销售人员、未来的软件维护工程师、股票持有者、杂志专栏记者,等等。每一类客户对"质量"都有自己的倾向性– 会计部门判断质量会从其收益来考虑,而最终用户则重视友好的用户界面和没有错误。

2.软件质量应该从哪些方面来评价?

可靠性、安全性、性能、易用性、外观、稳定性

3.什么是"软件质量保障"?

软件质量保障涉及到整个软件开发过程,包括监视和改善过程、确保任何经过认可的标准和步骤都被遵循、并且保证问题被发现和被处理。从本质上说,软件质量保障是"预防"。


三:测试类别

1.比较一下黑盒测试、白盒测试、单元测试、集成测试、系统测试、验收测试的区别与联系


黑盒测试:把测试对象当成一个黑盒子,测试人员完全不考虑逻辑结构和内部特性,只依据程式的需求说明书来检查程式的功能是否满足它的功能说明。
白盒测试:把测试对象当成一个透明的盒子,允许测试人员利用程序内部逻辑结构及相关信息,设计或选择测试用例,对程式所有逻辑路径进行测试。
单元测试:白盒测试的一种,对软件设计中的单元模块进行测试。
集成测试:在单元测试的基础上,对单元模块之间的连接和组装进行测试。
系统测试:在所有都考虑的情况下,对系统进行测试。
验收测试:第三方进行的确认软件满足需求的测试。

2.测试用例设计方法都有哪些?请分别以具体的例子来说明这些方法在测试  用例设计工作中的应用。  

    1.等价类划分  
    划分等价类:  等价类是指某个输入域的子集合.在该子集合中,各个输入数据对于揭露程序中的错误都是等效的.并合理地假定:测试某等价类的代表值就等于对这一类其它值的测试.  因此,可以把全部输入数据合理划分为若干等价类,在每一个等价类中取一个数据作为测试的输入条件,就可以用少量代表性的测试数据.取得较好的测试结果.等价类划分可有两种不同的情况:有效等价类和无效等价类.  
    2.边界值分析法  
    边界值分析方法是对等价类划分方法的补充。测试工作经验告诉我,大量的错误是发生在输入或输出范围的边界上,而不是发生在输入输出范围的内部.因此针对各种边界情况设计测试用例,可以查出更多的错误.  
    使用边界值分析方法设计测试用例,首先应确定边界情况.通常输入和输出等价类的边界,  就是应着重测试的边界情况.应当选取正好等于,刚刚大于或刚刚小于边界的值作为测试数据, 而不是选取等价类中的典型值或任意值作为测试数据.  
    3.错误推测法     
   基于经验和直觉推测程序中所有可能存在的各种错误, 从而有针对性的设计测试用例的方法.  
    错误推测方法的基本思想:  列举出程序中所有可能有的错误和容易发生错误的特殊情况,根据他们选择测试用例.  例如,  在单元测试时曾列出的许多在模块中常见的错误.                    以前产品测试中曾经发现的错误等,  这些就是经验的总结.  还有,  输入数据和输出数据为 0 的情况.输入表格为空格或输入表格只有一行.  这些都是容易发生错误的情况.  可选择这些情况下的例子作为测试用例.  
    4.因果图方法  
    前面介绍的等价类划分方法和边界值分析方法,都是着重考虑输入条件,但未考虑输入条件之间的联系,  相互组合等.  考虑输入条件之间的相互组合,可能会产生一些新的情况.  但要检查输入条件的组合不是一件容易的事情, 即使把所有输入条件划分成等价类,他们之间的组合情况也相当多. 因此必须考虑采用一种适合于描述对于多种条件的组合,相应产生多个动作的形式来考虑设计测试用例.  这就需要利用因果图(逻辑模型).因果图方法最终生成的就是判定表.  它适合于检查程序输入条件的各种组合情况.  




四:其他问题

1. 开发与测试的关系

开发和测试是一个有机的整体!在产品的发布之前,开发和测试是循环进行的,测出的缺陷要经开发人员修改后继续测试。在开发的同时测试经理开始编写测试用例,测试文档要参考开发文档,所以开发和测试是不可分割的,少了任何一个都不能开发出产品。从角色方面看,像理论和实验的关系,开发人员通过自己的想象创造出一套思想,之后测试人员再对它进行检验、证伪,开发人员再修改的过程从而不断丰富产品。从方法方面看,是演绎和归纳的关系,一个要掌握大量的技术,一个要不断的从实例中学习。因这两方面的不同,所以开发和测试看上去做的工作很不一样。开发与测试是相辅相承、密不可分的,开发人员开发出新的产品后要通过测试判断产品是否完全满足用户的需求。如果发现缺陷,提交给开发人员进行修复,然后再转交测试人员进行回归测试,直到产品符合需求规格说明。一个符合用户需求的产品是开发和测试共同努力的成果。


2.如果时间不够 ,无法进行充分的测试怎么办?

        使用风险分析,确定测试的重点。
  由于很少有机会对一个应用软件进行所有可能的测试 ( 包括所有可能的事件组合、所有的相关性、或者一切可能出错的东西 ) ,对大多数软件开发项目来说,利用风险分析是适当的。这需要判断技能、常识、感觉和经验。如果有正当理由,也可采用正式的方法。需要考虑下列因素:
  1 对于该项目的用途而言,哪种功能最重要?  
  2 哪种功能对用户最明显?  
  3 哪种功能对安全影响最大?  
  4 哪种功能对用户最有用? 
  5 对客户来说,该应用软件的哪个部分最重要? 
  6 在开发过程中,该应用软件的哪个部分可以最先测试? 
  7 哪一部分代码最复杂,容易导致出现错误? 
  8 哪一部分的应用程序是在急迫或在惊恐的情况下开发出来的? 
  9 哪一部分程序与过去项目中引起问题的部分相类似/有关? 
  10 哪一部分程序与过去项目中需要大量维护的部分相类似/有关? 
  11 需求和设计的那些部分不清楚或不容易读? 
  12 开发人员认为在应用软件中哪些部分是高风险的?  
  13 哪些问题能造成最差的发行?  
  14 哪些问题最能引起用户抱怨?  
  15 哪些测试可以容易地覆盖多种功能?  
  16 哪些测试在覆盖高风险部分的测试时使用时间最少?

0 0