软件测试学习的点点滴滴(一)
i. 早期的软件行业发展类似于寻找处女地,例如杀毒软件一个都没有,那你可以作一个。翻译软件一个都没有,你可以作一个,但是当市场渐渐的饱和,没有一个类型的软件同时有好几家都在竞争的时候,那拼的是软件的质量与软件的市场需求。而软件的质量则恰恰就是需要通过软件测试才能提高的部分;
ii. 由于现在市场上面的软件是由许多不同的语言说编写的,主流例如用.net编写的,用JAVA编写的,所以软件测试工程师的总需求量应该是.net java所有语言开发人员的总量。足以说明测试人员需求量的巨大;
iii. 由于低水平的测试人员入门门开很低,所以数量相对也多。而中高级的测试人员需要有扎实的计算机知识的基础,甚至于开发能力,所以现在人员缺口较大;
iv. 由于每个公司的具体情况不同,如果采用通用的测试流程,则效率和损失都是最大的。所以一般都会寻找适合自己的方式,然后选择适合的解决方案以及测试工具来进行测试;
v. 现在最理想以及最规范的测试流程:
1. 当得到客户详细需求分析后,在开发人员还未真正写代码之前,就可以开始写单元测试脚本来验证还未写的代码的正确性;
2. 然后每天拿到单元测试通过的可编译版本软件来进行冒烟测试;
3. 然后进行集成测试,它可能有测试人员来做,也可以由开发人员来做,类似于灰盒测试;
4. 集成测试主要进行接口测试,对那些使用率比较高的核心模块进行测试;
5. 集成测试一般会根据具体要求,选择各种不同的适合的测试工具;
6. 集成测试完成后,会进行系统测试。而系统测试需要需求规格说明书,但是比较遗憾的是一般国内企业需求规格说明书真正做的好的基本都没。所以在这种情况下,比较可行的办法是看软件本身;
vi. IBM的Rational测试理念:
1. 知识域:包含功能测试、性能测试、运行时分析(其实并不能真正的称为测试,因为运行结果并没有对与错,只是程序内部的一些运行信息,可以对后期的开发进行参考);
2. 流程:分配给相关的人员用相关的知识域内的技能来进行测试;
vii. 对于测试这部分,一般公司拿到项目后,会对整个测试流程进行部署,然后选择各种解决方案,最后各个进行实施;
viii. 测试工具的选择面很广,例如Mercury等等,都有一套完整的包含测试各个阶段所使用的工具;
ix. IBM的Rational最新的开发理念为:要把集成和整合的思路放在开发工具里面。如果程序员开发软件,以及测试软件需要两个不同的软件,那效率以及使用方便性方面肯定没有放在一个软件里面强。所以会做很多测试插件在开发工具中;
x. 对于软件测试的未来可以发展成高度自动化测试,既不用写基础代码,也就不需要基础测试了,当然基本我活着还没戏;
xi. 由于现在测试工具主要是由录制回放加脚本驱动组成,所以主要还是解决了测试人员的工作量,并不是真正自动测试;
xii. 有这样一种测试理念:由于开发人员一般都会在开发的时候进行一些测试,所以可以让开发人员来写测试脚本,这样效率更高。但是相应的如果是项目开发就会显得比较困难,因为在真正交付后,有些部分可能一直要变;
xiii. 对开发测试人员的形象比喻为:开发人员是打靶的,有明确的目标。二测试人员是捞鱼的,范围比目标重要;
xiv. 高级测试人员的能力主要是经验,所以工具是无法替代的;