Explanation of agile software development ideas

What is agile development?

Agile development is a human-centered, iterative, step-by-step development method [iterative development]

how to understand

It is not a technology (it does not belong to testing or development), it is a development method, a software development process (a kind of idea), which guides us to complete the project development step by step according to the specified links, and this development method The main driver core is people, and it uses iterative development.

Agile Testing Common Terminology

  1. scrum: a framework for agile research and development [agile thinking framework]

  2. Sprint: The original meaning is sprint. Sprint in Scrum has no corresponding Chinese translation, which refers to an iteration

  3. scrum master: agile expert, general manager of agile R&D [does not need to understand development, testing, project management. Only need to understand agile thinking, a way of handling affairs style]

  4. product owner: Product owner, referred to as PO

  5. scrum team: Agile R&D team

  6. product backlog: product to-do list, refers to the list of requirements [based on product considerations, testing needs to be done]

  7. Sprint backlog: sprint to-do list, refers to the sprint task list [take it out in the product backlog, what to do in this iteration]

  8. daily scrum meeting: daily scrum meeting

  9. sprint review meeting: sprint review meeting

  10. user story: user story, referring to a requirement

Main roles and responsibilities

PO (Product Owner) Product Owner

The Product Owner replicates maximizing the value of the product and the work of the development team, and the way in which this is achieved will vary by organization, Scrum team, and individual team members.

SM (Scrum Master) Agile Coach/Expert

The Scrum Master serves the product owner and the Scrum team in various ways [only cares about whether the agile process follows the predetermined agile process]

ST (Scrum Team) Scrum Team

Professionals are included who are responsible for delivering a potentially releasable "done" product increment at the end of each sprint. Only members of the development team can create increments. Development teams are structured and empowered by organizations to organize and manage their work, and the resulting collaborative work maximizes the overall efficiency and effectiveness of the development team. [According to requirements, determine the iterative content, and deliver incrementally according to predetermined rules]

Scrum explained in detail

Scrum is a framework for developing and maintaining complex products [if the product can be completed and put on the shelves in a short time, it is not necessary to adopt agile, mainly to determine a value of the project to seize the market], it is an incremental, iterative development process. In this framework, the entire development process consists of several short iteration cycles. The iteration cycle at one end is called sprint, and the recommended length of each print is 2-4 weeks (in China, there are 1 week to 2 months). Use the product backlog to manage product requirements. The product backlog is a list of requirements sorted by business value. The list items are usually expressed in the form of user stories [requirements]. The scrum team always develops the requirements with higher value to the customer first [determination of sequence]. In the sprint, the scrum team selects the highest priority requirements from the product backlog for development, and the selected requirements are discussed, analyzed and estimated in the sprint planning meeting to obtain the corresponding task list, which we call the sprint backlog. , sort out the iteration schedule, what to do first, and output a sprint backlog of a certain level], at the end of each iteration, the scrum team will submit potential deliverable product increments. Scrum originated in software development projects, but it applies to any replication or update-only project.

Manifesto for Agile Software Development

Manifesto for Agile Software Development Individuals and interactions are higher than processes and tools [compared to processes, people-centered, respect for personal ideas, multiple interactions, flexibility] Working software is higher than detailed documentation [The goal of software is to be as foolish as possible Operate, treat yourself as a customer] Customer cooperation is higher than contract negotiation: care about the pain points of customers [understand the core needs of customers] Responding to changes is higher than following plans: [Quick iteration, call customers to see or invite some people after each iteration is completed Come to the internal test; the frequency of communication should be increased. Every time a small module is completed, the small page will confirm with the customer whether it is what they want. If not, propose to change it immediately in the next iteration; the biggest advantage of agile development is that it can be quickly In response to the needs of customers, there is one thing that can be given to the customer every two weeks for him to confirm. When there is a change, it will be changed immediately after two weeks, which can quickly respond to communication]

Twelve principles of agile software development

  1. The most important goal is to satisfy customers by consistently delivering early and valuable software

  2. Embracing changes in requirements, even late in development, with an agile process that manages changes for the customer's competitive advantage.

  3. Deliver working software frequently, a few weeks or a month or two apart, tending to take shorter cycles.

  4. Business people and developers must collaborate with each other, and every day in a project is no different.

  5. Stimulate the fighting spirit of individuals and build projects with them as the core. Provide the environment and support needed, complemented by trust, to achieve goals.

  6. The most effective and efficient way to convey information, both inside and outside the team, is face-to-face. [A company of 100 people may have 12 meeting rooms, small meeting rooms]

  7. Working software is the primary measure of progress

  8. The agile process advocates continuous development, and the responsible person, developers and users must be able to jointly maintain its stable continuation

  9. Relentless pursuit of technical excellence and good design enhances agility

  10. It's the art of minimizing unnecessary work by focusing on simplicity

  11. The best architecture, requirements and design disposition organizational team

  12. Teams regularly reflect on how they can improve their effectiveness and in turn adjust their behavior

Customer [such as the client's requirements for software] / market [investigate the market's status of the existing software (how to make explosive products that should be released to other software)] / high-level [leader's needs and wishes] → software new ideas / defects / New function → product owner (product owner) [responsible for collecting ideas/defects/functions] → product function list (produce backlog) [product backlog: list of collected information and integration] → planning meeting (sprint) organized by PO backlog) [Iterative split meeting: sprint to-do list] [Participants: development (development manager), testing (testing manager), product (product manager), development and testing backbone personnel; other personnel such as operation and maintenance, support, etc. Participation, usually after the test, you need to give technical support training: after all, technical support needs to be given to test customers, and you need to understand what iteration is done] → iterative tasks [usually only the latest three iteration tasks can be output] → agile development [agile development] Development model] → working software [iteration is not necessarily online, it can be viewed and modified by users] → daily stand-up meeting [stand up, face-to-face communication in a concise spirit] → review meeting [use case review] → reflection meeting

Monday Tuesday Wednesday Thursday Friday
the first week Morning: Requirements Review Write manual test cases Write manual test cases Database preparation data, writing automation scripts, etc. Waiting for development and testing (smoke test cases for development)
Afternoon: Discuss the division of labor, write test cases, evaluate workload
the second week Environment setup, start testing, execute use cases (manual testing) Test and raise bugs and develop bugs Test question bug Development bug regression testing (manual) Test report, product acceptance, online

Common Scrum Activities

Product to-do list sorting [Iterative split]

Product backlog items are usually large and broad, and will change from time to time, and priorities will change, and all product backlog grooming is an activity that runs through the entire scrum project. This activity includes but is not limited to the following:

  1. Keep your product backlog organized

  2. Remove or downgrade items that don't seem important anymore

  3. Add or promote matters that emerge or become more important

  4. Break things down into smaller things

  5. Consolidate matters into larger matters

  6. Estimate the matter [it will take a few weeks to complete, whether multiple modules need to be done in one iteration]

One of the great benefits of product backlog grooming is to prepare, maintain, and groom for the next few sprints with a special focus on those things that are about to be implemented

Iteration planning meeting

Scrum sign

Mark the progress of everyone's work progress

  • To-do: To-do from the beginning

  • In progress: The project begins to process items gradually increasing

  • Completion: Complete completion is one of the goals of the project

Scrum Daily Standup

The daily stand-up meeting is one of the most important systems in the agile process scrum [iterative development, testing, product personnel, each meeting is controlled by 10 people, about 10 minutes, each person has about 1 minute speaking time, content: did it yesterday What, what to do today, what problem did you encounter yesterday] function

  1. Quickly synchronize progress, so that employees within the project team can understand each other's progress, so as to understand the overall progress of the project [such as product managers waiting for the test progress]

  2. Give everyone a kind of mental pressure, it is a face-to-face mental pressure to set up a novice, face the progress of the project [promise to do what you plan to do, and report the next day whether the work of yesterday has been completed, if not, what is the reason? What is the problem, let's solve it together]

  3. Foster a team culture where everyone realizes: I'm not fighting alone, we're a team

Purpose of the standup

  1. Let everyone know what everyone else is doing and how the current project plan is going

  2. Helping people solve problems that are holding things back, and sharing commitments are great for teamwork.

Scrum iteration retrospective meeting

After each sprint, the scrum team will get together to hold a sprint retrospective meeting [for example, every Friday at 4-6 pm, one person will take turns to buy everyone food and snacks every week, and call everyone into the conference room, The table is full of food, and everyone will have a meeting while eating (content of the meeting: who do you think is doing well or not in this iteration), prepare a small note in advance to write, collect it, and sort out the common problems , I went to these questions while eating (to complain about each other in a relaxed way, talk about the problem)]

  • The purpose is to review how well the team is doing in terms of process human-machine relationships and tools

  • The team identifies what is doing well and what is not doing well, and identifies potential improvements, specifying plans for future improvements

  • All scrum meetings are of limited duration. The recommended duration of the sprint retrospective meeting is that each week in the sprint corresponds to a decimal (for example, if a sprint contains two weeks, the duration of the sprint retrospective meeting is 2 hours)

Scrum architectural patterns

Iteration is not necessarily online, the initial basic functions are incomplete, it is a semi-finished product, and it is not used yet. It can only be said that the iteration is over, and you can go to the acceptance [such as crm: 20 iterations have been sorted out, it takes 1 and a half years, incremental delivery, iterative development]

exploratory testing

What is exploratory testing?

Exploratory testing (ET Exploratory Testing) is a style of software testing, rather than a specific software testing technique (such as equivalence class division, boundary value analysis, combined testing, etc.) Exploratory testing emphasizes the actual According to the situation, select the appropriate test technology, not limited to the characteristic test technology [according to special circumstances, adopt special methods to achieve the purpose of the test, which is a purpose-oriented test]

The core idea of ​​exploratory testing

Exploratory testing emphasizes the freedom and responsibility of the independent tester. Testers should be responsible for individuals and teams, mobilize all energy, exert human flexibility, and continuously optimize the output of individuals and teams as a whole. Okay

What kind of projects are suitable for exploratory testing? (must be on your resume)

  • SRS (Software Requirements Specifiction) is not perfect and time is tight. In the absence of test cases, ET can be used to quickly complete the test of new functions of the version. Role: Faster Design, Faster Execution, Lower Cost

  • After system testing, if time permits, use ET as a supplement to try scenarios that cannot be covered by system testing. Function: Reduce missed tests and improve coverage [Generally, this situation does not occur. It happens because the workload is not saturated, and there is a serious error in estimating the time of product testing, resulting in a delay in the launch time of the product, and it is impossible to seize the market this morning. Serious problem!

premise:

  1. The team is familiar with product features

  2. Software under test that is ready to run

How exploratory testing is implemented in the project

  1. Quick learning requirements: Based on your familiarity with the software version, you can quickly learn the functions of the new version, ask questions and clarify [When there is no requirement document: product manager, development, and testing are in a conference room. If there are no bugs in the early stage, development You can go first, but the product manager can’t go, sit next to the test and work in a centralized office. If there is a problem with the test, you can directly contact the product for confirmation to reduce communication costs. Ask the demand question, and the product quickly responds and clarifies]

  2. Make a plan: time, scope, team division (module), person in charge, etc.

Forum project exploratory testing
module time principal
register log in 6.23-6.24 Test A
technical article 6.23-6.25 Test B
Q&A stickers 6.23-6.25 test C
  1. Using the form of a brain map, list which modules are available, which scenarios are covered, and the considerations for each scenario, and then review. [Organize the test points to ensure that there are no omissions in the general direction, such as input boxes, edit buttons, delete buttons, etc. It is not a new software, but it is likely to be an iteration, which normally takes 7 or 8 days, compressed to 2 or 3 days]

  2. Exploration: According to the brain map, during the exploration process, according to the situation, gradually dig deeper (also a process of learning while executing) each path, update and record the paths traveled during the execution process (executive test with reflection) [brain The picture is the exploration map of our exploratory test. There is a map first and then there is exploration. The exploratory test process needs to be simple, such as the length verification of the input, and the format verification. All recorded traces need to be retained through the brain map as a document record for exploratory testing] Bugs need to be written directly (the requirements are the same as the requirements for bugs: what bugs and under what circumstances), pay attention to the transmission of associated values [For example, the value in the drop-down box may need to be added to another module, so you need to go to another module to add verification, etc.] Core : 1. Sort out the brain map (test points); 2. Start the test directly, when testing Repeat the jump and record the test process; 3. Write some descriptions of the bug by ticking, not marking it out; 4. The above process repeats and jumps back and forth

  3. Submitting defects: Submit the defects found in the exploratory testing process to the defect management system, and return after repairing

  4. Summary of the report: In a simple table, statistics and reports on the distribution, number, and level of bugs [if the time is too tight, you can directly throw the mind map to the development, and modify it according to the submitted bug. But no matter what, I still need to find some time to sort out the bugs as an archive jira]

Forum project exploratory test report
total time Total number of buu found Total number of class A bugs Total number of B bugs Total number of class C bugs Total number of class D bugs
26 hours 68 12 36 15 5
bug type Abnormal data display Form validation error page display error error message Abnormal basic function
quantity 20 16 14 10 8
Number of resolved 18 15 13 8 8
This project adopts exploratory testing, and a total of 69 bugs were found. The detailed classification of bugs is shown in the table above. The number of bugs that have been solved so far is 62, and the bug repair rate is 62/68=.

Online standard: 95% of the bugs have been fixed, the remaining 5% of the bugs do not contain important-level bugs [functional bugs], minor and general bugs can be kept, and an optimized version will be released later

Summary [Three Deliveries]

  1. Test planning: who is responsible for what modules and when will they be tested

  2. Explore the brain map: who is responsible for which knowledge point, which function points have been explored, whether the test content passed or failed, and the reason for failing [write bug description]

  3. Test report: After the brain map is supplemented, a concise version of the test report is produced

interview questions

What is the workflow of your company, what is the content of the iteration you did last month, how did you do it, what links did it include, and what links did you participate in? What was your responsibility for the iteration before leaving? You have been testing this project for so long, is it online yet? How did you go online and how long did you go online? Will it be online every two weeks? Will it be up after the iteration is over?

What was the situation at your company that led you to use exploratory testing? How did you do it?

I had a tight project at the time. The development had been completed but no one had invested in the test. The project was in a hurry to go online. We had less than 3 days left, and we had to go online after three days, so we chose exploratory testing.

If there is any infringement, please contact by email, I am sorry.
This is only for learning personal notes, and if there is any reprint, please indicate the source.
Contact email: [email protected] Let’s
learn to test and open the penguin group together (chat, water group, advertising do not disturb): 826471103

Guess you like

Origin http://43.154.161.224:23101/article/api/json?id=324328397&siteId=291194637