Formerly: "Software Testing: Techniques, Tools and Practices"
An explosive volume of digital technologies, such as big data and cloud computing, have created a dramatic need to understand testing trends used in the software industry. As a result, specialized software development practices such as test-driven development (TDD) and behavior-driven development (BDD) have emerged as integral to Agile software development teams. This course provides an overview of Agile, its focus on writing automated tests that ensure quality, and TDD and BDD, which are used to design requirements and test cases that can be automated in Agile software development. Students learn about testing methodologies including black box and white box testing in Agile/Scrum, Git for version control, GitHub for source code management, xUnit framework-based test automation using Python pyUnit and nose, as well as Selenium WebDriver-based functional test automation. Test coverage concepts, strategies and tools such as coverage are also addressed. By the end of the course, students have hands-on exposure to tools they need to compete for Silicon Valley software jobs. Students are encouraged to bring laptops to class.
- Introduction to agile software development
- Software testing fundamentals
- Automated unit and functional testing using xUnit frameworks
- Test-driven development (TDD)
- Behavior-driven development (BDD)
- Web-based test automation
- Introduction to continuous integration and continuous delivery
Skills Needed: Coding knowledge of any general purpose programming language such as Python, Java, C++, Ruby, or C# is required. Students without prior programming experience in Python are encouraged to go through a quick learning guide such as www.learnpython.org before the first lab starts.