六、软件测试
软件测试近年来好像提到了和需求分析同一个高度,有点实力的软件公司都有相应的软件测试队伍,他们的任务就是和开发人员作对,专门和他们过不去,软件开发得好好的,他们就来故意找茬,可在软件工程看来,这样找茬是保证软件质量必不可少的。
其实就软件这种产品的特殊性而言,没有一个软件可以做到没有BUG,从客观上讲测试是找出BUG最直接和有效的方法,当然这样的说法是相对于软件没有发行而言的,在软件工程里BUG粗劣的分法可以分为代码错误和逻辑设计错误。
至于测试软件的方式由于侧重点不同各有不同,主要方式还是在设计测试用例的基础上检验软件的各个组成部分,逐个测试看能不能达到所期望的结果,测试亦分为单元测试、集成测试、确认测试,除此之外还有错误测试,就是故意输入不合法的数据或故意进行非法操作来测试软件。
软件测试的方法:
软件测试的方法一般分成两种类型:静态测试法和动态测试法,而动态测试法又根据测试用例的不同可分为白盒测试和黑盒测试两类。
1、静态测试法
不在计算机上进行测试而采用人工和计算机辅助分析的手段进行检测的方法称为静态测试法。
2、动态测试法
利用计算机来运行相关软件产品进行的测试称为动态测试法,一般而言我们说的软件测试是指动态测试,它可分为白盒测试和黑盒测试。
(1)白盒测试:它把一个软件产品看作一个盒子,而白盒测试就是“打开这个盒子来测试”。测试人员要了解程序的内部结构和处理过程,而测试的主旨就是检查处理过程的细节有无出错。
(2)黑盒测试:黑盒测试是最贴近用户使用角度的测试,它把软件产品看作是一个封闭的盒子,以功能为中心,测试软件的各项功能是否达到设计时的要求。
最后要讲一点就是原则上不要让软件开发人员再作为软件测试人员,因为人一般都有点“自我”心里,自己写的代码自己来测试,一来他会用“合法”的操作和数据来测试,不会出错,而一旦别人进行操作就会出问题,二来无论他是否愿意,都会有意无意的朝证明自己正确的方向进行,这样的测试很难发现重大的错误。
七、软件维护
在软件工程各阶段的活动中,软件维护是时间最长的,一般意义上从软件交付使用的那一刻开始,就正式进入软件维护阶段,可能会由于软件本身写得好或其它的什么原因,持续几十年也说不定,这期间对软件的所有工作可以看作是对软件的维护(包括一般意义上的升级和除虫)。
软件维护的任务有四种类型:校正性维护、适应性维护、完善性维护和预防性维护。(题外话:在工业生产高度自动化的今天,软件出错可能导致整个的生产活动停滞,所以有的软件公司把软件的维护工作形象的称之为“救火”,很明显这种是属于校正性维护,无论一个软件公司多么有实力,技术储备多么雄厚,都无论回避“救火”的问题,但如果已经搞到三天“救火”四次的话,那该公司就要好好的反思一下自己了。)
软件维护的一般流程各个公司视情况会有所不同,一般通过行政手续后就可进行,记住维护工作一定要详细的记录下来,以供以后使用,因为对软件的维护一般都会对软件进行修改,而修改过的软件就和原来的软件文档不一致了,如果没有对所做的修改详细记录,以后可能会引起不必要的麻烦,而软件的维护一般的流程如下:
1、确定维护的类型。
2、对校正性维护要从评价错误的严重性开始。
3、对适应性维护和完善性维护可以视业务繁忙情况而定,也有条件制定比较完善的维护计划。
4、实施维护工作,要确保维护是必要和安全的。
5、维护回顾,看看有没有什么地方做的不对或遗漏的。
6、编写详细的维护日志。
其实“救火”这活并不是一个好差事,除了要读懂以前那程序员的“天书”外,还有听取用户的述苦和牢骚,同时要面对一些不大好看的脸色,错不在你,这我们知道,可谁叫你是“消防队员”呢?