Software testing notes / choice of automated testing and manual testing (python articles)

Preface


Software testing is to evaluate the functions of software applications, to determine whether the developed software meets the specified requirements, and to determine defects to ensure that the product is free of defects, thereby producing high-quality products. The software testing is divided into two categories: manual testing and automated testing. Both manual testing and automated testing have their own advantages and disadvantages, and we know that the project has very key elements: quality, cost and time. The goal of any project is to obtain high-quality output while controlling what is needed to complete the project Cost and time, so it is very necessary to understand the difference between manual testing and automated testing and when to use manual testing and when to use automated testing.

Manual test


The process of manually testing software to find defects. The tester is from the user's perspective and ensures that all functions work as in the requirements document. In this process, testers execute test cases and manually generate reports without using any automated tools.

Manual test type

  • Black box testing: Black box testing is a software testing method in which testers test the functions of the software under test without looking at the internal code structure. This can be applied to all levels of software testing, such as unit, integration, system, and acceptance testing.
  • White box testing: It is a test based on the code structure inside the application. In white box testing, the internal perspective of the system and programming skills are used to design test cases. This type of testing is usually done at the unit level.
  • Unit testing: also called module testing or component testing. This is done to check whether a single unit or module of the source code is working properly. Usually it is done by the developer in the developer's environment.
  • System testing: Testing the complete application to assess whether the system meets the needs of its customers, we call it system testing, also known as end-to-end testing. The goal is the completed system to ensure that the software works as expected.
  • Integration testing: Integration testing is the process of testing the interface between two software units. There are three ways of integration testing. Big Bang method, top-down method, bottom-up method.
  • Acceptance test: It is usually completed by the end user and the tester together to verify whether the software functions are implemented in accordance with user requirements. After testing, the customer can accept or reject the software features provided. The types of acceptance tests are Alpha, Beta and Gamma tests.

Of course there are many types of manual tests, please check "Software Test Notes (3) Various Test Types".

When to use manual testing

  • Exploratory testing: Exploratory testing conducted by industry experts. They perform tests by exploring the functionality of the application without understanding the detailed requirements.
  • Usability testing: Verifies whether the software is user-friendly and is used comfortably by the end user. The main focus is to check whether the end user can easily understand and operate the software. A good software should be self-exploring, guided, and does not require much training to operate it.
  • Random testing: testers randomly test the software without following any documentation and test design techniques. If the tester's knowledge is very rich, this type of test is mainly performed, and the tester randomly tests the application without any test cases or business requirements documents.

When to use manual testing instead of automated testing

  1. When the project is in the initial development stage, before the completion of the test framework.
  2. When testing the user interface.
  3. When an exploratory or random test is required.
  4. If the project is short-term, writing scripts and building test frameworks is very time-consuming compared to manual testing.
  5. If the test case cannot automatically execute the verification code example.

Pros and cons of manual testing

excellent:

  1. It has a wide range of applications and can be manually tested on various software.
  2. It is preferable for short life cycle products.
  3. Newly designed test cases should be executed manually to ensure the correctness of the test cases.
  4. The application must be manually tested before being automated.
  5. Projects with frequent changes in demand and products with constantly changing GUIs.
  6. Compared with automated testing, its initial investment is cheaper.
  7. It takes less time and expense to start manual testing.
  8. It allows testers to perform random tests.
  9. Testers do not need to understand automation tools and frameworks.

inferior:

  1. Manual testing is mainly time-consuming when doing regression testing, and it is highly repeatable.
  2. Compared with automated testing, manual testing is less reliable because of human influence. So there will always be some errors caused by human factors.
  3. In the long run, it is more expensive than automated testing.
  4. It cannot be reused because the entire test process cannot be recorded.

automated test


Automated testing is a testing process that uses automated tools to find software defects. In this process, automated tools will automatically execute test scripts and generate results. Some of the most popular automated testing tools are QTP, Selenium Webdriver, Jmeter, TC, etc.

Commonly used automation tools:

  1. HP QTP
  2. Selenium
  3. LoadRunner
  4. SilkTest
  5. TestComplete
  6. WinRunner
  7. Jmeter

When to use automated testing

  • Regression testing: Repeated testing after modification for a defect that has been tested. The purpose is to find any defects introduced due to changes in the software or other related or unrelated software components. Regression testing is very suitable for automated testing, because software often changes the code and requires timely testing.
  • Performance test: Test the speed, scalability and stability of the software. Performance refers to the level of response time, throughput, and resource utilization that meet the project or product performance goals. It is very suitable for automated testing.

Test types that can perform manual and automated tests at the same time:

  • System testing: testing whether the software meets its specified requirements, also known as end-to-end testing. The goal is to verify the completed system to ensure that the application works as expected.

  • Unit testing: Unit testing is also called module testing or component testing. In order to check whether the unit or module of the code is working properly. This is usually done by the developer in the developer's environment.

  • Acceptance test: It is usually completed by the end user and the tester together to verify whether the software functions are implemented in accordance with user requirements. After testing, the customer can accept or reject the software features provided. The types of acceptance tests are Alpha, Beta and Gamma tests.

Which scenarios are not suitable for automated testing

  1. Exploratory test
  2. User interface testing
  3. Random test

When to use automated testing instead of manual testing

  1. Handling repetitive and time-consuming tasks
  2. Concurrent test
  3. Non-functional testing, such as load, performance, and stress testing
  4. Avoid human error

Pros and cons of automated testing

excellent:

  1. The execution of automated tests is faster.
  2. In the long run, it is cheaper than manual testing.
  3. Automated testing is more reliable.
  4. Automated testing is scalable and more versatile.
  5. Used for regression testing.
  6. Reusable because automated processes can be recorded.
  7. It does not require human intervention. The test script can be run unattended.
  8. It helps improve test coverage.

inferior:

  1. Only recommended for large, stable products.
  2. The initial cost of automated testing is very expensive.
  3. Most automation tools are expensive, except for open source software of course.
  4. It will have some restrictions, such as processing verification codes and obtaining visual information about ui.
  5. When demand changes repeatedly.
  6. Not all tools support various tests such as windows, web, mobility, performance/load testing.

to sum up

automated test Manual test
Automated testing is more reliable. Perform the same operation every time. It eliminates the risk of human error. Manual testing is relatively unreliable due to human error, and manual testing may also be inaccurate.
The initial investment of automated testing is relatively high. Testing tools require investment. In the long run, it is cheaper than manual ones. Compared with manual testing, it is more cost-effective in the long run. The initial investment for manual testing is less than automation. Human resources need investment. In the long run, it is less cost-effective than automated testing.
When we perform regression testing, automated testing is very meaningful. If the test only needs to be run once or twice, then manual testing is a practical choice. In this case, the test case will not be run repeatedly.
Execution is done through software tools, so it is faster than manual testing and requires less human resources than manual testing. The execution of test cases is very time-consuming and requires more human resources
Impossible to conduct exploratory testing Exploratory testing possible
Performance testing such as load testing, stress testing, etc. is the choice of automated testing. Manual performance testing is not a good choice
Automated testing can be completed in parallel, reducing test execution time. It is not easy to execute test cases in parallel in manual testing. We need more human resources to do this and it becomes more expensive.
It can be done in parallel, reducing test execution time. It is not easy to execute test cases in parallel in manual testing. We need more human resources to do this and it becomes more expensive.
Need some knowledge of scripting Usually no scripting knowledge is required
Easy to integrate into CI/CD (continuous deployment/release) Unable to integrate into CI/CD (continuous deployment/release)
There is not much manual intervention, so the user interface test is not effective It involves manual intervention, so user interface testing is very effective

Regardless of black and white cats, those who catch mice are good cats. The same is true in testing. Regardless of whether automated testing or manual testing can find defects, the most appropriate method is a good testing method. I hope the difference and scope of application between manual testing and automated testing above can help you find a suitable testing method. If you have interesting topics and related feelings, please reply to the comments and share with you.


Finally: benefits

In the technology industry, you must improve your technical skills and enrich your practical experience in automation projects. This will be very helpful for your career planning in the next few years and the depth of your testing technology.

In the interview season of the Golden 9th and the Silver 10th, the job-hopping season, organizing interview questions has become my habit for many years! The following is my collection and sorting in recent years, the whole is organized around [software testing], the main content includes: python automation test exclusive video, Python automation details, a full set of interview questions and other knowledge content.

For software testing friends, it should be the most comprehensive and complete interview preparation warehouse. In order to better organize each module, I also refer to many high-quality blog posts and projects on the Internet, and strive not to miss every knowledge point. Friends relied on these contents to review and got offers from big factories such as BATJ. This warehouse has also helped many learners of software testing, and I hope it can help you too!

May you and I meet and you will find something! Welcome to follow the WeChat public account: [Sad Spicy Article] Receive a 216-page software test engineer interview book for free. And the corresponding video learning tutorials are free to share!

Guess you like

Origin blog.csdn.net/weixin_50829653/article/details/112865137