Äú¿ÉÒÔ¾èÖú£¬Ö§³ÖÎÒÃǵĹ«ÒæÊÂÒµ¡£

1Ôª 10Ôª 50Ôª





ÈÏÖ¤Â룺  ÑéÖ¤Âë,¿´²»Çå³þ?Çëµã»÷Ë¢ÐÂÑéÖ¤Âë ±ØÌî



  ÇóÖª ÎÄÕ ÎÄ¿â Lib ÊÓƵ iPerson ¿Î³Ì ÈÏÖ¤ ×Éѯ ¹¤¾ß ½²×ù Modeler   Code  
»áÔ±   
 
   
 
 
     
   
 ¶©ÔÄ
  ¾èÖú
Ãô½Ý²âÊÔÓë×î¼Ñʵ¼ù£¨¶þ£© Ãô½ÝÐèÇó
 
ÒëÕß jason_dongµÄ²©¿Í £¬»ðÁú¹ûÈí¼þ    ·¢²¼ÓÚ 2014-08-20
  3779  次浏览      19
 

2. Agile Requirements Strategies

This section provides an overview to agile approaches to requirement elicitation and management. This is important because your approach to requirements goes hand-in-hand with your approach to validating those requirements, therefore to understand how disciplined agile teams approach testing and quality you first need to understand how agile teams approach requirements. Figure5 depicts a process map of thebest practices of Agile Modeling (AM) which address agile strategies for modeling and documentation, and in the case of TDD and executable specifications arguably strays into testing. This section is organized into the following topics:

Õâ¶ÎÌṩһ¸öÐèÇóµ÷Ñк͹ÜÀíµÄÃô½Ý·½·¨£¬ÕâÊÇÊǷdz£ÖØÒªµÄ£¬ÒòΪÄãµÄÐèÇó·½·¨ºÍÑéÖ¤ÐèÇóµÄ·½·¨ÊÇÏศÏà³ÉµÄ¡£Òò´Ë£¬È¥Àí½âÑϸñµÄ²âÊÔºÍÖÊÁ¿·½·¨Ç°£¬ÄãÐèҪȥÀí½âÃô½ÝÍŶӵÄÐèÇó·½·¨¡£Figure 5Ãè»æÁËÒ»¸öÃô½ÝÄ£Ð͵Ä×î¼Ñʵ¼ù £¬ËûÌá³öÁ˶ÔÄ£ÐͺÍÎĵµµÄÃô½Ý²ßÂÔºÍ TDD£¨²âÊÔÇý¶¯¿ª·¢£©ºÍ¿ÉÖ´ÐÐÐÔÐèÇó½øÈëµ½ £¿£¿ Õâ¶Î°´ÕÕÏÂÃæ½øÐÐ×éÖ¯£º

Active Stakeholder Participation ÉæÖÚ»ý¼«²ÎÓ루ÐèÇó·½»ý¼«²ÎÓ룩

Functional Requirements Management ¹¦ÄÜÐèÇó¹ÜÀí

Initial Requirements Envisioning ³õʼÐèÇóÕ¹Íû

Iteration Modeling µü´úÄ£ÐÍ

Just in Time (JIT) Model Storming ¼°Ê±Ä£Ðͷ籩

Non-Functional Requirements Management ·Ç¹¦ÄÜÐèÇó¹ÜÀí

Who is Doing This? Ë­À´×öÕâЩ¹¤×÷

The Implications for Testing ²âÊÔÆôʾ

Figure 5. The best practices of Agile Modeling.

2.1 Active Stakeholder Participation

Agile Modeling¡¯s practice of Active Stakeholder Participation says that stakeholders should provide information in a timely manner, make decisions in a timely manner, and be as actively involved in the development process through the use of inclusive tools and techniques. When stakeholders work closely with development it increases the chance of project success by increasing the:

Ãô½ÝÄ£ÐÍÖеÄÉæÖÚ»ý¼«²ÎÓë ÊÇ˵ÉæÖÚÓ¦¸ÃÌṩ¼°Ê±ÐÅÏ¢ºÍ¼°Ê±×ö³ö½áÂÛ¡£ ²¢ÇÒͨ¹ýʹÓù¤¾ßºÍ¼¼Êõ»ý¼«²ÎÓ뿪·¢¹ý³Ì£¬µ±ÉæÖÚ»ý¼«²ÎÓ뿪·¢»î¶¯£¬´ó´óÔö¼ÓÏîÄ¿µÄ³É¹¦¼¸ÂÊ£º

Chance that the developers will understand the actual needs of the stakeholders

¿ª·¢ÈËÔ±¿ìËÙµÄÀí½âÉæÖÚ£¨Óû§-²»ÊÇ¿Í»§£©µÄʵ¼ÊÐèÇóµÄ»ú»á

Stakeholder's ability to steer the project by evolving their requirements based on seeing working software being developed by the team

ÉæÖÚ£¨Óû§-²»ÊÇ¿Í»§£©»ùÓÚ¿´µ½µÄ¿ª·¢ÍŶӿª·¢³öÀ´µÄÈí¼þ²»¶ÏÍêÉÆÐèÇóÀ´¿ØÖÆÏîÄ¿¡£

Quality of what is being built by being actively involved with acceptance testing throughout the lifecycle

ÉæÖÚ£¨Óû§-²»ÊÇ¿Í»§£©ÔÚÕû¸öÉúÃüÖÜÆÚÀï²ÎÓëÑéÊÕ²âÊÔ¡£±£Ö¤²úÆ·ÖÊÁ¿¡£

The traditional approach of having stakeholders participate in a requirements elicitation phase early in the project and then go away until the end of the project for an acceptance testing effort at the end of the lifecycle proves to be very risky in practice. People are not very good at defining their requirements up front and as a result with a serial approach to development a significant effort is invested in building and testing software which is never even used once the system is in production. To avoid these problems agilists prefer an evolutionary approach where stakeholders are actively involved, an approach which proves more effective at delivering software that people actually want.

´«Í³µÄ·½·¨ÊÇÉæÖÚÔÚÏîÄ¿µÄÔçÆÚ²ÎÓëÐèÇó·ÖÎöºÍµ÷ÑУ¬ÔÚÏîÄ¿½áÊø½×¶ÎÔÚ²ÎÓëÏîÄ¿µÄÑéÊÕ£¬ÕâÖÖ·½·¨ÊÇÓкܴó·çÏÕ¡£ ÈËÃDz»ÉÆÓÚÔÚ¿ªÊ¼·Ç³£ºÃµÄ¶¨ÒåÐèÇó ²¢ÇÒ¾­ÀúһϵÁеĿª·¢»î¶¯¹¹ÔìºÍ²âÊÔµÄÄǸöÖØÀ´Ã»ÓÐʹÓõÄÉú²úϵͳ¡£ È¥±ÜÃâÕâЩÎÊÌâÃô½Ýר¼Òϲ»¶Í¨¹ýÉæÖÚ»ý¼«²ÎÓëµÄ½ø»¯µÄ·½·¨ £¬Õâ±£Ö¤Á˽»¸¶¿Í»§Êµ¼ÊÏëÒªµÄÈí¼þµÄ½»¸¶Ð§ÂÊ

2.2 Functional Requirements Management

A fundamental agile practice is Prioritized Requirements Stack, called Product Backlog in Scrum. The basic ideas, shown inFigure 6, are that you should implement requirements in prioritized order and let your stakeholders evolve their requirements throughout the project as they learn. The diagram also indicates several advanced agile concepts. First, it's really a stack of work items and not just functional requirements (defect reports also appear on the stack as you can see inFigure 2,more on this later, and you also need to plan for work such as reviewing artifacts from other teams and taking vacations). Second, to reduce the risks associated with complex work items, not all work items are created equal after all, you will want to consider modeling a bit ahead whenever a complex work item is an iteration or two away.

Ãô½Ýʵ¼ùµÄ»ù±¾Ô­ÀíÊÇÓÅÏÈÐèÇó¶ÑÕ»£¬ÔÚSCRUMÖнÐ×ö²úÆ·Backlog ¡£ Figure 6ÖÐչʾÁË»ù±¾µÄÏë·¨£¬ ÄãÓ¦¸ÃʵÏÖÐèÇóµÄÓÅÏȼ¶Ë³Ðò ²¢ÇÒÈÃÄãµÄÉæÖÚÔÚ²úÆ·¹ý³ÌÖÐÑݱäÐèÇó¡£

Õâ¸öͼҲ±íÃ÷Á˼¸¸öÃô½Ý¸ß¼¶¸ÅÄÊ×ÏÈ£¬ËüÕæÊÇÒ»¸ö¹¤×÷ÏîÄ¿µÄ¶ÑÕ»£¬¶ø²»½ö½öÊǹ¦ÄÜÐèÇó£¨È±Ïݱ¨¸æÒ²±³ÏÔʾÔÚÕâ¸ö¶ÑÕ»ÖУ©£¬µÚ¶þ È¥¼õÉÙÄÇЩÓи´ÔÓ¹¤×÷ÏîÄ¿´øÀ´µÄ·çÏÕ£¬±Ï¾¹²»ÊÇËùÓй¤×÷ÏîÄ¿ÊÇƽµÈµÄ¡£ ÄãÓ¦¸Ã¶Ô´¦ÓÚÒ»¸ö»òÁ½¸öµü´úµÄÈκθ´ÔӵŤ×÷ÏîÄ¿ÌáÇ°¿¼Âǽ¨Ä£

Figure 6. Agile requirements change management process.

2.3 Initial Requirements Envisioning

Figure 7 depicts the project lifecycle of Agile Model Driven Development (AMDD). As you see in Figure 7, during Iteration 0 agilists will do some initial requirements modeling with their stakeholders to identify the initial, albeit high-level, requirements for the system. The goal of initial requirements envisioning is to do just enough modeling to identify the scope of the system and to produce the initial stack of requirements which form the basis of yourprioritized work item list (it just doesn't magically appear one day, after all). The goal is not to create adetailed requirements specificationas that strategy actually increases your project risk in practice.

Figure 7 Ö¸³öÁË»ùÓÚÃô½ÝÄ£ÐÍÇý¶¯¿ª·¢µÄÏîÄ¿ÉúÃüÖÜÆÚ£¬ÔÚFigure7 ÖУ¬Äã»á¿´µ½ÔÚµü´ú0 Ãô½ÝÕß»áºÏÉæÖÚÒ»Æð×öһЩÐèÇóÄ£Ðͳöʾ¹¤×÷£¬È¥Ê¶±ðϵͳµÄ³õʼµÄ¡¢¸ß¼¶µÄ¡¢ÐèÇó¡£ ³õʼÐèÇóÉèÏëµÄÄ¿µÄÊÇÓÐ×ã¹»µÄÄ£ÐÍȥʶ±ðϵͳ·¶Î§£¬²¢ÇÒÉú²ú³ö»úÓöÄãµÄ¹¤×÷ÏîÄ¿ÓÅÏȼ¶Á¢±êµÄ³õʼÐèÇó¶ÑÕ»¡£ ³õʼÐèÇóÉèÏëµÄÄ¿µÄ²»ÊDZàдÏêϸµÄÐèÇó˵Ã÷Êé £¬Äǽ«Ôö¼ÓÏîĿʵ¼ù·çÏÕ¡£

Figure 7: The Agile Model Driven Development (AMDD) Lifecycle.

Fig£ºÃô½ÝÄ£ÐÍÇý¶¯¿ª·¢ÉúÃüÖÜÆÚ

Depending on logistics issues (it can be difficult to get all the right people together at roughly the same time) and your organization's ability to make decisions within a reasonable timeframe, Iteration 0 may last for a period of several days to several months of calendar time. However, your initial requirements modeling effort should only take up several days of effort during that period. Also, note that there is a bit more to Iteration 0 than initial modeling -- the AMDD lifecycle of Figure 7 only depicts modeling activities. An important activity during Iteration 0 is garnering initial support and funding for the project, something which requires an understanding of the initial scope. You may have already garnered initial support via your pre-project planning efforts (part ofportfolio management), but realistically at some point somebody is going to ask what are we going to get, how much is it going to cost, and how long is it going to take. You need to be able to provide reasonable, although potentially evolving, answers to these questions if you're going to get permission to work on the project. In many organizations you may need to take it one step further and justify your project via a feasibility study.

¸ù¾ÝÂß¼­ÎÊÌâºÍÄãµÄ×éÖ¯ÄÜÁ¦ÔÚºÏÀíµÄʱ¼äÄÚ×÷³ö¾ö¶¨ 0µü´úÊdzÖÐø¼¸Ìì»òÕß¼¸¸öÔ¡£ È»¶ø³õʼ»¯ÐèÇó½¨Ä£¹¤×÷ÔÚÕâ¸öÖÜÆÚÄÚÓ¦¸Ã¼¸Ììʱ¼ä¡£Figure 7 ÖнöÃèÊöÁ˽¨Ä£»î¶¯¡£

ÔÚ0µü´úÖÐÒ»¸öÖØÒª»î¶¯ÊÇ»ñµÃÏîÄ¿µÄ³õʼ֧³ÖºÍ×ʽð£¬ÕâЩÊÂÇéÐèÒª¶Ô³õʼ·¶Î§µÄÀí½â¡£ ¿ÉÄÜÔÚÏîÄ¿Ç°Æڵļƻ®Ê±ÒѾ­»ñµÃÁ˳õʼµÄÖ§³Ö£¬µ«Êµ¼ÊÉÏ»¹»áÓÐЩÈËÎÊÏîÄ¿»áÊÕ»ñʲô£¬Òª»¨¶àÉÙÇ®£¬ÒªÓö೤ʱ¼ä¡£ ÄãÐèÒªÄܹ»Ìṩ×ã¹»µÄÀíÓÉ¡£

2.4 Iteration Modeling

As you see in Figure 6 agile team will implement requirements in priority order by pulling an iteration's worth of work off the top of the stack. To do this successfully you must be able to accurately estimate the work required for each requirement, then based on your previous iteration's velocity (a measure of how much work you accomplished) you pick that much work off the stack. For example, if last iteration you accomplished 15 points worth of work then the assumption is that all things being equal you'll be able to accomplish that much work this iteration. The implication is that at the beginning of eachConstruction iteration an agile team team must estimate and schedule the work that they will do that iteration. To estimate each requirement accurately you must understand the work required to implement it, and this is where modeling comes in. You discuss how you're going to implement each requirement, modeling where appropriate to explore or communicate ideas. This modeling in effect is the analysis and design of the requirements being implemented that iteration. My experience is that a two-week iteration will have roughly half a day of iteration planning, including modeling, whereas for a four-week iteration this effort will typically take a day. The goal is to accurately plan the work for the iteration, identify the highest-priority work items to be addressed and how you will do so. In other words, to think things through in the short term. The goal isn't to produce a comprehensive Gantt chart, or detailed specifications for the work to be done. The bottom line is that an often neglected aspect of Mike Cohn¡¯s planning poker is the required modeling activities implied by the technique.

ÕýÈçÄãËù¿´µ½µÄÔÚͼ6ÖÐÃô½ÝÍŶӽ«°´ÕÕ¹¤×÷ÐèÇóÓÅÏȼ¶Ë³Ðò´Óµü´ú¹¤×÷¶ÑÕ»µÄ¶¥²¿¿ªÊ¼ÊµÏÖÐèÇó¡£ÒªÏë³É¹¦µÄÖ´ÐÐÄã±ØÐëÄܹ»×¼È·µÄ¹ÀËãÿ¸öÐèÇóÒªÓõŤ×÷Á¿£¬È»ºó»ùÓÚÇ°Ãæµü´úËٶȣ¨Ò»¸öÍê³É¶àÉÙ¹¤×÷µÄ¶ÈÁ¿Ö¸±ê£©£¬ÔÚ¾ö¶¨ÄãÔÙ¶ÑÕ»ÉÏÄÃ×߶àÉÙ¹¤×÷¡£ ÀýÈ磬Äã×îºóÒ»´Îµü´úÍê³ÉÁË15¸ö¹¤×÷£¬ÄÇôÔÚͬµÈÌõ¼þÏ£¬ÄãÔÚÕâ´Îµü´úÖÐÍê³ÉÕâô¶àµÄ¹¤×÷¡£Ò²¾ÍÊÇ˵ÔÚÒ»¸öÃô½ÝÍŶӵÄÿһ¸ö¹¹Ôìµü´ú¿ªÊ¼Ê±±ØÐëÆÀ¹ÀºÍ°²Åżƻ®Õâ¸öµü´úÒª×öµÄ¹¤×÷¡£ ׼ȷµÄ¹ÀËãÿһ¸ö¹¤×÷£¬Äã±ØÐëÀí½âʵÏÖ¹¤×÷µÄÒªÇó£¬Õâ¾ÍÊǽ¨Ä£¡£

ÄãÃÇÌÖÂÛÔõôȥʵÏÖÿһ¸öÐèÇó£¬ÔÚ½¨Ä£Ê½ÖнøÐÐ̽Ìֺ͹µÍ¨Ïë·¨¡£ Õâ¸ö½¨Ä£Êµ¼ÊÉϾͷ´¸´µÄÐèÇóʵÏֵķÖÎöºÍÉè¼Æ¡£Îҵľ­ÑéÊÇÒ»¸öÁ½Öܵĵü´úÓ¦¸ÃÓаëÌìµÄµü´ú¼Æ»®Ê±¼ä£¬°üÀ¨½¨Ä£¡£Èç¹ûÊÇ4Öܵĵü´úÖÜÆÚ£¬Õâ¸ö¹¤×÷´ó¸Å»¨·Ñ1Ììʱ¼ä¡£ Ä¿±ê¾ÍÊÇ׼ȷµÄ¼Æ»®µü´ú¹¤×÷£¬Ê¶±ð×î¸ßÓÅÏȼ¶¹¤×÷ÏîÄ¿ºÍÔõô×ö¡£ »»¾ä»°Ëµ£¬¾ÍÊÇÔÚ¶Ìʱ¼äÄÚ½øÐÐ˼¿¼¡£ Õâ¸ö¹¤×÷Ä¿±ê²»ÊDzúÉúÒ»¸öÍêÕûµÄ¸Ê±ÈÌضȻòÕßÏêϸµÄ¹¤×÷¹æ·¶¡£

2.5 Just in Time (JIT) Model Storming

The details of these requirements are modeled on a just in time (JIT) basis in model storming sessions during the development iterations. Model storming is just in time (JIT) modeling: you identify an issue which you need to resolve, you quickly grab a few team mates who can help you, the group explores the issue, and then everyone continues on as before. One of the reasons why youmodel storm is to analyze the details of a requirement. For example, you may be implementing auser story which indicates that the system you¡¯re building must be able to edit student information. The challenge is that the user story doesn't include any details as to what the screen should look like -- in the agile world we like to say that user stories are "reminders to have a conversation with your stakeholders", which in other words says to do some detailed requirements modeling. So, to gather the details you call yourproduct owner over and together you create a sketch of what the screen will look like drawing several examples until you come to a common understanding of what needs to be built. In other words, you model storm the details.

ÔÚ¿ª·¢µü´úÖÐͨ¹ýÄ£Ðͷ籩»áÒé»òÌÖÂÛ¼°Ê±°ÑÕâЩÏêϸÐèÇóÄ£ÐÍ»¯¡£ Ä£Ðͷ籩ÊǼ°Ê±Ä£ÐÍ£ºµ±ÄãÄãʶ±ð³öÒ»¸öÐèÒª½â¾öµÄÎÊÌ⣬ÂíÉϾÍÒªÕÒ³ö¼¸¸öÄÜ°ïÖú½â¾öÎÊÌâµÄÆäËûÈËÔ±£¬Ò»ÆðÑо¿Õâ¸öÎÊÌ⣬Ȼºóÿ¸öÈ˼ÌÐøÏëÇ°Ãæ½²µÄÒ»Ñù¡£ ͨ¹ýÄ£Ðͷ籩ȥ·ÖÎöÏêϸÐèÇóµÄÔ­ÒòÖ®Ò»¡£ ÀýÈ磬Äã¿ÉÄÜʵÏÖÒ»¸öÓû§³¡¾°-ËûÖ¸³öϵͳ±ØÐëÄܹ»±à¼­Ñ§ÉúÐÅÏ¢¡£

2.6 Non-Functional Requirements

Non-functional requirements, also known as "technical requirements" or "quality of service" (QoS) requirements, focus on aspects that typically cross-cut functional requirements. Common non-functionals include accuracy, availability, concurrency, consumability/usability, environmental/green concerns, internationalization, operations issues, performance, regulatory concerns, reliability, security, serviceability, and supportability. Constraints, which for the sake of simplicity I will lump in with non-functionals, define restrictions on your solution, such as being required to store all corporate data in DB2 per your enterprise architecture, or only being allowed to use open source software (OSS), which conforms to a certain level of OSS license. Constraints can often impact your technical choices by restricting specific aspects of your architecture, defining suggested opportunities for reuse, and even architectural customization points. Although many developers will bridle at this, the reality is that constraints often make things much easier for your team because some technical decisions have already been made for you. I like to think of it like this¡ªagilists will have the courage to make tomorrow's decisions tomorrow, disciplined agilists have the humility to respect yesterday's decisions as well.

Although agile teams have pretty much figured out how to effectively address functional requirements, most are still struggling with non-functionals. Some teams create technical stories to capture non-functionals in a simple manner as they capture functional requirements via user stories. This is great for documentation purposes but quickly falls apart from a management and implementation point of view. The agile requirements management strategy described earlier assumes that requirements are self-contained and can be addressed in a finite period of time, an assumption that doesn't always hold true for non-functionals.

There are four fundamental strategies, all of which should be applied, for addressing non-functional requirements on an agile project:

Initial envisioning. It is during your initial requirements envisioning that you will identify high-level functional requirements and non-functionals. All forms of requirements will drive yourarchitecture envisioning efforts, which occur iteratively in parallel with requirements envisioning. The goal of your requirements envisioning efforts is to identify the high-level requirements and the goal of your architecture envisioning efforts is to ensure that your architecture vision effectively addresses those requirements. You don't need to write detailed specifications at this point in time, but you do want to ensure that you're going in the right direction.

JIT model storming. just in time (JIT) model storming through the construction lifecycle to explore the details
Independent parallel testing. This is performed throughout the lifecycle to ensure that the system addresses the non-functional requirements appropriately.More on this later.

Education. Developer education so that they understand the fundamentals of the full range ofarchitectural concerns described in the requirements.

2.7 Who is Doing This?

Figure 8 summarizes some results fromAmbysoft¡¯s 2008 Agile Practice and Principles Survey. As you can see, it is quite common for agile teams to do some up-frontrequirements envisioning and that requirements details will emerge over time (via iteration modeling and model storming). A tools-based view is shown in Figure 9, which summarizes some results fromAmbysoft¡¯s 2008 Test Driven Development (TDD) Survey. Although there is a lot of rhetoric aroundacceptance test-driven development (TDD) the fact is that not only hasn't it replaced agile requirements modeling techniques it doesn't even appear to be as popular. The implication is that requirements are explored via several techniques on agile teams, and rightfully so because one single strategy is rarely sufficient for real-world situations.

Figure 8. Requirements practices on agile projects.

Figure 9. Requirements capture practices on agile teams.

2.8 The Implications for Testing

There are several important implications that agile requirements strategies have for agile testing:

Ãô½ÝÐèÇó²ßÂÔ¶ÔÃô½Ý²âÊÔÓм¸¸öÖØÒªÓ°Ï죺

Agile testing must be iterative. Agile requirements activities, and design activities, and construction activities, are iterative in nature. So must testing activities.

Ãô½Ý²âÊÔ±ØÐëÊǵü´ú£ºÃô½ÝÐèÇó»î¶¯ºÍÉè¼Æ»î¶¯ÒÔ¼°¹¹Ôì»î¶¯£¬±¾ÖÊÊǵü´úµÄ£¬ËùÓвâÊԻҲÊǵü´úµÄ¡£

Agile testers cannot rely on having complete specifications. As you saw in Figures2 and7 requirements are identified, explored, and implemented throughout the lifecycle. There isn't a single requirements phase which produces a comprehensive requirements specification, therefore your test strategies cannot rely on having a complete specification available.

Ãô½Ý²â²»ÄÜÒÀÀµÍêÕûµÄ˵Ã÷Ê飺µ±Äã¿´Figure 2 ºÍ 7ÖеÄÐèÇó±»Ê¶±ð£¬Ñо¿ºÍʵÏֹᴩÉêÃ÷ÖÜÆÚ£¬Ã»Óмòµ¥µÄÐèÇó½×¶ÎÈ¥²ú³öÍêÕûµÄÐèÇó˵Ã÷Ê飬Òò´Ë£¬²âÊÔ²ßÂÔ²»ÄÜÒÀÀµÍêÕûµÄÐèÇó˵Ã÷Êé¡£

Agile testers must be flexible. Testers must be prepared to work to the best of their ability, with the information provided to them at the time, with the full understanding that the information they are basing their work on today could change tomorrow.

Ãô½Ý²âÊÔÈËÔ±±ØÐëÊÇÁé»îµÄ¡£ ²âÊÔÈËÔ±±ØÐëÓÐ×îºÃµÄ¹¤×÷ÄÜÁ¦£¬¸ù¾Ý±»ÌṩµÄÐÅÏ¢½øÐй¤×÷¡£ Äܹ»È«ÃæµÄÀí½âÌṩËûÃǵŤ×÷µÄÐÅÏ¢£¬¶øÇÒÕâЩÐÅÏ¢¿ÉÄܾ­³£±ä»¯¡£ Ò²¾ÍÊÇ˵Ãô½Ý²âÊÔÈËÔ±ÒªÊÊÓ¦±ä»¯£¬¿ìËÙµÄÈ«ÃæµÄÀí½â¹¤×÷ÐÅÏ¢¡£

The good news is that agile testing techniques exist which reflect these implications. The challenge is that you need to be willing to adopt them.

   
3779 ´Îä¯ÀÀ       19
Ïà¹ØÎÄÕÂ

΢·þÎñ²âÊÔÖ®µ¥Ôª²âÊÔ
һƪͼÎÄ´øÄãÁ˽â°×ºÐ²âÊÔÓÃÀýÉè¼Æ·½·¨
È«ÃæµÄÖÊÁ¿±£ÕÏÌåϵ֮»Ø¹é²âÊÔ²ßÂÔ
È˹¤ÖÇÄÜ×Ô¶¯»¯²âÊÔ̽Ë÷
Ïà¹ØÎĵµ

×Ô¶¯»¯½Ó¿Ú²âÊÔʵ¼ù֮·
jenkins³ÖÐø¼¯³É²âÊÔ
ÐÔÄܲâÊÔÕï¶Ï·ÖÎöÓëÓÅ»¯
ÐÔÄܲâÊÔʵÀý
Ïà¹Ø¿Î³Ì

³ÖÐø¼¯³É²âÊÔ×î¼Ñʵ¼ù
×Ô¶¯»¯²âÊÔÌåϵ½¨ÉèÓë×î¼Ñʵ¼ù
²âÊԼܹ¹µÄ¹¹½¨ÓëÓ¦ÓÃʵ¼ù
DevOpsʱ´úµÄ²âÊÔ¼¼ÊõÓë×î¼Ñʵ¼ù
×îпγ̼ƻ®
ÐÅÏ¢¼Ü¹¹½¨Ä££¨»ùÓÚUML+EA£©3-21[±±¾©]
Èí¼þ¼Ü¹¹Éè¼Æʦ 3-21[±±¾©]
ͼÊý¾Ý¿âÓë֪ʶͼÆ× 3-25[±±¾©]
ÒµÎñ¼Ü¹¹Éè¼Æ 4-11[±±¾©]
SysMLºÍEAϵͳÉè¼ÆÓ뽨ģ 4-22[±±¾©]
DoDAF¹æ·¶¡¢Ä£ÐÍÓëʵÀý 5-23[±±¾©]

LoadRunnerÐÔÄܲâÊÔ»ù´¡
Èí¼þ²âÊÔ½á¹û·ÖÎöºÍÖÊÁ¿±¨¸æ
ÃæÏò¶ÔÏóÈí¼þ²âÊÔ¼¼ÊõÑо¿
Éè¼Æ²âÊÔÓÃÀýµÄËÄÌõÔ­Ôò
¹¦ÄܲâÊÔÖйÊÕÏÄ£Ð͵Ľ¨Á¢
ÐÔÄܲâÊÔ×ÛÊö


ÐÔÄܲâÊÔ·½·¨Óë¼¼Êõ
²âÊÔ¹ý³ÌÓëÍŶӹÜÀí
LoadRunner½øÐÐÐÔÄܲâÊÔ
WEBÓ¦ÓõÄÈí¼þ²âÊÔ
ÊÖ»úÈí¼þ²âÊÔ
°×ºÐ²âÊÔ·½·¨Óë¼¼Êõ


ij²©²ÊÐÐÒµ Êý¾Ý¿â×Ô¶¯»¯²âÊÔ
IT·þÎñÉÌ Web°²È«²âÊÔ
IT·þÎñÉÌ ×Ô¶¯»¯²âÊÔ¿ò¼Ü
º£º½¹É·Ý µ¥Ôª²âÊÔ¡¢Öع¹
²âÊÔÐèÇó·ÖÎöÓë²âÊÔÓÃÀý·ÖÎö
»¥ÁªÍøweb²âÊÔ·½·¨Óëʵ¼ù
»ùÓÚSeleniumµÄWeb×Ô¶¯»¯²âÊÔ