Skip to content

Split Testing - #829

Merged
rlucioni merged 3 commits into
masterfrom
renzo/ab-testing
Sep 25, 2013
Merged

Split Testing#829
rlucioni merged 3 commits into
masterfrom
renzo/ab-testing

Conversation

@rlucioni

Copy link
Copy Markdown
Contributor

This PR gives us the ability to perform split testing on the LMS. For details, see the documentation. The changes in this PR will require DevOps to perform a migration to create the necessary tables, as well as clearance from them to activate the Django admin site on stage and prod. I'm currently speaking with them about the best way to do this.

The experiments to be performed on the LMS high-level tabs are verified, but have not been formally tested. This is because the experiments can be turned off instantly (without pushing new code), and the best-performing variation will be thoroughly tested before being added permanently to the codebase.

@cpennington and @singingwolfboy, could you please help me review this? (N.B. Although my internship ends on August 30, I'm continuing with edX on a limited hours basis during the school year, so this doesn't need to be reviewed and merged right this minute.)

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why import waffle if it isn't used in this file?

@rlucioni

Copy link
Copy Markdown
Contributor Author

I've addressed all comments except for @cpennington's note about the signature of tab generators. As I wrote above, should I still make this change given that use of the request argument by the _courseware tab generator won't be permanent? Once we conclude split testing on the tabs, the request argument won't be needed anymore.

@rlucioni

rlucioni commented Sep 9, 2013

Copy link
Copy Markdown
Contributor Author

Arguments to the tab generators are now uniform, as per our earlier discussion. I'm going to hold off on merging this in until @dianakhuang has Paid Certificates sorted out. In the meantime, I'll be speaking with Devops about changes that need to be made to support this PR. 👍?

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

OK, I know this isn't your test, but...

Change self.mockuser0 and self.mockuser1 to actually indicate what's different about them (self.user and self.anonymous_user, or something?) Likewise for self.active_page*. I would also pull out the constant bits of the tab construction process into a helper method that just takes the variables that you want to vary (or takes all the variables, but defaults them to a standard set), to minimize the code on the assertion lines to just the things that are changing.

That will have a happy side effect of making it so that you only have to add FAKE_REQUEST in one place.

@yarko

yarko commented Sep 9, 2013

Copy link
Copy Markdown
Contributor

This public pull request refers to non-public documentation!?!?

Really - somebody's got to fix that.

@rlucioni

rlucioni commented Sep 9, 2013

Copy link
Copy Markdown
Contributor Author

@yarko, thank you for pointing that out. I'll get that documentation moved.

@rlucioni

Copy link
Copy Markdown
Contributor Author

@yarko, I've moved the internal documentation to a page in our GitHub Wiki. Please find the public documentation for split testing here. I've updated the link above to reflect this. Thanks again for catching this.

@rlucioni

Copy link
Copy Markdown
Contributor Author

@cpennington, I've refactored the tab tests as you suggested. Any other comments? @singingwolfboy?

Comment thread lms/templates/widgets/segment-io.html Outdated

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks like this line should be removed.

@singingwolfboy

Copy link
Copy Markdown
Contributor

@rlucioni You've got a failing unit test:

 1) ERROR: test_validate_tabs (courseware.tests.test_tabs.ValidateTabsTestCase)

    Traceback (most recent call last):
     lms/djangoapps/courseware/tests/test_tabs.py line 275 in test_validate_tabs
       self.assertIsNone(tabs.validate_tabs(self.courses[0]))
     lms/djangoapps/courseware/tabs.py line 283 in validate_tabs
       raise InvalidTabsException("Expected at least two tabs.  tabs: '{0}'".format(tabs))
    InvalidTabsException: Expected at least two tabs.  tabs: '<MagicMock name='mock.tabs' id='221364688'>'

Can you fix that? Once the tests pass, the only other thing you need is an entry in the CHANGELOG, and then I believe this is ready to merge.

@rlucioni

Copy link
Copy Markdown
Contributor Author

Done. @singingwolfboy and @cpennington?

@singingwolfboy

Copy link
Copy Markdown
Contributor

👍

Comment thread lms/templates/dashboard.html Outdated

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Python should be indented 4 spaces

@cpennington

Copy link
Copy Markdown
Contributor

Couple of nitpicks, but once those are cleared up: 👍

rlucioni added a commit that referenced this pull request Sep 25, 2013
@rlucioni
rlucioni merged commit c124a33 into master Sep 25, 2013
@rlucioni
rlucioni deleted the renzo/ab-testing branch September 25, 2013 20:29
@yarko

yarko commented Sep 26, 2013

Copy link
Copy Markdown
Contributor

On Sep 18, 2013 1:06 PM, "Renzo Lucioni" notifications@github.com wrote:

@yarko, I've moved the internal documentation to a page in our GitHub
Wiki. Please find the public documentation for split testing here. I've
updated the link above to reflect this. Thanks again for catching this.

+1


Reply to this email directly or view it on GitHub.

chrisrossi pushed a commit to jazkarta/edx-platform that referenced this pull request Mar 31, 2014
added ie warning banner to courseware; displayed by ie conditional style...
pomegranited referenced this pull request in open-craft/openedx-platform Aug 7, 2017
YONK-15: API optimisations using course blocks
andrey-canon pushed a commit to eduNEXT/edx-platform that referenced this pull request Jul 25, 2018
morenol pushed a commit to eduNEXT/edx-platform that referenced this pull request Aug 27, 2019
…page when a user isn't logged in. (openedx#829)

- changed format for displaying course start date
Sujeet1379 pushed a commit to chandrudev/edx-platform that referenced this pull request Nov 17, 2022
Before, for sections, it would link you to the chapter which would
cause a JS error since the sequence endpoint expects sequentials.
This updates to now link to the first subsection within a section when
you hit the section breadcrumb
DanielVZ96 referenced this pull request in open-craft/openedx-platform Jan 31, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants