测试活动既可以手动完成,也可以使用自动化工具完成。有些人喜欢讲软件测试成为白盒和黑盒测试。
严格意义来说:
就是以最少的人力、物力和时间找出软件中潜在的各种错误和缺陷,通过修正各种错误和缺陷保障软件质量,避免软件发布后由于潜在的软件错误和缺陷造成的隐患所带来的商业风险。
同时利用测试过程中得到的测试结果和测试信息,作为后续项目开发和测试过程中重复的错误;采用更加高效的测试管理手段,提高软件测试的效率和软件产品的质量。
软件测试工程师的工作就是需要以下两点:
程序做了它应该做的事;
程序没有做它不该做的事;
(1).需求分析与评审
(2).编制测试计划与测试方案
(3).设计测试用例
(4).执行测试用例与缺陷跟踪
(5).撰写测试报告
它确保了高性能,这在需要处理非常大的负载(比如成千上万的并发用户或非常高的数据传输速率等情况)的系统中是必不可少的。
它提供客户满意度,这是任何业务或者产品成功的关键。
软件测试可以防止那些修复起来代价高昂的错误,这些错误会导致以后不必要的高昂费用。我们都听说过一些公司因为系统中的“漏洞”而召回了数千辆汽车。想象一下由于缺少测试而导致的损失吧。
一个简单的规则就是,你越早跟踪一个bug,修复它的成本就越低。
(1).功能测试:关注功能是否正确,根据产品的SRS和测试需求列表,验证产品的功能实现是否符合产品的需求规格
(2).可用性测试:关注产品是否好用,根据ISO 9241-11的定义,可用性是指在特定的环境下,产品为特定用户用于特定目的的时候所具有的有效性、效率和主观满意度。常见的可用性测试大多都是基于界面的测试,体现在易用、易懂、简捷、美观等方面。
(3).兼容性测试:关注产品是都适用多种平台,主要为了检查软件在不同的软/硬件平台上是否可以正常的运行的一种测试。
(4).可靠性测试:关注产品是否稳定可靠,为了达到或验证用户对软件的可靠性要求而对软件进行测试。通过测试发现并纠正软件中的缺陷,提高其可靠性水平,并验证他是否达到了用户的可靠性要求。可靠性测试包括了软件的健壮、稳定、容错、自恢复等方面。
(5).安全性测试:关注产品是否存在漏洞,为验证应用程序的安全等级和识别潜在安全性缺陷的过程。
(6).性能测试:关注产品是否能够高效运行,用来测试软件在系统中的运行性能。负载、压力、容量测试等都属于这一范畴。
总结:随着互联网行业的高速发展,软件测试岗位也变得尤为重要。据调查显示目前国内测试人才缺口已达到30万,中国软件行业每年新增约20万测试岗位的机会。