关于软件测试 软件测试
因为测试时从来不希望检测被测系统所有可能的输入、路径和状态,那么应该选择什么?什么时候应该停止测试?什么时候应该暂停测试?怎样编写一个测试包,它可以检测足够多的消息和状态的组合来说明没有失败的操作,但是从实用性来说它又足够的小?
测试提出了许多基本的但却令人困惑的难题,带着这些问题,参加了几次实用软件测试培训。
由 于软件的复杂导致了测试的复杂,所以不能指望培训能给我们很多工作中的实际指导。偏重理论是肯定的,但并非没有意义,虽然理论同样可以从相关的文献资料上得到。
有一些心得,零零散散,记录下来,与大家交流。
一,软件测试员的目标是尽可能早地找出软件缺陷,并确保其得以关闭。仔细思考后,我觉得此目标包含三个含义。
1.软件测试员的基本目标是发现软件缺陷。
这似乎是个不言而喻的事实,但有必要再次强调。因为有时开发小组要测试员只是为了证实软件可以运行,而不是找缺陷。在这种情况下,测试人员也就缺乏不懈努力发现缺陷的探索精神和热情。所以做好测试的首要条件是明确软件测试员的基本目标是发现软件缺陷。
2.软件测试员追求的是尽可能早地找出软件缺陷。
因为软件的修复费用,随着时间的推移,将数十倍的增长,所以软件测试员应尽可能早地找出软件缺陷。对于大型的软件,在软件开发的同时,就应该有紧随其后的测试,如果等到产品已经开发完毕才开始测试,非常有可能引起大量耗时费力的返工。而如何尽可能早的找出缺陷?理论上有一些测试方法:静态黑盒测试、动态黑盒测试、静态白盒测试、动态白盒测试;配置测试、兼容性测试、易用性测试……,怎样才能有效的用这些方法尽早的发现软件缺陷,需要在工作实践中不断的摸索、总结,不断的提高测试能力。针对公司的情况,如果软件的规模不是很大,开发中的测试工作可能由开发人员完成比较合适。
3.软件测试人员必需确保找出的软件缺陷得以关闭。
并不是每个软件缺陷都有必要修复的。可能是由于没有足够的时间、不算作真正的软件缺陷、修复的风险太大等原因,产品开发小组决定对一些软件缺陷不作修复。但是,测试人员必需确保找出的软件缺陷得以关闭,也就是说一旦登记了软件缺陷,就要跟踪其生命周期,监视其状态,提供必要的信息确保其得到修复和关闭。
二,关于Testware。
有个很简洁明了的定义,software development engineers produce software, software test engineers produce testware. 那么testware包含哪些内容呢?test strategy, test plan, test specifications, test procedures, test cases, test reports, test data, test
scripts,defects data等等。同软件一样,testware也需要很好地维护。例如,由于修复缺陷改变了软件的接口,那么case和自动测试脚本script都要做相应的修改。
三,对产品说明书的测试。
软件的产品功能说明书对产品最终需要实现的功能作了描述。这些功能是最终确定的需要满足的客户需求,也包括软件必须具备的能力。在规范的软件开发流程中,产品功能说明书应在确定用户需求后,进行系统概要设计前确定。