Testing with Agile

بواسطة: Coursera

Overview

To deliver agile outcomes, you have to do more than implement an agile process- you have to create focus around what matters to your user and rigorously test how well what you’re doing is delivering on that focus. Driving to testable ideas (hypotheses) and maximizing the results of your experimentation is at the heart of a high-functioning practice of agile. This course shows you how to facilitate alignment and create a culture of experimentation across your product pipeline.

You’ll understand how to answer these four big questions:
1. How do we drive our agility with analytics?
2. How do we create compelling propositions for our user?

3. How do we achieve excellent usability?

4. How do we release fast without creating disasters?


As a Project Management Institute (PMI®) Registered Education Provider, the University of Virginia Darden School of Business has been approved by PMI to issue 20 professional development units (PDUs) for this course, which focuses on core competencies recognized by PMI. (Provider #2122)

This course is supported by the Batten Institute at UVA’s Darden School of Business. The Batten Institute’s mission is to improve the world through entrepreneurship and innovation: www.batteninstitute.org.

Syllabus

Should we build it? Did it matter?
-Nothing will help a team deliver better outcomes like making sure they’re building something the user values. This might sound simple or obvious, but I think after this module it’s likely you’ll find opportunities to help improve your team’s focus by testing ideas more definitively before you invest in developing software. In this module you’ll learn how to make concept testing an integral part of your culture of experimentation. We’ll continue to apply the Lean Startup methods you learned in ‘Running Product Design Sprints’ (and/or you can review the tutorials in the Resources section). We’ll look at how high-functioning teams design and run situation-appropriate experiments to test ideas, and how that works before the fact (when you’re testing an idea) and after the fact (when you’re testing the value of software you’ve released).

Is it usable?
-The best products are tested for usability early and often, avoiding the destructive stress and uncertainty of a ‘big unveil’. In this module, you’ll learn how to diagnose, design and execute phase-appropriate user testing. The tools you’ll learn to use here (a test plan template, prototyping tool, and test session infrastructure) are accessible/teachable to anyone on your team. And that’s a very good thing- often products are released with poor usability because there ‘wasn’t enough time’ to test it. With these techniques, you’ll be able to test early and often, reinforcing your culture of experimentation.

Does it break?
-You’ve learned how to test ideas and usability to reduce the amount of software your team needs to build and to focus its execution.Now you’re going to learn how high-functioning teams approach testing of the software itself. The practice of continuous delivery and the closely related Devops movement are changing the way we build and release software. It wasn’t that long ago where 2-3 releases a year was considered standard. Large firms like Facebook now release new code multiple times per day. In this module, we’ll look at the delivery pipeline and step through what successful practitioners do at each stage and how you can diagnose and apply the practices that will improve your implementation of agile.

Taught by

Alex Cowan

Testing with Agile
الذهاب الي الدورة

Testing with Agile

بواسطة: Coursera

  • Coursera
  • مجانية
  • الإنجليزية
  • متاح شهادة
  • أيام محددة
  • الجميع
  • N/A
8.1.2PHP Version757msRequest Duration2MBMemory UsageGET ar/الدورات/{slug}Route
    • Booting (489ms)
    • Application (266ms)
    • 1 x Booting (64.61%)
      488.78ms
      1 x Application (35.14%)
      265.84ms
      14 templates were rendered
      • public.courses.show (resources/views/public/courses/show.blade.php)3bladefile
        Params
        0
        course
        1
        links
        2
        config
      • public.courses.partials.breadcrumbs (resources/views/public/courses/partials/breadcrumbs.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      • public.courses.partials.heading (resources/views/public/courses/partials/heading.blade.php)7bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
        6
        classes
      • public.courses.partials.details (resources/views/public/courses/partials/details.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      • public.courses.partials.breadcrumbs (resources/views/public/courses/partials/breadcrumbs.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      • public.courses.partials.heading (resources/views/public/courses/partials/heading.blade.php)7bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
        6
        classes
      • public.layouts.main (resources/views/public/layouts/main.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      • public.layouts.partials.meta (resources/views/public/layouts/partials/meta.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      • public.layouts.partials.navbar (resources/views/public/layouts/partials/navbar.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      • public.auth.profile.partials.links (resources/views/public/auth/profile/partials/links.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      • public.auth.profile.partials.link (resources/views/public/auth/profile/partials/link.blade.php)8bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
        6
        route
        7
        title
      • public.auth.profile.partials.link (resources/views/public/auth/profile/partials/link.blade.php)8bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
        6
        route
        7
        title
      • public.auth.profile.partials.link (resources/views/public/auth/profile/partials/link.blade.php)8bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
        6
        route
        7
        title
      • public.layouts.partials.flash-session (resources/views/public/layouts/partials/flash-session.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      uri
      GET ar/الدورات/{slug}
      middleware
      web, localize:ar
      controller
      App\Http\Controllers\CourseController@show
      as
      ar.courses.show
      namespace
      prefix
      /ar
      where
      file
      app/Http/Controllers/CourseController.php:17-35
      7 statements were executed9.3ms
      • select * from `courses` where `slug_ar` = 'testing-with-agile' limit 1
        7.75ms/app/Http/Controllers/CourseController.php:20corspedia
        Metadata
        Bindings
        • 0. testing-with-agile
        Backtrace
        • 17. /app/Http/Controllers/CourseController.php:20
        • 18. /vendor/laravel/framework/src/Illuminate/Routing/Controller.php:54
        • 19. /vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php:43
        • 20. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:260
        • 21. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:205
      • update `courses` set `visitors` = `visitors` + 1, `courses`.`updated_at` = '2025-07-05 11:30:22' where `id` = 2437
        590μs/app/Http/Controllers/CourseController.php:21corspedia
        Metadata
        Bindings
        • 0. 2025-07-05 11:30:22
        • 1. 2437
        Backtrace
        • 17. /app/Http/Controllers/CourseController.php:21
        • 18. /vendor/laravel/framework/src/Illuminate/Routing/Controller.php:54
        • 19. /vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php:43
        • 20. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:260
        • 21. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:205
      • select `id`, `name_en`, `name_ar`, `topic_id`, `slug_en`, `slug_ar` from `subjects` where `subjects`.`id` in (32)
        210μs/app/Http/Controllers/CourseController.php:23corspedia
        Metadata
        Backtrace
        • 20. /app/Http/Controllers/CourseController.php:23
        • 21. /vendor/laravel/framework/src/Illuminate/Routing/Controller.php:54
        • 22. /vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php:43
        • 23. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:260
        • 24. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:205
      • select `id`, `name_en`, `name_ar`, `slug_en`, `slug_ar` from `topics` where `topics`.`id` in (1)
        180μs/app/Http/Controllers/CourseController.php:23corspedia
        Metadata
        Backtrace
        • 25. /app/Http/Controllers/CourseController.php:23
        • 26. /vendor/laravel/framework/src/Illuminate/Routing/Controller.php:54
        • 27. /vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php:43
        • 28. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:260
        • 29. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:205
      • select * from `institutions` where `institutions`.`id` in (13) and `institutions`.`deleted_at` is null
        180μs/app/Http/Controllers/CourseController.php:23corspedia
        Metadata
        Backtrace
        • 20. /app/Http/Controllers/CourseController.php:23
        • 21. /vendor/laravel/framework/src/Illuminate/Routing/Controller.php:54
        • 22. /vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php:43
        • 23. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:260
        • 24. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:205
      • select * from `providers` where `providers`.`id` in (2) and `providers`.`deleted_at` is null
        170μs/app/Http/Controllers/CourseController.php:23corspedia
        Metadata
        Backtrace
        • 20. /app/Http/Controllers/CourseController.php:23
        • 21. /vendor/laravel/framework/src/Illuminate/Routing/Controller.php:54
        • 22. /vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php:43
        • 23. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:260
        • 24. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:205
      • select * from `html_files` where `html_files`.`id` = 2428 limit 1
        220μs/app/Models/Course.php:84corspedia
        Metadata
        Bindings
        • 0. 2428
        Backtrace
        • 21. /app/Models/Course.php:84
        • 28. view::public.courses.show:29
        • 30. /vendor/laravel/framework/src/Illuminate/Filesystem/Filesystem.php:125
        • 31. /vendor/laravel/framework/src/Illuminate/View/Engines/PhpEngine.php:58
        • 32. /vendor/laravel/framework/src/Illuminate/View/Engines/CompilerEngine.php:72
      App\Models\HtmlFile
      1
      App\Models\Provider
      1
      App\Models\Institution
      1
      App\Models\Topic
      1
      App\Models\Subject
      1
      App\Models\Course
      1
        _token
        f0cn2Khj4OpjJAXSEShRA9pRFnMECKgFi8w1oCef
        locale
        ar
        _previous
        array:1 [ "url" => "https://www.corspedia.com/ar/%D8%A7%D9%84%D8%AF%D9%88%D8%B1%D8%A7%D8%AA/testin...
        _flash
        array:2 [ "old" => [] "new" => [] ]
        PHPDEBUGBAR_STACK_DATA
        []
        path_info
        /ar/%D8%A7%D9%84%D8%AF%D9%88%D8%B1%D8%A7%D8%AA/testing-with-agile
        status_code
        200
        
        status_text
        OK
        format
        html
        content_type
        text/html; charset=UTF-8
        request_query
        []
        
        request_request
        []
        
        request_headers
        0 of 0
        array:24 [ "cf-ipcountry" => array:1 [ 0 => "US" ] "cf-connecting-ip" => array:1 [ 0 => "216.73.216.12" ] "cdn-loop" => array:1 [ 0 => "cloudflare; loops=1" ] "x-forwarded-proto" => array:1 [ 0 => "https" ] "x-forwarded-for" => array:1 [ 0 => "216.73.216.12" ] "sec-fetch-site" => array:1 [ 0 => "none" ] "accept" => array:1 [ 0 => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7" ] "user-agent" => array:1 [ 0 => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)" ] "upgrade-insecure-requests" => array:1 [ 0 => "1" ] "sec-ch-ua-platform" => array:1 [ 0 => ""Windows"" ] "sec-ch-ua-mobile" => array:1 [ 0 => "?0" ] "sec-ch-ua" => array:1 [ 0 => ""Chromium";v="130", "HeadlessChrome";v="130", "Not?A_Brand";v="99"" ] "cache-control" => array:1 [ 0 => "no-cache" ] "pragma" => array:1 [ 0 => "no-cache" ] "sec-fetch-dest" => array:1 [ 0 => "document" ] "cf-ray" => array:1 [ 0 => "95a687a3ed5e36b3-YYZ" ] "accept-encoding" => array:1 [ 0 => "gzip, br" ] "priority" => array:1 [ 0 => "u=0, i" ] "sec-fetch-user" => array:1 [ 0 => "?1" ] "sec-fetch-mode" => array:1 [ 0 => "navigate" ] "cf-visitor" => array:1 [ 0 => "{"scheme":"https"}" ] "host" => array:1 [ 0 => "www.corspedia.com" ] "content-length" => array:1 [ 0 => "" ] "content-type" => array:1 [ 0 => "" ] ]
        request_server
        0 of 0
        array:50 [ "USER" => "www-data" "HOME" => "/var/www" "HTTP_CF_IPCOUNTRY" => "US" "HTTP_CF_CONNECTING_IP" => "216.73.216.12" "HTTP_CDN_LOOP" => "cloudflare; loops=1" "HTTP_X_FORWARDED_PROTO" => "https" "HTTP_X_FORWARDED_FOR" => "216.73.216.12" "HTTP_SEC_FETCH_SITE" => "none" "HTTP_ACCEPT" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7" "HTTP_USER_AGENT" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)" "HTTP_UPGRADE_INSECURE_REQUESTS" => "1" "HTTP_SEC_CH_UA_PLATFORM" => ""Windows"" "HTTP_SEC_CH_UA_MOBILE" => "?0" "HTTP_SEC_CH_UA" => ""Chromium";v="130", "HeadlessChrome";v="130", "Not?A_Brand";v="99"" "HTTP_CACHE_CONTROL" => "no-cache" "HTTP_PRAGMA" => "no-cache" "HTTP_SEC_FETCH_DEST" => "document" "HTTP_CF_RAY" => "95a687a3ed5e36b3-YYZ" "HTTP_ACCEPT_ENCODING" => "gzip, br" "HTTP_PRIORITY" => "u=0, i" "HTTP_SEC_FETCH_USER" => "?1" "HTTP_SEC_FETCH_MODE" => "navigate" "HTTP_CF_VISITOR" => "{"scheme":"https"}" "HTTP_HOST" => "www.corspedia.com" "REDIRECT_STATUS" => "200" "SERVER_NAME" => "corspedia.com" "SERVER_PORT" => "443" "SERVER_ADDR" => "141.95.147.152" "REMOTE_USER" => "" "REMOTE_PORT" => "58322" "REMOTE_ADDR" => "108.162.241.169" "SERVER_SOFTWARE" => "nginx/1.18.0" "GATEWAY_INTERFACE" => "CGI/1.1" "HTTPS" => "on" "REQUEST_SCHEME" => "https" "SERVER_PROTOCOL" => "HTTP/2.0" "DOCUMENT_ROOT" => "/var/www/corspedia/public" "DOCUMENT_URI" => "/index.php" "REQUEST_URI" => "/ar/%D8%A7%D9%84%D8%AF%D9%88%D8%B1%D8%A7%D8%AA/testing-with-agile" "SCRIPT_NAME" => "/index.php" "CONTENT_LENGTH" => "" "CONTENT_TYPE" => "" "REQUEST_METHOD" => "GET" "QUERY_STRING" => "" "SCRIPT_FILENAME" => "/var/www/corspedia/public/index.php" "PATH_INFO" => "" "FCGI_ROLE" => "RESPONDER" "PHP_SELF" => "/index.php" "REQUEST_TIME_FLOAT" => 1751715021.6971 "REQUEST_TIME" => 1751715021 ]
        request_cookies
        []
        
        response_headers
        0 of 0
        array:5 [ "content-type" => array:1 [ 0 => "text/html; charset=UTF-8" ] "cache-control" => array:1 [ 0 => "no-cache, private" ] "date" => array:1 [ 0 => "Sat, 05 Jul 2025 11:30:22 GMT" ] "set-cookie" => array:2 [ 0 => "XSRF-TOKEN=eyJpdiI6Im9kUzVNVkNCYnBTR0lYTE9mNVE0Qnc9PSIsInZhbHVlIjoiNDFtSDNEQmFjZDc0VzJBUzVxT1E5SG5jZ1FYa2ZueU90TE5KWFphWVBBQlZrQUx1a1RGa1lOZHBITDhzTHd5U2I2c1RCdTc5dzRzZ0RQZ2JEaW1hQzF1MGI0Vi8yWVVhVHhTUXBHclExeENLNXhKcHVQeTh6dnlTZDN5RUFSUzQiLCJtYWMiOiJiNDcwYjI5NGRmMGU4MGZkNjRjZDlkMTVjNzBkOWIwMjc1YTk0MTIzMjQzODJiYmM5Nzc4OGQxYjRkYjQxNDI3IiwidGFnIjoiIn0%3D; expires=Sat, 05 Jul 2025 13:30:22 GMT; Max-Age=7200; path=/; samesite=laxXSRF-TOKEN=eyJpdiI6Im9kUzVNVkNCYnBTR0lYTE9mNVE0Qnc9PSIsInZhbHVlIjoiNDFtSDNEQmFjZDc0VzJBUzVxT1E5SG5jZ1FYa2ZueU90TE5KWFphWVBBQlZrQUx1a1RGa1lOZHBITDhzTHd5U2I2c1RCd" 1 => "laravel_session=eyJpdiI6ImRIOTZ0WndIVjBQVjlvMDNwSk9WM1E9PSIsInZhbHVlIjoiV1hmVjJMTzFKUlJ2dTFXWU5xR0J4ZXBVR001OERmaEV2UXo3NmNnU1d4VklBOVZlRTZxN1FjMFdXM0pLdmtCNjE5NUNzQ2kzbVZYcGtCTm9qZXBvSTJVRlZ2UkNvaWpqcVFtM1NsMWtEMHVnb1NIOVVoa0xzUHFRRVZTUHRhOXkiLCJtYWMiOiIwMmM5OGNjMmY0ZDZiMGQzOWVlMjIyNDAzM2E2YjY2MWVhMzc0MGU3ZjVjZWNiNzY3YzllYzAwMzUwNDEzNjk0IiwidGFnIjoiIn0%3D; expires=Sat, 05 Jul 2025 13:30:22 GMT; Max-Age=7200; path=/; httponly; samesite=laxlaravel_session=eyJpdiI6ImRIOTZ0WndIVjBQVjlvMDNwSk9WM1E9PSIsInZhbHVlIjoiV1hmVjJMTzFKUlJ2dTFXWU5xR0J4ZXBVR001OERmaEV2UXo3NmNnU1d4VklBOVZlRTZxN1FjMFdXM0pLdmtCNjE5" ] "Set-Cookie" => array:2 [ 0 => "XSRF-TOKEN=eyJpdiI6Im9kUzVNVkNCYnBTR0lYTE9mNVE0Qnc9PSIsInZhbHVlIjoiNDFtSDNEQmFjZDc0VzJBUzVxT1E5SG5jZ1FYa2ZueU90TE5KWFphWVBBQlZrQUx1a1RGa1lOZHBITDhzTHd5U2I2c1RCdTc5dzRzZ0RQZ2JEaW1hQzF1MGI0Vi8yWVVhVHhTUXBHclExeENLNXhKcHVQeTh6dnlTZDN5RUFSUzQiLCJtYWMiOiJiNDcwYjI5NGRmMGU4MGZkNjRjZDlkMTVjNzBkOWIwMjc1YTk0MTIzMjQzODJiYmM5Nzc4OGQxYjRkYjQxNDI3IiwidGFnIjoiIn0%3D; expires=Sat, 05-Jul-2025 13:30:22 GMT; path=/XSRF-TOKEN=eyJpdiI6Im9kUzVNVkNCYnBTR0lYTE9mNVE0Qnc9PSIsInZhbHVlIjoiNDFtSDNEQmFjZDc0VzJBUzVxT1E5SG5jZ1FYa2ZueU90TE5KWFphWVBBQlZrQUx1a1RGa1lOZHBITDhzTHd5U2I2c1RCd" 1 => "laravel_session=eyJpdiI6ImRIOTZ0WndIVjBQVjlvMDNwSk9WM1E9PSIsInZhbHVlIjoiV1hmVjJMTzFKUlJ2dTFXWU5xR0J4ZXBVR001OERmaEV2UXo3NmNnU1d4VklBOVZlRTZxN1FjMFdXM0pLdmtCNjE5NUNzQ2kzbVZYcGtCTm9qZXBvSTJVRlZ2UkNvaWpqcVFtM1NsMWtEMHVnb1NIOVVoa0xzUHFRRVZTUHRhOXkiLCJtYWMiOiIwMmM5OGNjMmY0ZDZiMGQzOWVlMjIyNDAzM2E2YjY2MWVhMzc0MGU3ZjVjZWNiNzY3YzllYzAwMzUwNDEzNjk0IiwidGFnIjoiIn0%3D; expires=Sat, 05-Jul-2025 13:30:22 GMT; path=/; httponlylaravel_session=eyJpdiI6ImRIOTZ0WndIVjBQVjlvMDNwSk9WM1E9PSIsInZhbHVlIjoiV1hmVjJMTzFKUlJ2dTFXWU5xR0J4ZXBVR001OERmaEV2UXo3NmNnU1d4VklBOVZlRTZxN1FjMFdXM0pLdmtCNjE5" ] ]
        session_attributes
        0 of 0
        array:5 [ "_token" => "f0cn2Khj4OpjJAXSEShRA9pRFnMECKgFi8w1oCef" "locale" => "ar" "_previous" => array:1 [ "url" => "https://www.corspedia.com/ar/%D8%A7%D9%84%D8%AF%D9%88%D8%B1%D8%A7%D8%AA/testing-with-agile" ] "_flash" => array:2 [ "old" => [] "new" => [] ] "PHPDEBUGBAR_STACK_DATA" => [] ]