*
    The Agile Attitude
* Scrum / Agile
* Large Scale Transformation
* Team
* Management / Leadership
* Agile Testing / Test Automation
*…



                           *
Software testing
 -is an empirical
 -technical
 -investigation
 -conducted to provide stakeholders
 -with information
 -about the quality
 -of the product or service under test
Quality
 * is value
 * to some person
      — Gerald Weinberg


 * Note the inherent subjectivity
 * Note that different stakeholders will perceive the same
  product as having different levels of quality


 * Testers look for different things
    –for different stakeholders. . . .
To know how to test something, you

must understand who the stakeholders

are and how they can be affected by

the product or system under test.




*
• Users
               • Programmers whose code
                 interacts with this code
               • Maintenance programmers
Stakeholders   • Technical writers
 (Examples)    • Trainers
               • Tech support staff
               • Translators
               • Marketers
               • Investors
*
How well software is
          designed


     How well the software
    conforms to that design




*
Software   Conformance to requirements
           or program specification
Product
Quality    Scalability


           Correctness


           Completeness


           Absence of bugs


           Fault-tolerance               Extensibility
                                         Maintainability
           Documentation
Source    Readability
Code
Quality   Ease of maintenance, testing, debugging,
          fixing, modification and portability

          Low complexity


          Low resource consumption : memory, CPU


          Number of compilation or lint warnings


          Robust input validation and error handling,
          established by software fault injection
*
Testing Method
White Box Testing Black Box Testing          Grey Box Testing
• API Testing        • Equivalence
• Code Coverage        Partitioning
• Fault Injection    • Boundary Value
• Mutation Testing     Analysis
• Static Testing     • All-Pairs Testing
                     • Fuzz Testing
                     • Model-Based Testing
                     • Traceability Matrix
                     • Exploratory Testing
                     • Specification-Based
                       Testing
Testing Level

       •Unit Testing
       •Integration Testing
       •System Testing
       •System Integration Testing
       •Regression Testing
       •Acceptance Testing
       •Alpha Testing
       •Bata Testing
Non-Functional Testing
  Performance Testing & Load Testing
           Stability Testing
           Usability Testing
           Security Testing
 Internationalization and Localization
         Destructive Testing
Software can fulfill the objective function

     The performance under certain workload

Software can continuously function well in or above
                acceptable period

           Easy to use and understand

       Prevent system intrusion by hackers

         Robustness while software failed



                   *
Easy to maintain
 Easy to debug
Easy to fix bug
Easy to modify
   Readable
  Complexity
 Error handling



        *
*
    Scrum-Based
*
* Identify User Role
  * E.g. In user-centered design,
    fictional Personas are created to
    represent the archetypal end
    users


* Describe the Story
  * E.g. the Condition of Satisfaction
  * i.e. Acceptance Tests


       *
* i.e. Scrum Backlog Grooming
  * Product Owner, Team, Scrum Master
  * Clarify User Stories
  * Generate Acceptance Tests




                                    *
* Detect
    * Data Reference errors
    * Data-Declaration errors
    * Computation errors
    * Comparison errors
    * Control-Flow errors
    * Interface errors
    * Input / Output errors


*
* Automated test execution, e.g.
  * Acceptance Testing : Robotframework
  * Unit Testing : xUnit
* Frequent test execution, e.g. Hudson
* Code quality measurement, e.g. Sonar




   *
Xu Yi

                   Twitter : kaverjody
              mailto:kaverjody@gmail.com
            http://damianji.spaces.live.com/
           http://www.linkedin.com/in/kaveri

“Consultant, Agile Development” @ Nokia Siemens Networks
  Scrum / Agile Coaching, Agile Testing & Test Automation




                       *Thanks!

Testing Theories & Methodologies

  • 1.
    * The Agile Attitude
  • 2.
    * Scrum /Agile * Large Scale Transformation * Team * Management / Leadership * Agile Testing / Test Automation *… *
  • 3.
    Software testing -isan empirical -technical -investigation -conducted to provide stakeholders -with information -about the quality -of the product or service under test
  • 4.
    Quality * isvalue * to some person — Gerald Weinberg * Note the inherent subjectivity * Note that different stakeholders will perceive the same product as having different levels of quality * Testers look for different things –for different stakeholders. . . .
  • 5.
    To know howto test something, you must understand who the stakeholders are and how they can be affected by the product or system under test. *
  • 6.
    • Users • Programmers whose code interacts with this code • Maintenance programmers Stakeholders • Technical writers (Examples) • Trainers • Tech support staff • Translators • Marketers • Investors
  • 7.
  • 8.
    How well softwareis designed How well the software conforms to that design *
  • 9.
    Software Conformance to requirements or program specification Product Quality Scalability Correctness Completeness Absence of bugs Fault-tolerance Extensibility Maintainability Documentation
  • 10.
    Source Readability Code Quality Ease of maintenance, testing, debugging, fixing, modification and portability Low complexity Low resource consumption : memory, CPU Number of compilation or lint warnings Robust input validation and error handling, established by software fault injection
  • 11.
  • 12.
    Testing Method White BoxTesting Black Box Testing Grey Box Testing • API Testing • Equivalence • Code Coverage Partitioning • Fault Injection • Boundary Value • Mutation Testing Analysis • Static Testing • All-Pairs Testing • Fuzz Testing • Model-Based Testing • Traceability Matrix • Exploratory Testing • Specification-Based Testing
  • 13.
    Testing Level •Unit Testing •Integration Testing •System Testing •System Integration Testing •Regression Testing •Acceptance Testing •Alpha Testing •Bata Testing
  • 14.
    Non-Functional Testing Performance Testing & Load Testing Stability Testing Usability Testing Security Testing Internationalization and Localization Destructive Testing
  • 16.
    Software can fulfillthe objective function The performance under certain workload Software can continuously function well in or above acceptable period Easy to use and understand Prevent system intrusion by hackers Robustness while software failed *
  • 17.
    Easy to maintain Easy to debug Easy to fix bug Easy to modify Readable Complexity Error handling *
  • 18.
    * Scrum-Based
  • 19.
  • 20.
    * Identify UserRole * E.g. In user-centered design, fictional Personas are created to represent the archetypal end users * Describe the Story * E.g. the Condition of Satisfaction * i.e. Acceptance Tests *
  • 21.
    * i.e. ScrumBacklog Grooming * Product Owner, Team, Scrum Master * Clarify User Stories * Generate Acceptance Tests *
  • 22.
    * Detect * Data Reference errors * Data-Declaration errors * Computation errors * Comparison errors * Control-Flow errors * Interface errors * Input / Output errors *
  • 23.
    * Automated testexecution, e.g. * Acceptance Testing : Robotframework * Unit Testing : xUnit * Frequent test execution, e.g. Hudson * Code quality measurement, e.g. Sonar *
  • 24.
    Xu Yi Twitter : kaverjody mailto:kaverjody@gmail.com http://damianji.spaces.live.com/ http://www.linkedin.com/in/kaveri “Consultant, Agile Development” @ Nokia Siemens Networks Scrum / Agile Coaching, Agile Testing & Test Automation *Thanks!