UML和软件测试
时间: 2017-02-28 来源: 楚凡科技
1. uml各种图
UML-Unified Model Language 统一建模语言.是用来对软件密集系统进行可视化建模的一种语言。
UML是在系统分析、设计、开发阶段,说明,可视化,构建和书写一个面向对象软件密集系统的制品的开放方法。
最佳的应用是工程实践,对大规模,复杂系统进行建模方面,特别是在软件架构层次,已经被验证有效。
在UML系统开发中有三个主要的模型:
UML-Unified Model Language 统一建模语言.是用来对软件密集系统进行可视化建模的一种语言。
UML是在系统分析、设计、开发阶段,说明,可视化,构建和书写一个面向对象软件密集系统的制品的开放方法。
最佳的应用是工程实践,对大规模,复杂系统进行建模方面,特别是在软件架构层次,已经被验证有效。
在UML系统开发中有三个主要的模型:
- 功能模型: 从用户的角度展示系统的功能,包括用例图。
- 对象模型: 采用对象,属性,操作,关联等概念展示系统的结构和基础,包括类图。
-
动态模型: 展现系统的内部行为。 包括序列图,活动图,状态图。
2. 类图,时序图
类图描述类、接口、协作及它们之间关系的图 对一组具有相同属性、操作、关系和语义的对象的抽象。
类图描述类、接口、协作及它们之间关系的图 对一组具有相同属性、操作、关系和语义的对象的抽象。
包括名称部分(Name)、属性部分(Attribute)和操作部分(Operation)。
时序图描述了对象之间传送消息的时间顺序,用来表示用例中的行为顺序。
时序图描述了对象之间传送消息的时间顺序,用来表示用例中的行为顺序。
3. UML共享聚合与复合聚合的区别
复合聚合关系是聚合关系的一种形式,子类实例的生命周期依赖于父类实例的生命周期。这种聚合是非共享的,虽然局部不一定要随整体的销毁而被销毁,但整体要么负责保持局部的存活状态,要么负责将其销毁。
比如窗口和菜单 如果在聚集关系中处于部分方的对象可同时参与多个处于整体方对象的构成,则该聚集称为共享聚集。比如课题组和员工。
复合聚合关系是聚合关系的一种形式,子类实例的生命周期依赖于父类实例的生命周期。这种聚合是非共享的,虽然局部不一定要随整体的销毁而被销毁,但整体要么负责保持局部的存活状态,要么负责将其销毁。
比如窗口和菜单 如果在聚集关系中处于部分方的对象可同时参与多个处于整体方对象的构成,则该聚集称为共享聚集。比如课题组和员工。
4. 软件生命周期有哪些阶段?软件测试类型有哪些,区别?
软件测试周期分为如下的阶段:
- Planning 计划阶段
- Analysis 分析阶段
- Design设计阶段
- Construction 书写阶段
- Testing Cycles 测试阶段
- Final Testing完成阶段
- Implementation 执行阶段
从测试的类型来看,测试分为2种:黑盒测试和白盒测试。
黑盒测试又称为功能测试或数据驱动测试,把系统看成一个黑盒子,不考虑程序的内在逻辑,只根据需求规格说明书的要求来检查程序的功能是否符合它的功能说明。
白盒测试又称为结构测试和逻辑驱动测试,允许测试人员对程序内部逻辑结构及有关信息来设计和选择测试用例,对程序的逻辑路径进行测试。
测试用例由测试输入数据以及与之对应的输出结果组成。
测试用例设计的好坏直接决定了测试的效果和结果。
从测试实际的前后过程来看,软件测试上是由一系列的不同测试所组成,这些软件测试的步骤分为:单元测试、组装测试(集成测试)、确认测试和系统测试。
软件开发的过程是自顶向下的,测试则正好相反,以上这些过程就是自底向上,逐步集成的。
- 单元测试(模块测试):针对每个模块进行的测试,可从程序的内部结构出发设计测试用例,多个模块可以平行地对立地测试。通常在编码阶段进行,必要的时候要制作驱动模块和桩模块。
- 集成测试:在单元测试的基础上,将所有模块按照设计要求组装成为系统,必须精心计划,应提交集成测试计划、集成测试规格说明和集成测试分析报告。
- 确认测试:验证软件的功能和性能及其它特性是否与用户的要求一致。
-
系统测试:将软件放在整个计算机环境下,包括软硬件平台、某些支持软件、数据和人员等,在实际运行环境下进行一系列的测试。
5. 软件测试过程?在过程中有哪些工作要做?有哪些不同角色来完成?说出你了解的算法?
详细测试步骤:
1. 书写测试计划
2. 审核测试计划,未通过返回第一步
3. 书写测试用例;
4. 审核测试用例,未通过返回第三步
5. 测试人员按照测试用例逐项进行测试活动,并且将测试结果填写在测试报告上;(测试报告必须覆盖所有测试用例)
6. 测试过程中发现bug,将bug填写在bugzilla上发给集成部经理;(bug状态NEW)
7. 集成部经理接到bugzilla发过来的bug
7.1 对于明显的并且可以立刻解决的bug,将bug发给开发人员;(bug状态ASSIGNED);
7.2 对于不是bug的提交,集成部经理通知测试设计人员和测试人员,对相应文档进行修改; (bug状态RESOLVED,决定设置为INVALID);
7.3 对于目前无法修改的,将这个bug放到下一轮次进行修改;(bug状态RESOLVED,决定设置为REMIND)
8. 开发人员接到发过来的bug立刻修改;(bug状态RESOLVED,决定设置为FIXED)
9. 测试人员接到bugzilla发过来的错误更改信息,应该逐项复测,填写新的测试报告(测试报告必须覆盖上一次中所有REOPENED的测试用例);
10. 如果复测有问题返回第六步(bug状态REOPENED)
11. 否则关闭这项BUG(bug状态CLOSED)
12. 本轮测试中测试用例中有95%一次性通过测试,结束测试任务;
13. 本轮测试中发现的错误有98%经过修改并且通过再次测试(即bug状态CLOSED),返回第五步进行新的一轮测试;
14. 测试任务结束后书写测试总结报告;
15. 正规测试结束进入非正规测试,首先是ALPHA测试,请公司里其他非技术人员以用户角色使用系统。发现bug通知测试人员,测试人员以正规流程处理bug事件;
16. 然后是BETA测试,请用户代表进行测试。发现bug通知测试人员,测试人员以正规流程处理bug事件。 要有宽泛的计算机基础知识。微机原理,数据结构,数据库,操作系统原理,编译原理,逻辑,编程语言,网络,等等
1. 书写测试计划
2. 审核测试计划,未通过返回第一步
3. 书写测试用例;
4. 审核测试用例,未通过返回第三步
5. 测试人员按照测试用例逐项进行测试活动,并且将测试结果填写在测试报告上;(测试报告必须覆盖所有测试用例)
6. 测试过程中发现bug,将bug填写在bugzilla上发给集成部经理;(bug状态NEW)
7. 集成部经理接到bugzilla发过来的bug
7.1 对于明显的并且可以立刻解决的bug,将bug发给开发人员;(bug状态ASSIGNED);
7.2 对于不是bug的提交,集成部经理通知测试设计人员和测试人员,对相应文档进行修改; (bug状态RESOLVED,决定设置为INVALID);
7.3 对于目前无法修改的,将这个bug放到下一轮次进行修改;(bug状态RESOLVED,决定设置为REMIND)
8. 开发人员接到发过来的bug立刻修改;(bug状态RESOLVED,决定设置为FIXED)
9. 测试人员接到bugzilla发过来的错误更改信息,应该逐项复测,填写新的测试报告(测试报告必须覆盖上一次中所有REOPENED的测试用例);
10. 如果复测有问题返回第六步(bug状态REOPENED)
11. 否则关闭这项BUG(bug状态CLOSED)
12. 本轮测试中测试用例中有95%一次性通过测试,结束测试任务;
13. 本轮测试中发现的错误有98%经过修改并且通过再次测试(即bug状态CLOSED),返回第五步进行新的一轮测试;
14. 测试任务结束后书写测试总结报告;
15. 正规测试结束进入非正规测试,首先是ALPHA测试,请公司里其他非技术人员以用户角色使用系统。发现bug通知测试人员,测试人员以正规流程处理bug事件;
16. 然后是BETA测试,请用户代表进行测试。发现bug通知测试人员,测试人员以正规流程处理bug事件。 要有宽泛的计算机基础知识。微机原理,数据结构,数据库,操作系统原理,编译原理,逻辑,编程语言,网络,等等
6. 操作系统有哪些功能?做好测试用例设计的关键?
操作系统是计算机必不可少的系统软件之一.常用的操作有:DOS,WINDOWS操作系统,UNIX/XENIX操作系统跟LINUX操作系统.
操作系统通过处理器管理,存储器管理,文件管理和设备管理来实现对计算机的管理. 处理器管理能够合理的,动态的,协调的管理程序的运行,使计算机最大限度的发挥工作效率. 在计算机上运行的程序和有关数据必须存放在存储器中.存储器管理能够有效地分配很使用系统的存储资源. 文件管理的主要功能是对文件的创建,读写,打开,关闭,检索,增删等的操作,以实现文件的共享,保密和保护作用. 设备管理的功能是组织和管理各种输入,输出设备,以确保这些设备的正常工作 测试用例的设计在很大程度上是由简单到详细且逐步完善的一个过程。其依据需求文档、概要设计、详细设计等参考资料。假如在测试过程中没有测试用例或仅有简单的功能描述,那么测试过程难以控制或测试结果将毫无可靠性而言。网上对测试用例的具体设计的文章也数不胜数了,笔者在这也不重复阐述。
因此,笔者对测试用例的总结为: 简单的测试用例可靠性低、重用性差,且可能导致不同人员理解不同。
操作系统是计算机必不可少的系统软件之一.常用的操作有:DOS,WINDOWS操作系统,UNIX/XENIX操作系统跟LINUX操作系统.
操作系统通过处理器管理,存储器管理,文件管理和设备管理来实现对计算机的管理. 处理器管理能够合理的,动态的,协调的管理程序的运行,使计算机最大限度的发挥工作效率. 在计算机上运行的程序和有关数据必须存放在存储器中.存储器管理能够有效地分配很使用系统的存储资源. 文件管理的主要功能是对文件的创建,读写,打开,关闭,检索,增删等的操作,以实现文件的共享,保密和保护作用. 设备管理的功能是组织和管理各种输入,输出设备,以确保这些设备的正常工作 测试用例的设计在很大程度上是由简单到详细且逐步完善的一个过程。其依据需求文档、概要设计、详细设计等参考资料。假如在测试过程中没有测试用例或仅有简单的功能描述,那么测试过程难以控制或测试结果将毫无可靠性而言。网上对测试用例的具体设计的文章也数不胜数了,笔者在这也不重复阐述。
因此,笔者对测试用例的总结为: 简单的测试用例可靠性低、重用性差,且可能导致不同人员理解不同。
详细的测试用例可靠性高,而且便于估计执行所需时间,易于控制。
我们在设计测试用例时应当考虑以下几点:
第一、时间要求。[是否在测试过程中,测试用例的执行易于控制]
第二、执行者。 [应当考虑不同的测试用例执行者对系统的了解程度]
第三、理解程度。[当把测试用例交付给他人执行时应不需要过多的解释] 所以,测试用例的设计重要性显而易见。
我们在设计测试用例时应当考虑以下几点:
第一、时间要求。[是否在测试过程中,测试用例的执行易于控制]
第二、执行者。 [应当考虑不同的测试用例执行者对系统的了解程度]
第三、理解程度。[当把测试用例交付给他人执行时应不需要过多的解释] 所以,测试用例的设计重要性显而易见。
Trufun致力于软件工程全过程解决方案,提供从需求到测试的完整跟踪过程,愿与各方进行科研、开发等方面的合作。