摘要
软件测试这关应该在贯穿于软件整个软件的始终,测试的好坏直接影响到软件产品(项目)的质量, 从而进一步影响到客户对于该软件的看法。所以个人觉得软件测试在软件的整个生命过程中扮演了非常重要的角色。
软件测试的几个基本概念
一.软件测试的目的
软件测试的目的在于发现程序中存在的错误,而不是证明程序无错误。一个好的测试用例在于它能发现至今尚未发现的错误。一个成功的测试则是发现了至今未发现的错误。开始我们认为做测试无非是为了证明我们编的程序是无错误的,那是大错特错了。因为bug会因时间不同,条件不同而出现。永远无法证明我们的程序是绝对正确的。
二.Bug存在的原因
1)开发人员不太了解需求,不清楚应该“做什么”和“不做什么”,常常做部和需求的事情,因此产生了Bug .
2)软件系统越来越复杂,开发人员不太可能精通所有的技术,如果不能正确地适用技术,将产生Bug.
3)技术文档普遍比较糟糕,文档本身就有Bug,导致使用者产生更多的Bug.
4)软件需求、设计报告、程序经常发生变更,每次变更都可能产生新的Bug.
5)任何人在编程时都可能犯错,导致程序中的Bug.
6)人们常处于进度的压力之下,急忙之下容易产生Bug,尤其是在起先临近之际.
7)人们过于自信,喜欢说“没问题”,不真实的“没问题”将产生真正的问题.
三.软件测试分类
按测试方式分类,可以把不关心软件内部实现的测试通称为“黑盒测试”。反之,将依赖软件内部实现的测试通称为“白盒测试”。黑盒测试的主要依据是“需求”,而白盒测试的主要依据是“设计”。
按测试阶段分类,测试可分4个主要阶段:单元测试、集成测试、系统测试和验收测试。这是一种“从小到大”、“由内至外”、“循序渐进”的测试过程,体现了“分而治之”的思想。
四. 软件测试"V"模型
当项目一开始,就对应相关的测试阶段。
五.测试的流程
1) 制定测试计划;
2) 设计测试用例;
3) 如满足“启动准则”,执行测试;
4) 撰写测试报告;
5) 消除软件缺陷,如满足“完成准则”,正常结束测试;
六. 有关"单元测试"
MILY: Arial">单元测试一般是由程序员自己编写的。开发人员编写完成某个单元后,先自我检查,然后请同伴进行代码审查,再请同伴进行单元测试,如果发现缺陷,原开发者应当及时修正程序。这样可以尽快地发现程序中存在的错误,及时修正以提高程序开发的效率。有关单元测试内容可以参阅<<单元测试之道C#版>>。
七.测试人员的组织
一.软件测试的目的
软件测试的目的在于发现程序中存在的错误,而不是证明程序无错误。一个好的测试用例在于它能发现至今尚未发现的错误。一个成功的测试则是发现了至今未发现的错误。开始我们认为做测试无非是为了证明我们编的程序是无错误的,那是大错特错了。因为bug会因时间不同,条件不同而出现。永远无法证明我们的程序是绝对正确的。
二.Bug存在的原因
1)开发人员不太了解需求,不清楚应该“做什么”和“不做什么”,常常做部和需求的事情,因此产生了Bug .
2)软件系统越来越复杂,开发人员不太可能精通所有的技术,如果不能正确地适用技术,将产生Bug.
3)技术文档普遍比较糟糕,文档本身就有Bug,导致使用者产生更多的Bug.
4)软件需求、设计报告、程序经常发生变更,每次变更都可能产生新的Bug.
5)任何人在编程时都可能犯错,导致程序中的Bug.
6)人们常处于进度的压力之下,急忙之下容易产生Bug,尤其是在起先临近之际.
7)人们过于自信,喜欢说“没问题”,不真实的“没问题”将产生真正的问题.
三.软件测试分类
按测试方式分类,可以把不关心软件内部实现的测试通称为“黑盒测试”。反之,将依赖软件内部实现的测试通称为“白盒测试”。黑盒测试的主要依据是“需求”,而白盒测试的主要依据是“设计”。
按测试阶段分类,测试可分4个主要阶段:单元测试、集成测试、系统测试和验收测试。这是一种“从小到大”、“由内至外”、“循序渐进”的测试过程,体现了“分而治之”的思想。
四. 软件测试"V"模型
当项目一开始,就对应相关的测试阶段。
五.测试的流程
1) 制定测试计划;
2) 设计测试用例;
3) 如满足“启动准则”,执行测试;
4) 撰写测试报告;
5) 消除软件缺陷,如满足“完成准则”,正常结束测试;
六. 有关"单元测试"
MILY: Arial">单元测试一般是由程序员自己编写的。开发人员编写完成某个单元后,先自我检查,然后请同伴进行代码审查,再请同伴进行单元测试,如果发现缺陷,原开发者应当及时修正程序。这样可以尽快地发现程序中存在的错误,及时修正以提高程序开发的效率。有关单元测试内容可以参阅<<单元测试之道C#版>>。
七.测试人员的组织
条件特别好的公司,可以为每一个开发人员分配一名独立的测试人员。这样的测试人员职业化程度很高,可以完成单元测试、集成测试和系统测试工作,能够实现开发与测试同步进行。开发人员就可以专心地搞开发了。 条件一般的公司,养不起独立的测试小组。单元测试、集成测试工作由项目的开发小组承担。当项目进展到系统测试阶段,可以从项目外抽调一些人员,加上开发人员,临时组织系统测试小组。
八.感悟
软件测试这关应该在贯穿于软件整个软件的始终,测试的好坏直接影响到软件产品(项目)的质量, 从而进一步影响到客户对于该软件的看法。所以个人觉得软件测试在软件的整个生命过程中扮演了非常重要的角色。但是在国内大部分企业对于软件测试还是不重视,大部分中小企业都尚未组建自己的测试团队,往往所有的工作都由开发人员承担了。或者在项目接近尾声的时候,找几个非专业的测试人员搞几个数据,草率地测试一下敷衍了事。这样导致本应及早解决的bug到了晚期才被客户纠出来,不仅给客户留下不好的印象,而且这时修改bug的代价往往是非常高的。
最后还是呼吁要重视软件测试!!
延伸阅读
文章来源于领测软件测试网 https://www.ltesting.net/