--------------------------------------------------------------------------------
Design
This is architecture document phase 本阶段是完成测试内部文档的阶段,这些文档大部分都是在分析阶段形成了大体的组织结构和大纲的文档,像测试用例之类的都有了一些基本的描述,本阶段主要的工作就是完成这些文档的最终书写。在本阶段后,基本上测试计划,测试时间表,测试数据,各种相关文档都应该处于完成阶段。当然,仍然可以通过设计的危机处理机制进行更新。 但是特别要指出的是,测试用例并不能够在本阶段完成。由于新功能的添加,具体功能的实现方法,修改功能等因素,测试用例只能不断的更新。 Revise Test plan base on changes 根据具体的变化重新调整测试计划。 Revise Test Cycle matrices and timelines 根据计划的调整,调整各个测试轮次的内容和时间。 Revise Functional Matrix 根据变化调整功能设置。 Verify that test case and test data 确认已有的测试用例和测试数据仍然有效。 Continual write test cases and add new test cases base on changes 继续书写已经设定的测试用例和添加新的测试用例。一个测试用例,在本文中在上个阶段书写的时候可能只有一个简单的描述,具体的测试步骤需要后面填写。有的时候,有些测试用例事先没有考虑到,有些是重复的,所以需要删改。 Develop Risk Assessment Criteria 设置风险评估标准。通过设置风险评估,可以有效的帮助我们灵活的调整计划。比如,某个测试轮次是需要50个小时完成,而我们风险评估标准将这类测试设定为时间值应该设置为150%,也就是说,在计划中应该填写75小时为实际设定完成时间。 Finalize test cycles 最终完成各个测试轮次的设置。在本阶段结束后,除非有其他的特殊情况,通过预先设置的危机处理方法处理外,不再修改。 Finalize Test plan 完成测试计划。 Estimate resource to support development in unit testing 评估支持开发人员进行单元测试的可行性。有些项目,需要测试人员去帮助开发人员进行单元测试。
--------------------------------------------------------------------------------
Construction
This is unit and model testing phase 本阶段是在开发人员编码的同时,最终完成系统预先设置的各种测试用例的阶段。本阶段的很多工作其实在上个阶段就已经涉及到了。本阶段完成后,进入测试的主要阶段,对产品进行实现设定的各种测试。 Complete unit testing 完成单元测试 Complete all test case manual 完成所有的手工测试用例。随着系统不断开发,在拿到一个完整的软件版本之后,基本上手工测试用例都能够完成书写。 Complete auto testing tools 完成自动测试工具的开发。这个阶段可以设计编写一些专用的自动测试工具。 Complete Stress test case 完成压力测试用例 Complete performance test case 完成性能测试用例 Review the functional matrix 重新复检功能表 Complete auto test case 完成自动测试用例
--------------------------------------------------------------------------------
Test Cycle
This is phase that to run Test Cycle(s), report bugs, verifies Bug fixes etc. 这个阶段就是最费时间的阶段了。按照实现制定好的计划,利用各种资源,工具,依循实现书写的测试用例对系统进行一轮轮的测试,直到代码冻结阶段。本阶段也包含了不断设置的回归测试。 1) Test Cycle 1, run first set of test cases 2) Report bugs 3) Bug Verification 4) Revise test cases as required 5) Add test cases as required 6) Test Cycle II 7) Test Cycle III .............. Final testing This is code freeze phase 本阶段是代码冻结后的测试阶段。这个时候需要进行的是最后的验证测试。本轮主要是完成最终的性能,压力,文档测试和UI等测试过程,开始形成系统说明书和用户手册。 Execution of all front to end test case – manual and automated Execution of all back to end test case – manual and automated 上面是在最后进行产品gold的时候,进行的测试,主要是一些大的功能的传测,测试用例一般是对主要功能的一些验证。防止出现最终打包出错等认为因素。 Execute all Stress test Execute all Performance test Execute all UI test Execute all documents test Do the last cycle regression test 以上测试就是最终的功能测试,这个时候一般不在去修改主要的源代码,只是对外观和界面的错误进行修复。只是对现有的一些问题进行跟踪和管理,必要的时候准备出版hot fix版本。
--------------------------------------------------------------------------------
Implementation
This is review entire project phase 本阶段是对整个项目进行总结的阶段。主要是书写一些最终的报告。例如,错误分析报告,包括一共有多少个,有效率是多少,分布情况如何等等。这个阶段主要是将好的经验总结下来,对不足进行思考,为下个项目做准备的放松的阶段。
从上面的叙述来说,这些阶段并不完全的各自独立的阶段。划分的主要依据是根据主要的工作目标而来。各个阶段不但相互影响,而且有时候时间上还会彼此交叉和颠倒。但是,最大的好处就是能够让测试人员更好的理解各项工作的目标和作用。而不是独立的去写测试用例,不管为什么。个人认为,这样把开发的生命周期概念融合进来,尽管这样划分有待讨论,但是可以让那些不熟悉测试的开发人员和测试人员对测试工作有个整体上的感受。所以,本文就是一个入门的普及读物吧。
负面测试(Negative Testing) 用于验证软件不执行其不应该完成的工作。
这一步骤主要依赖于错误猜测,需要依靠测试设计者的经验判断可能出现问题的位置。
适合的技术有: 错误猜测 边界值分析 内部边界值测试 状态转换测试
更多问题,可以查看以下内容:
单元测试和白盒测试是不同的,虽然单元测试和白盒测试都是关注功能,他们都需要代码支持,但是级别不同。白盒测试关注的是类中一个方法的功能,是更小的单位,但是完成一个单元测试可能需要 N 多类,所以说作单元测试需要写驱动和稳定桩,比如查询单元是一个查询包,包括 N 多的测试类、测试数据,运行他需要提供数据的部分,输入参数和发出命令的驱动等等,是比类大的一个整体进行的。 另一个明显的区别是白盒测试不会关注类接口,但是单元测试主要的内容就是类接口测试。
系统测试:在功能实现的基础上,可以加入兼容性,易用性,性能等等。
集成测试:分为功能集成测试和系统集成测试,相互有调用的功能集成,在系统环境下功能相互调用的影响等,使用方法可以任意选用上面的内容。注重功能方面。 集成测试(也叫组装测试,联合测试)是单元测试的逻辑扩展。它的最简单的形式是:两个已经测试过的单元组合成一个组件,并且测试它们之间的接口。从这一层意义上讲,组件是指多个单元的集成聚合。在现实方案中,许多单元组合成组件,而这些组件又聚合成程序的更大部分。方法是测试片段的组合,并最终扩展进程,将您的模块与其他组的模块一起测试。最后,将构成进程的所有模块一起测试。此外,如果程序由多个进程组成,应该成对测试它们,而不是同时测试所有进程。
验证(Verification)与确认(Validation)的区别
验证:验证检查某样东西是否符合之前已定好的标准,如:文档评审,要检查的东西是文档,检查标准就是文档的评审标准,又如:测试软件,要检查的东西就是软件,检查的标准就是软件的规格说明,包括功能说明,性能要求等。
确认:检查软件在最终的运行环境上是否达到预期的目标。一般来说,就是调试、验收测试等,这些工作都是在真正的软件需要运行的环境上进行的,在最终环境上运行软件,确保软件符合使用要求。
. 黑盒测试
黑盒测试也称功能测试或数据驱动测试,它是在已知产品所应具有的功能,通过测试来检测每个功能是否都能正常使用,在测试时,把程序看作一个不能打开的黑盆子,在完全不考虑程序内部结构和内部特性的情况下,测试者在程序接口进行测试,它只检查程序功能是否按照需求规格说明书的规定正常使用,程序是否能适当地接收输入数锯而产生正确的输出信息,并且保持外部信息(如数据库或文件)的完整性。
黑盒测试方法主要有等价类划分、边值分析、因—果图、错误推测等,主要用于软件确认测试。"黑盒"法着眼于程序外部结构、不考虑内部逻辑结构、针对软件界面和软件功能进行测试。"黑盒"法是穷举输入测试,只有把所有可能的输入都作为测试情况使用,才能以这种方法查出程序中所有的错误。实际上测试情况有无穷多个,人们不仅要测试所有合法的输入,而且还要对那些不合法但是可能的输入进行测试。
2. 白盒测试
白盒测试也称结构测试或逻辑驱动测试,它是知道产品内部工作过程,可通过测试来检测产品内部动作是否按照规格说明书的规定正常进行,按照程序内部的结构测试程序,检验程序中的每条通路是否都有能按预定要求正确工作,而不顾它的功能,白盒测试的主要方法有逻辑驱动、基路测试等,主要用于软件验证。
"白盒"法全面了解程序内部逻辑结构、对所有逻辑路径进行测试。"白盒"法是穷举路径测试。在使用这一方案时,测试者必须检查程序的内部结构,从检查程序的逻辑着手,得出测试数据。贯穿程序的独立路径数是天文数字。但即使每条路径都测试了仍然可能有错误。第一,穷举路径测试决不能查出程序违反了设计规范,即程序本身是个错误的程序。第二,穷举路径测试不可能查出程序中因遗漏路径而出错。第三,穷举路径测试可能发现不了一些与数据相关的错误。
3. 灰盒测试
灰盒测试,确实是介于二者之间的,可以这样理解,灰盒测试关注输出对于输入的正确性,同时也关注内部表现,但这种关注不象白盒那样详细、完整,只是通过一些表征性的现象、事件、标志来判断内部的运行状态,有时候输出是正确的,但内部其实已经错误了,这种情况非常多,如果每次都通过白盒测试来操作,效率会很低,因此需要采取这样的一种灰盒的方法。
灰盒测试结合了白盒测试盒黑盒测试的要素.它考虑了用户端、特定的系统知识和操作环境。它在系统组件的协同性环境中评价应用软件的设计。
灰盒测试由方法和工具组成,这些方法和工具取材于应用程序的内部知识盒与之交互的环境,能够用于黑盒测试以增强测试效率、错误发现和错误分析的效率。
灰盒测试涉及输入和输出,但使用关于代码和程序操作等通常在测试人员视野之外的信息设计测试。
配置管理(Configuration Management,CM)是通过技术或行政手段对软件产品及其开发过程和生命周期进行控制、规范的一系列措施。配置管理的目标是记录软件产品的演化过程,确保软件开发者在软件生命周期中各个阶段都能得到精确的产品配置。配置管理过程是对处于不断演化、完善过程中的软件产品的管理过程。其最终目标是实现软件产品的完整性、一致性、可控性,使产品极大程度地与用户需求相吻合。它通过控制、记录、追踪对软件的修改和每个修改生成的软件组成部件来实现对软件产品的管理功能。
配置管理系统应该具备以下主要功能:
并行开发支持:因开发和维护的原因,要求能够实现开发人员同时在同一个软件模块上工作,同时对同一个代码部分作不同的修改,即使是跨地域分布的开发团队也能互不干扰,协同工作,而又不失去控制;
修订版管理:跟踪每一个变更的创造者、时间和原因,从而加快问题和缺陷的确定 ;
版本控制:能够简单、明确地重现软件系统的任何一个历史版本 ;
产品发布管理:管理、计划软件的变更,与软件的发布计划、预先定制好的生命周期或相关的质量过程保持一致;项目经理能够随时清晰地了解项目的状态 ;
建立管理:基于软件存储库的版本控制功能,实现建立(build)过程自动化 ;
过程控制:贯彻实施开发规范,包括访问权限控制、开发规则的实施等 ;
变更请求管理:跟踪、管理开发过程中出现的缺陷(Defect)、功能增强请求(RFE)或任务(Task),加强沟通和协作,能够随时了解变更的状态 ;
代码共享:提供良好的存储和访问机制,开发人员可以共享各自的开发资源
What is ISO 9000? Have you ever been in an ISO shop?
ISO 9003 质量体系——最终检验和试验的质量保证模式
软件测试文书
黑盒测试的测试用例设计方法
|
|
|
|
|
·等价类划分方法 等价类划分: 2)划分等价类的方法:下面给出六条确定等价类的原则. 3)设计测试用例:在确立了等价类后,可建立等价类表,列出所有划分出的等价类: 边界值分析法 错误推测法 因果图方法 除了上述几种黑盒测试的测试用例设计方法之外其他方法还包括判定表驱动分析方法、正交实验设计方法、功能图分析方法等 |