Testing Your Code7:57 with Ryan Saul
Testing and programming go hand in hand. What we needed to do after creating the app, but before releasing it out to the world was test it.
Course Project: RSVP App: https://treehouse-projects.github.io/selenium-webdriver-intermediate/waits/app/index.html
Testers vs. QA Engineers:
- Testers perform test cases and look for defects.
- QA Engineers actively monitor practices and create/enforce processes to assure quality.
- Quality Assurance: Preventing mistakes and defects from occurring in a product.
- SQA (Software Quality Assurance): Monitoring the development process in software and testing to ensure that changes do what they are meant to without introducing a whole lot of new bugs.
- QA Engineer: Someone who works to assure software quality by using various testing methods and practices and has a say in the design and development process.
Introductory Programming Courses:
[MUSIC] 0:00 Hi there, welcome to QA Engineering. 0:09 My name is Ryan Saul, and I'm a QA Engineer. 0:12 I'm sure your first question is going to be, what is QA Engineering? 0:16 And I wanna answer that in a minute, but 0:21 first I wanna talk about why you need to test your code. 0:23 So you have this great new application that you've created, that lets people 0:27 email their friends and family invitations through a little website. 0:31 It's a simple RSVP application. 0:35 You've been working on this application for weeks, and 0:38 you're finally ready to share it with the world. 0:42 After you've put it up on a live website, you share it on social media and 0:44 tell all of your family and friends about it. 0:49 But almost immediately after posting this, a friend writes a comment on your post and 0:52 says hey there, I was really excited to check out your new website, but 0:57 it doesn't seem like it works. 1:02 It's not doing anything when I click send. 1:03 And then another family member chimes in, hey this looks great, but 1:07 I can't enter in Lisa's full name when I try to send her an invitation. 1:11 She has four names you know? 1:15 So, worried that the application isn't working properly, you take down the site 1:17 immediately, and bring it back up the next day after you've fixed those issues. 1:22 Your cousin then comments hey, I tried your new site and 1:27 just sent you an invite to my barbecue next week, I hope you got it. 1:30 But you look at the website and there's just nothing. 1:35 So clearly our new application isn't doing what we want it to do. 1:38 We have all these problems we've never thought of, 1:44 plus the app isn't even working. 1:47 What we needed to do after creating the app, but 1:49 before releasing it out to the world, was to test it. 1:52 So testing and programming really go hand-in-hand. 1:57 We could probably all agree that all software should be tested to 2:01 at least do the things that we set out for it to do, right? 2:06 And we probably all assume that big software companies thoroughly test 2:10 all their software for major flaws all the time, right? 2:15 And we could even agree that it would be irresponsible, 2:20 short-sighted, and even reckless not to do those tests, right? 2:24 But clearly not all software gets thoroughly tested, or 2:30 else we wouldn't have some of these news worthy stories that involve huge problems. 2:33 So Y2K, problems with the Mars Pathfinder, even the release of Apple Maps. 2:39 All of these are some pretty big examples of why thorough testing 2:46 is needed in software development. 2:50 So testing is extremely important to the software development process, 2:53 which gets me back to the original question. 2:59 What is QA Engineering? 3:02 Okay, so there's two parts to this. 3:04 QA, or Quality Assurance, is the method of preventing mistakes and 3:08 defects from occurring in a product. 3:12 You might be thinking of people at the end of a factory line, picking up widgets and 3:15 looking for imperfections. 3:19 That's what we call Quality Control. 3:21 Quality Control is just one part of Quality Assurance. 3:24 Not only does Quality Assurance verify the end product, but 3:29 also manages the entire development process. 3:33 Now software quality assurance, or SQA, is what we're talking about in this course. 3:37 And we can't just sit at the end of a factory line and 3:44 watch as the product rolls by us. 3:46 We need to be involved in almost every step of the software development process. 3:49 Coming up with ways to make sure that software does what it's supposed to do. 3:54 And we need to test the end product thoroughly to find any mistakes. 3:59 Software is hard and complex, and it can be changed very quickly. 4:05 This is why we need more than just inspectors or testers. 4:10 We need to come up with many ways to assure quality 4:14 throughout the development process. 4:18 This is what we call QA Engineering. 4:20 Where we're not just testing the product we've been given, but 4:23 designing new ways to break the software. 4:26 Or discover problems early in the development process. 4:29 Okay, let's take one more famous example, the launch of healthcare.gov. 4:34 So back in 2013, the US Federal Government was preparing to roll out a website 4:40 that would make it easy for people to enroll in various healthcare plans. 4:46 They wanted a site that would streamline signing up for healthcare. 4:52 Even though the website appeared to be up and 4:57 running, the rollout was met with numerous technical problems. 4:59 The website would put users into extremely long wait times, 5:04 because the site could not handle the large load of visitors. 5:08 Even people who could make it through were met with a really confusing system, 5:13 that required a visitor to complete the registration process 5:18 before they could even compare healthcare plans. 5:22 In their first week of operation, healthcare.gov was only able to enroll 5:25 about 1% of those interested in getting healthcare through the site. 5:30 Even President Obama at the time commented on the technical problems of the website, 5:35 saying the website's been too slow. 5:40 People have been getting stuck in the application process, and 5:43 I think it's fair to say that nobody's more frustrated by that than I am. 5:46 We can point to come pretty key issues that made these problems happened. 5:51 There were poorly defined requirements. 5:56 There were major software design issues. 5:58 And there was not enough testing of the entire website from start to finish. 6:02 And that is where QA Engineering comes into play, and 6:06 can help prevent huge launch failures, like this one. 6:10 So the QA Engineer helps define clear needs that they can test for, 6:14 helps design the software so that it can be tested. 6:19 And runs all those tests to make sure that the software both does what it's 6:22 supposed to do and doesn't break along the way. 6:26 Over the course of this series we're gonna be talking a lot about testing, 6:29 it's about the most important aspect of software quality assurance. 6:34 We're gonna keep coming back to the RSVP app that we mentioned earlier, and 6:39 learn how to properly test various parts of it. 6:43 We're gonna learn how to write tests, how to execute them, and 6:47 how to write those tests even better. 6:51 As we're going through the course, 6:53 don't hesitate to use the video playback controls. 6:55 You can adjust the playback speed to be faster or slower as needed. 6:58 Be sure to check out the Teacher's Notes on each video's page too. 7:04 Throughout the course, we'll have Teacher's Notes that include 7:07 troubleshooting tips or links where you can learn more. 7:11 This course will also show you simple templates for test cases and 7:15 bug reports, that you can use in any simple word processor. 7:19 We will not be using any specific software to learn this course 7:23 outside of just a spreadsheet tool or a word processor. 7:27 Okay, at this point, I'm sure you've taken at least an introduction to programming 7:31 course and possibly even have written some code. 7:35 But if you haven't, see the Teacher's Notes on this video's page for 7:39 links to some courses that you should check out. 7:43 Programming is not required for this course, but you'll have 7:46 an easier time following along if you know how to create a simple application. 7:49 Ready? All right, let's get going. 7:54
You need to sign up for Treehouse in order to download course files.Sign up