Agile Software Developing and Testing Process


Published on

  • Be the first to comment

  • Be the first to like this

No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide
  • Helmes is focused on developing mission-critical software systems. Helmes has always valued the symbiosis between business and IT. Thus our goal is to build systems with the purpose to benefit the customer. Building mission-critical software systems requires special measures.
  • There are specific rules for the agile software teams.
  • Development process basic concept relies on the user stories .
  • The user stories do not guarantee agile development process. Thus we have to consider the subsequent aspects : ...
  • What about testing in the agile software developing process?
  • In my opinion agile software testing is more complicated than compared to traditional V-model testing activity. Since the tester has only user requirements, she or he has to think more broadly. For that tester needs skills. The main skill which helps tester in the agile testing is the domain knowledge about the system under test. Domain knowledge helps tester to understand the aspects for complete testing.
  • Web applications – this type of applications have the highest degree of complexity. Helmes has developed specifically web applications. So I hope you agree that on the agile testing prospect the web applications put extra work for the tester since the development process is based on the user stories (which actually are not specific requirements).
  • Now let’s see other skills which benefit the tester.
  • So we talked about the policies, domains and skills. Let’s take now a closer look at the real life.
  • According to the developers expectations, tester should be able to follow above mentioned rules. Best practices Think forward and use your domain and system knowledge to prevent further problems - for instance try to find suspicious places in analyze. Something like, what happens when I have that kind of situation. If I receive a pensive look from a developer, than it tells me I’ve just found a bug in code that I’ve not even seen or that hasn’t even been built. For example: validation problems.
  • Agile Software Developing and Testing Process

    1. 1. Agile Software Developing and Testing Process [email_address] Test Engineer 2009
    2. 2. About Helmes <ul><li>The Mission-Critical Systems developing IT firm in Estonia </li></ul><ul><li>Number of developers over 160 </li></ul><ul><li>We have been and want to be the most efficient IT firm in Baltic States </li></ul>
    3. 3. Agile team policy <ul><li>Development team policy </li></ul><ul><ul><li>Team members should work closely within the team. </li></ul></ul><ul><ul><li>Team members must share the information between each other. </li></ul></ul><ul><ul><li>Developers must continuously pay attention to the technical excellence and good design. </li></ul></ul>
    4. 4. Agile software development policy <ul><li>Development process policy </li></ul><ul><ul><li>Development process is based on story cards. </li></ul></ul><ul><ul><li>User stories – captured user requirement, with following aspects: </li></ul></ul><ul><ul><ul><li>focus on customer needs; </li></ul></ul></ul><ul><ul><ul><li>should be short; </li></ul></ul></ul><ul><ul><ul><li>user story management in testing management system. </li></ul></ul></ul><ul><ul><li>Story cards – documented user requirement: </li></ul></ul><ul><ul><ul><li>card should comprise these parts; </li></ul></ul></ul><ul><ul><ul><li>Card – name/description of the user story. </li></ul></ul></ul><ul><ul><ul><li>Conversation – more detailed description of the user story. </li></ul></ul></ul><ul><ul><ul><li>Confirmation – test-cases for the story. </li></ul></ul></ul>
    5. 5. Agile software development policy <ul><li>Unit tests are required. </li></ul><ul><li>Collective code ownership. </li></ul><ul><li>Automated build process (continuous integration) is required. </li></ul><ul><li>“ Simple is best” approach to software design. </li></ul><ul><li>Requirements for the coding: </li></ul><ul><ul><li>commented coding; </li></ul></ul><ul><ul><li>coding standards. </li></ul></ul>
    6. 6. Agile testing policy <ul><li>Testing process policy </li></ul><ul><ul><li>Acceptance tests should be created before the development. </li></ul></ul><ul><ul><li>Testing should start as early as practical and will take place continuously throughout the lifecycle. </li></ul></ul><ul><ul><li>Quality should be everyone ’s concern. </li></ul></ul><ul><ul><li>Testing is the headlights of the project and provides information to the team. </li></ul></ul><ul><ul><li>Multiple software iterations are required. </li></ul></ul><ul><ul><li>Only working software will be delivered. </li></ul></ul>
    7. 7. Agile testing policy - skills <ul><li>Skills for the testers in agile testing process. </li></ul><ul><li>Domain knowledge about the system under test. </li></ul><ul><ul><li>Testing Desktop applications </li></ul></ul><ul><ul><ul><li>Focus on a specific environment; </li></ul></ul></ul><ul><ul><ul><li>Application testing can be done at once. </li></ul></ul></ul><ul><ul><li>Testing Client-server applications </li></ul></ul><ul><ul><ul><li>Two components to test – server and executable application on the client machine. </li></ul></ul></ul><ul><ul><ul><li>Application testing involves categories like: GUI (on both side), functionality, load, client – server interaction, back - end. </li></ul></ul></ul><ul><ul><ul><li>The knowledge of the number of the clients and servers. </li></ul></ul></ul>
    8. 8. Agile testing policy - skills <ul><ul><li>Testing Web applications (different and complex to test) </li></ul></ul><ul><ul><ul><li>When you are testing the web application, you must consider following aspects: </li></ul></ul></ul><ul><ul><ul><ul><li>numerous application usage paths are possible; </li></ul></ul></ul></ul><ul><ul><ul><ul><li>user knowledge about using the application; </li></ul></ul></ul></ul><ul><ul><ul><ul><li>security aspects; </li></ul></ul></ul></ul><ul><ul><ul><ul><li>network speed; </li></ul></ul></ul></ul><ul><ul><ul><ul><li>different types of OS platforms and browsers. </li></ul></ul></ul></ul><ul><ul><ul><li>Web application testing involves also categories like: GUI, functionality, load, client – server interaction, back - end. </li></ul></ul></ul>
    9. 9. Agile testing policy - skills <ul><li>The ability to treat development as the customer of testing. </li></ul><ul><li>A level of technical competency to be able to interact effectively with the development team. </li></ul><ul><li>Therefore tester should have an ability to: </li></ul><ul><ul><li>understand the technology used; </li></ul></ul><ul><ul><li>understand the context of the developed software; </li></ul></ul><ul><ul><li>understand the written code. </li></ul></ul>
    10. 10. Agile testing process in real life <ul><li>Developers viewpoint in matters of agile testing –their expectations. </li></ul><ul><li>Best practices for testers in the agile testing process – focus on the functional testing area. </li></ul>
    11. 11. Developer viewpoint <ul><li>Developers expectations for testers: </li></ul><ul><ul><li>Practical and patient </li></ul></ul><ul><ul><ul><li>Must understand the problems that arise. </li></ul></ul></ul><ul><ul><ul><li>Must understand the business logic. </li></ul></ul></ul><ul><ul><li>Technologically apprehensive </li></ul></ul><ul><ul><ul><li>Understands technical logs. </li></ul></ul></ul><ul><ul><ul><li>Able to make white-box testing, when necessary. </li></ul></ul></ul><ul><ul><li>Shows the initiative for solving the bugs, issues. </li></ul></ul><ul><ul><ul><li>Reminds developers of unsolved issues. </li></ul></ul></ul>
    12. 12. Developer viewpoint <ul><ul><li>Able to describe the issue precisely (reproducible issue) </li></ul></ul><ul><ul><li>Able to analyze business logic </li></ul></ul><ul><ul><ul><li>Able to associate problems, situations. </li></ul></ul></ul><ul><ul><li>Able to conduct testing in systematic manner </li></ul></ul><ul><ul><ul><li>Tester should not do the testing as a monkey. Testing activity must be an organized activity. </li></ul></ul></ul>
    13. 13. Best practices for testers <ul><li>Best practices or advices for the testers in the real life agile testing process. </li></ul><ul><ul><li>Learn the system and evolve test ideas through the iterations. </li></ul></ul><ul><ul><li>Build test data between the iterations. </li></ul></ul><ul><ul><li>Gather all possible questions and ask them all at once – in this way you disturb the developer less. </li></ul></ul><ul><ul><li>Ask all questions raised in clear and compact manner. </li></ul></ul><ul><ul><li>Think forward and use your domain and system knowledge to prevent further problems. </li></ul></ul><ul><ul><li>Do not assume anything – if there’s any doubt clear it out. </li></ul></ul><ul><ul><li>Note all observations and changes in functionality. </li></ul></ul><ul><ul><li>The written issue must motivate the developer to solve it. </li></ul></ul>
    14. 14. Thank you for your attention! Questions? [email_address]