An article that takes you to understand agile testing

How Agile Testing is Different

In traditional projects, we are often more accustomed to strictly defining the various stages in the software development life cycle. For example starting with the development of a release plan and requirements definition and ending with testing and delayed releases. For testing, it is often broken into the role of gatekeeper in traditional projects.

For the team leader, or most project stakeholders, testing is often expected to assume the responsibility of project quality control. However, this is difficult to achieve in traditional projects, because testing can neither control how the code is written, nor can it control developers to test their code, but all quality control is expected to be compressed and successfully completed in the testing phase after development.

In agile projects, testers no longer sit there waiting for work to come, but actively look for ways to contribute value throughout the development cycle: write test cases for requirements with users, find bugs in programs with developers, and focus on using broader and more flexible testing methods. In Agile, developers are never ahead of testers, because a feature is "not done" until it is tested.

agile testing

traditional test

adaptability

Planned

staged

Persistent

Emphasis on collaboration

focus on records

Focus on products

Focus on bugs

full-featured team

Intelligent independence

We can briefly summarize several characteristics of agile testing:

  1. Emphasis is placed on testing the system from the customer's point of view, that is, from the point of view of users who use the system.
  2. Focus on continuously and iteratively testing newly developed features, de-emphasizing the rigorous testing phase of the traditional testing process.
  3. It is recommended to start testing as soon as possible. Once a certain level of the system is measurable, such as providing module functions, unit testing at the module level must be started. At the same time, as the test deepens, the regression test is continued to ensure the correctness of the previously tested content.

organizational challenge

Next, let's take a look at what challenges the traditional testing team, testers, and even the entire project team will encounter during the agile transformation process.

  • cultural challenge

    Organizational culture can affect the success of agile teams. As we embark on an agile transformation, change is pervasive, and this inevitably includes organizational culture conflicts. Organizational culture takes time to develop and once established is difficult to change. During this process, team members will more or less resist changes, and will naturally have doubts when encountering failures.

    This requires the team to learn to introduce and accept change, to recognize its negative impact when dealing with change, to be able to foresee and accept chaos, and to take measures to get out of chaos. Agile seems to have a very fast speed, but changes can be gradual. New teams that adopt agile can implement some new practices slowly, such as test-driven development.

  • team composition

    Agile project teams are cross-functional. The difference between an agile team and a traditional cross-functional team is that agile is working towards the overall team operation, but it is inevitable that each member has his own background, especially in the early stages of team formation. Members of different backgrounds bring both disadvantages and benefits to the team, such as unclear positioning of their own roles and poor communication among members. The advantage is that members of different backgrounds often have complementary thinking, especially for testers, testers in agile teams will feel that they have obvious characteristics of representing customers, and will bring their influence on quality thinking to other members of the team.

    Many teams have raised the question of the ratio of testers to developers in agile teams. Rather than focusing on scale, teams should be more concerned with what testing skills they need. The needs of each team are different, especially for agile project teams. The way Agile and DevOps operate will allow professionals in the team to break through their technical areas and devote themselves to other activities. Therefore, for testers and developers, more problems need to be considered beyond the role. This can be reflected in the requirements for personnel when expanding the team, and at the same time pay attention to the cultivation of multi-faceted skills of the team members.

  • migration process

    In the process of agile transformation, there are many contents that cannot be well migrated to the agile model. Here we mainly look at the contents related to testing that we need to migrate and are prone to problems.

    The first is metrics, which is a topic of debate. The value generated by different measurement indicators is very different. It is possible that the indicators we waste energy to track will only represent some numbers in the end, and will not generate other additional value except for evaluation, and will not be helpful to the progress of the team. Therefore, choosing an appropriate measurement indicator and obtaining a high measurement return on investment is of great help to the team.

    Defect tracking is also a relatively contradictory part of the agile team's project transformation process. Many agile practitioners believe that discovering and repairing defects in the process of agile project development is a necessary job for developers. After discovering defects, they will be repaired immediately, so it is unnecessary to track and record defects. For testers, they often use the defect tracking system to track and manage defects, and the defect tracking system is not only used for defect tracking, but also can record more relevant information, such as priority, severity, status, person in charge, associated use cases, requirements, and defect descriptions and reproduction methods, etc. We can use tools to simplify the complicated management work in traditional projects, and can achieve more and richer management goals.

test automation

In Agile and DevOps, automation of tests is a must. We need to use automated means to manage key testing activities and provide necessary feedback for development. Let's take a look at what is included in test automation and how to do it well.

  • test pyramid

    Before starting to test the content of automation, let's look at a classic test automation model - the test pyramid.

    The purpose of the test pyramid model is to guide the team to get the maximum value from the test automation with the minimum investment. The pyramid shows 3 different levels of automated testing.

    The lowest layer is the foundation, which is mainly composed of technology-oriented tests such as unit tests and build tests. This layer also represents most of the automated tests. In this layer, the unit isolation of test cases is the best, the problem of positioning and analysis is the easiest, and the cost of use is also the lowest.

    The middle layer of the pyramid contains most of the automated business tests used to support the team. These functional tests are only validating that we are doing the right thing.

    The top of the pyramid rarely uses automation because it has the lowest operating efficiency, the highest development complexity, and the lowest testing ROI.

  • What is test automation

    There are many automated testing methods mentioned above, such as unit testing, API testing and so on. These are the execution part of the test, that is, the manual test method of some test execution is made into an automated test process through tools. But test automation is not just the execution part, it also includes the acquisition of the environment to generate test data, execute automated tests, and finally generate results and provide feedback. If there is a problem with the test result, the system will automatically push it to the relevant person. Finally, the test report is automatically generated, and testers can directly get the test results. This entire closed-loop process is the final composition of test automation.

    Next, let's see what tools are provided in DevCloud to help us complete the test automation practice:

    • In terms of test management, it provides the overall test process management mentioned above, test use cases and requirements, and the dotted line can be traced in two directions.
    • In terms of automation, mobile application testing, API testing and performance testing are provided.
      • Mobile application testing provides a systematic compatibility test for application software packages to detect whether the software packages have compatibility issues and how many users can be covered.
      • Interface testing provides automated API testing tools to realize automated testing of APIs by writing test cases.
      • Performance testing can simulate some large concurrency scenarios for users, provide a variety of pressurization strategies, and can conduct overall structural analysis on the user's throughput, response time, and load capacity during the test process. After the test is completed, it also provides a multi-dimensional visual kanban, which can provide a detailed understanding of the test execution situation.

Summarize 

Finally, I wish everyone can find the job they want, work happily, live happily, have a broad world, and make great achievements. I also sorted out a wave of previously released software testing resources [click the small card at the end of the article to get it for free], there is no routine to get it!

Basically covers all the core technical points of software testing: testing theory, Linux basics, MySQL basics, Web testing, interface testing, App testing, management tools, Selenium related, performance testing, computer networks, composition principles, data structures and algorithms, logic problems, human resources, technical brain maps, etc... The quality is very high ! ! ! More than enough for technical interviews!

The entire document has a total of 308 pages . It is definitely unrealistic to show you all of them. In order not to affect your reading experience, only part of the content is shown. I hope you will bear with me. I hope it can help you review before the interview and find a good job, and save everyone time searching for information on the Internet to learn!


 

Guess you like

Origin blog.csdn.net/HUA1211/article/details/131767704