`

面试中经常会问道的软件工程的知识

阅读更多
状态描述,问题定义,技术开发,方案综述
一、软件开发模型
1、线形模型(传统模型或瀑布模型):需求分析,概要设计,详细设计,编码,测试,维护
2、原型模型:快速开发出系统原型,在客户参与下不断的重复线形模型的过程完善系统
3、增量模型:先开发出系统的核心功能,在不断的重复线形模型开发系统其他的高级特性
二、软件测试
在软件工程的早期,软件工程师试图由抽象概念到具体实现来建立软件,现在来了测试,工程师创建测试用例试图“摧毁”已经建立的软件
测试不是为了证明软件的正确,而是找出软件中没有被发现的bug
1、黑盒测试:若了解产品的特定功能,则构造测试,同时在各功能中寻找错误;
2、若了解产品的内部构造,则构造测试,以确保“所有的齿轮吻合”,即内部操作依据规约执行,而且所有的内部构件被充分利用

白盒测试:(1)保证一个模块中的所有路径至少被使用一次;(2)对所有逻辑值均需测试true和false;(3)在上下边界及操作范围内运行所有的循环;(4)检查内部数据结构以确保其有效性

黑盒测试:黑盒测试主要发生在测试后期,(1)功能不对或遗漏,(2)界面错误,(3)数据结构或外部数据库访问错误,(4)性能错误,(5)初始化和终止错误


单元测试完成对最小的软件设计单元---模块的验证工作。使用过程设计描述作为指南,对重要的控制路径进行测试以发现模块内的错误。测试的相关复杂度和发现的错误是由单元测试的约束范围来限定的。单元测试通常情况下是面向白盒的,而且这个步骤可以针对多个模块并行进行。
单元测试是一类测试活动,白盒测试是应用的方法

集成测试:自顶向下集成,需要桩来模拟下层模块   自底向上集成需要驱动模块模拟上层模块

alpha测试是由一个用户在开发者的场所来进行的,软件在开发者对用户的指导下进行测试,开发者负责记录错误和使用中出现的问题,alpha测试是在一个受控的环境中进行的。
beta测试是由软件的最终用户在一个或多个用户场所来进行那个的,不象alpha测试,开发者通常来说不会在场,因此,beta测试是软件在一个开发者不能控制的环境中的“活的”应用。用户记录下所有的beta测试中遇到的(真正的或是想象中的)问题,并定期把这些问题报告给开发者,在接到beta测试的问题报告之后,开发者对系统进行最后的修改,然后就开始准备向所有的用户发布最终的软件产品。
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics