White, a preliminary understanding automation

On the automation

 

 

Advantages of automated testing:

 

  1. Automated tests can replace a large number of repetitive manual mechanical operation, test engineers can spend more time on a more comprehensive test case design and new features;

  2. Automated testing can significantly improve the efficiency of regression testing, ideal for agile development process;

  3. Automated testing can make better use of time unattended, a test is performed to more frequently, particularly suitable for the present time to perform the testing of non-working time of the failure analysis mode of use of the embodiment;

  4. Automated testing can be efficiently achieved some manual testing can not be completed or the huge cost of the type of test, stability test and high stress testing concurrent systems, such as business-critical scenes 7 × 24 hours of continuous operation and the like;

  5. Automated testing and verifying the operation can also ensure the consistency and repeatability of each test performed, omission or neglect avoid human

 Automated testing disadvantages:

 

  1. Automated testing and manual testing can not be substituted, it can replace manual testing performing a high frequency, repeat steps mechanized. You do not expect all tests are automated, otherwise it will be worth the candle.

  2. Automatic testing than manual tests vulnerable, unable to respond to changes in the system under test, the industry has always had a joke "to develop hand flick, automated testing busy night", which is also reflected from the side of the maintenance cost of an automated test case has been among the high no less than the truth. The fundamental reason is that the automated test itself does not have any "smart", but step by step implementation of pre-defined test procedures and verify the test results. For obvious errors and unexpected events arising in the implementation of automated testing process without any processing power.

  3. Automated test development effort is much larger than a single manual test, so the effective implementation of the number of test cases developed only when the cost is greater than or equal to 5 times, to recover the automated tests.

  4. The number of defects found in the manual testing to automated testing more than usual, and automated test can only find defects regression testing range.

  5. Efficiency of the test depends heavily automated test case design and implement quality, achieve test automation unstable worse than no automation.

  6. Initial implementation of automated testing, use case development efficiency is usually very low, a lot of use cases are usually mature early development of the entire automated test system and test engineers complete control of test tools, the need to reconstruct.

  7. Business expert testing and automated testing specialists are usually two groups of people, the former understand the business do not understand automation technology, automation technology, but do not know who understand the business, only two work closely together in order to carry out efficient automated testing.

  8. 自动化测试开发人员必须具备一定的编程能力,这对传统的手工测试工程师会是一个挑战。

 

适合做自动化的项目:

 

第一,需求稳定,不会频繁变更

 

    自动化测试最怕的就是需求不稳定,过高的需求变更频率会导致自动化测试用例的维护成本直线上升.刚刚开发完成并调试通过的用例可能因为界面变化,或者是业务流程变化,不得不重新开发调试。所以自动化测试更适用于需求相对稳定的软件项目.

 

第二,研发和维护周期长,需要频繁执行回归测试。

 

软件产品的生命周期一般都比较长,通常会有多个版本陆续发布,每次版本发布都会有大量的回归测试需求如果短期的一次性项目,就算从技术上讲自动化测试的可行性很高,但从投入产出比(ROI)的角度看并不建议实施自动化,因为千辛万苦开发完成的自动化用例可能执行一两次,项目就结束了。    

 

第三,需要在多种平台上重复运行相同测试的场景。

 

这样的场景其实有很多,比如:对于GUI测试,同样的测试用例需要在多种不同的浏览器上执行;对于移动端应用测试,同样的测试用例需要在多个不同的Android或者iOS版本上执行,或者是同样的测试需要在大量不同的移动终端上执行.

 

第四,某些测试项目通过手工测试无法实现,或者手工成本太高。

 

对于所有的性能和压力测试,很难通过手工方式实现。比如,某一个项目要求进行一万并发用户的基准性能测试(Benchmark test),难道你真的要找一万个用户按照你的口令来操作被测软件吗?又比如,对于7×24小时的稳定性测试,难道你也要找一批用户没日没夜地操作被测软件吗?这个时候,你就必须借助自动化测试技术了,用机器来模拟大量用户反复操作被测软件的场景。当然对于此类测试是不可能通过GUI操作来模拟大量用户行为的,你必须基于协议的自动化测试技术.

 

第五,被测软件的开发较为规范,能够保证系统的可测试性。

 

从技术上讲,如果要实现稳定的自动化测试,被测软件的开发过程就必须规范。比如,GUI上的控件命名如果没有任何规则可寻,就会造成GUI自动化的控件识别与定位不稳定,从而影响自动化测试的效率.

 

第六,测试人员已经具备一定的编程能力。

 

如果测试团队的成员没有任何开发编程的基础,那你想要推行自动化测试就会有比较大的阻力。这个阻力会来自于两个方面:前期的学习成本通常会比较大,很难在短期内对实际项目产生实质性的帮助,此时如果管理层对自动化测试没有正确的预期,很可能会叫停自动化测试;测试工程师通常会非常热衷于学习使用自动化测试技术,以至于他们的工作重点会发生错误的偏移,把大量的精力放在自动化测试技术的学习与实践上,而忽略了测试用例的设计,这将直接降低软件整体的质量。

 

Guess you like

Origin www.cnblogs.com/-pyj/p/10984689.html