Detailed explanation of optimization software test cost

Optimize test costs

Test early

Just as it is important to test for early detection of diseases, it is also important to test software early before small problems (errors) start to develop into larger (and expensive) problems. By applying the left-shift test method, the tester's learning curve can be tracked, thereby improving the test efficiency. Asking questions early can help improve quality and reduce overall workload.

Value documentation

Pay attention to how many tests (requirements and other content) are recorded, and keep a good balance of document detail. More documentation can help people learn faster, help clarify issues, and discuss issues in a clear way. On the other hand, it makes the process less flexible and increases maintenance costs so that the documentation is constantly updated to adapt to changing needs. Strive to find the right balance.

Risk-based testing

Discover and focus on risk, which is composed of two factors: the likelihood of something happening and the degree of (negative) business impact that may occur. Risk-based testing is all about determining priority, determining priority, and determining priority. What are the 20% test cases that can reduce the risk by 80% by applying the 28 principles?

Adopt production environment information

Although this is an imperative left shift test, it is also a very important shift test. This method is designed to avoid making users the only ones testing software in production! For example: automated testing in a production environment.
For example, if you want to know which areas of your website are most visited (and therefore should be tested more rigorously), then it is a source of useful information about real user behavior. You can also check the user access data analysis results to understand which device, operating system version or browser most users access from, so that these behaviors can be simulated in the test.
Another example of obtaining production information is to investigate in performance monitoring tools or take third-party tools to understand how each set of changes in the code affects performance.

Optimize automation costs

Prioritize API over UI for automation.
Although all automation requires an initial investment, if you use test automation wisely, you can still reduce investment costs and provide a huge return on investment. Reference: How to use Selenium to calculate the return on investment of automated testing?
The test team should consider the different layers of the application and decide at which level it will invest more effort in automation. For testers, automation can be achieved at UI level or API level (unit is temporarily not considered). To learn more about the advantages and disadvantages of these options, check out the API Automation Testing Guide, the so-called UI testing.
One possible strategy is to start by automating the main process of a function or user story that is to be tested at the UI level using the most commonly used data. Then analyze which terminals are called in the process. Add automated tests for each endpoint at the API level, and use different test data to expand coverage and make interesting combinations. These tests run faster, more powerful (less maintenance) and run faster.

Migrate to open source tools

If the test team uses commercial software and has to pay for expensive tool licenses, you can consider using open source licenses. Open source testing tools provide a high degree of flexibility and have reached a level of maturity. Now these tools have more confidence in them.
With the significant expansion of the open source community, thousands of contributors are sharing their add-ons and solutions with the world, making everyone's life easier.
For example, if you have LoadRunner for performance testing today, you can easily migrate to JMeter, which will save a lot of costs from a monetary point of view.
The important thing to note is that in many cases, this does mean a lot of initial investment in migrating what you set in one tool to another, but it will save costs in the long run.

Optimize infrastructure and tool costs

Checking licenses and subscriptions
In times of ample budget, we don't care much about the extreme rate of return on investment, especially small investments. If you see a tool, a membership, a subscription for a service or knowledge, then you join, no problem. When in crisis, it is necessary to review and cut unnecessary content.
Tools are important here. Analyze the actual use of the purchased tools and may make adjustments to better meet actual needs. For example, check the functions you use daily and those you don't use, and see if there is a cheaper plan that can meet most of the functions you need.
View the use of virtual machines in the cloud
Many teams have cloud-based virtual machines in use, and can be optimized in some way (a single instance with two rarely used systems, etc.), or turned off and used only a few times a month Services, such as mirror backup, multi-node redundant backup, etc.

Optimize training costs

Encourage internal knowledge sharing.
Many companies pay great attention to how to train their own testers. This is an important part of team management, because the company strives to help testers (especially junior testers) grow (because senior test positions may be difficult to perform). Get more rewards. In addition to focusing on internal training accidents, many companies tend to invite lecturers from other companies or training institutions to give on-site lectures and teaching, and can also provide financial support for members to learn the required skills on various learning websites.
When it comes to training and seminars provided by external suppliers, usually the team only focuses on specific topics and is mainly aimed at those in senior positions in the company. The reason is that our technical leaders and senior testers will have the greatest opportunity to take full advantage of these trainings, and then they can spread the knowledge they have learned to others.
With the same thinking, we believe that junior test engineers can learn a lot from other members of the team. This not only helps us reduce the cost of external training, but also enables senior test engineers to develop other important skills, such as communication, leadership, public speaking, etc.

Consider an online training platform

As mentioned earlier, some companies will customize some online courses according to their own situation, or provide money and time to support members to find the skills they need to learn courses on the online learning platform. This is a very good practice.
Optimizing process costs The
last important point is that process inefficiencies can lead to wasted time and money. Therefore, here are some ways to improve the process:

Analyze the waiting cycles or bottlenecks, dependencies, unnecessary duplication of work, etc. during the development process.
Analyze communication channels and possible problems (there are always communication problems) to find ways to improve and clarify, and avoid useless work, errors, etc.
Take an agile approach. This means avoiding planning large development cycles without feedback. Aims to carry out short-term iterations and often check with users or customers whether they meet expectations. Analyze the work status of the team in each iteration, aiming to conduct retrospective analysis for future improvements.
To analyze the root cause of recurring errors, we must not only focus on solving these problems, but also understand the reasons behind them to avoid future occurrences.

If needed, outsource software testing

For companies that need to focus on their core competencies, outsourcing is the ideal choice. If the current team is not very mature in the testing work, or the software quality plan and decision-making does not achieve the expected results, it may be wise to seek external help instead of extending the time spent using inefficient and ineffective processes. Reference: software testing outsourcing.
If there are not enough resources or skills internally, this may be a better option than directly hiring personnel, because indirect costs can be saved, outsourcing partners will be ready at any time and be able to upgrade or downgrade flexibly and seamlessly . In addition, when the entire company can not only extract added value from outsourcing, it can also benefit from their professional knowledge to internal testers.

Finally, outsourcing testing can help maintain business testing continuity. When someone is hired internally to leave the company, or if they are the only person in charge of testing and they are on vacation, a certain job on the team will face a vacuum. When someone else is found for the position, the company must re-enter the entire training process. Through outsourcing, the service provider will prepare several other team members, and can fill them at any time when needed, and will provide training and training different testers.

I recommend a software testing exchange group here, QQ: 642830685. The group will share software testing resources, test interview questions and testing industry information from time to time. You can share technology together in the group, and there are industry leaders to answer for you. problem.

Guess you like

Origin blog.csdn.net/weixin_53519100/article/details/112875904