Software testing broadly aims to certify not only the accuracy of the logic embedded in code but also adherence to functional requirements. Academia as well as industry have been working on software testing in their own ways and have contributed to the body of research on testing algorithms and practices. As a result, well-known tools have been adopted occasionally that facilitate software-testing practices so that it can be accomplished in a faster and less-expensive manner.
However, as new computing paradigms and platforms emerge, software architecture becomes more complex to meet given strict requirements. Therefore, there is a non-negotiable need to re-examine and re-endorse software testing methodologies and practices, and to do it regularly. The challenges software testing faces now require an integrative solution; this means that new approaches must be adopted alongside mature and traditional solutions. In other words, well-developed and well-practiced concepts should not be abandoned in search of new.
To deal with of this emerging complex and “multi-layered” process of software development, Agile has been recently proposed and grown in popularity and practical usage. In short, agile promotes the continuous and collaborative effort of cross-functional teams with the objective to produce a reliable and robust software item. Although agile methodology highlights the value of all phases of software development life-cycle, unfortunately it is mostly applied to the aspects of project management and actual implementation. On the contrary, a limited investment in further establishment and consolidation of agile-oriented software testing has been recorded, with the risk to undermine another crucial aspect, the quality assurance.
Fortunately it is more and more understood that software testing is a neuralgic pillar in the software-development cycle that cannot (and surely should not) be ignored in any way. It is equally important as the software development itself. The hallmark of agile testing is collaboration, transparency, flexibility, and retrospection. In traditional testing methodology, the developer and the tester “chase” each other with negative attitudes: Developers find “devils” in testers, and testers try to pin down developers. This attitude provokes an unwanted working atmosphere. Agile method works on the principle of co-operation and transparency and thus results in a congenial working atmosphere.
Based on all mentioned above, as a software engineer it is more than imperative to understand the value of agile software testing, and to adopt the more recent methodologies and practices to your daily work. Under this perspective, the main objective of this Course is to build a thorough testing culture and to equip software engineers with the necessary design principles and practical knowledge. This will aid software engineers to feel confident to build reliable and robust testing tools and frameworks, able to identify bugs from the very early steps of software development.
- This specific Code.Learn program lasts 2 weeks (2 Fridays & 2 Saturdays) with 16 hours of lectures and hands-on exercise on a real life project.
Key Objectives – Curriculum
In particular, the Course:
- Explains qualitatively and in high level the diverse testing practices and testing layers, clarifying the purpose of each, as well as how they complement each other.
- Splits the testing activities in those that falls within the actual software development domain (e.g. unit tests) and those that behave as independent frameworks that co-exist with the actual software project, but are maintained and/or evolved independently.
- Explains different types of testing that a testing framework should quantitate and/or validate (accompanied by indicative real-world examples).
- Covers Manual Testing tools.
- Introduces Automation Testing.
- Shapes and identifies the environment / framework that will host the automation tests.
- Introduces testing frameworks.
- Covers real-world automation test design and implementation case studies.
Overall, this Course intends to give a broad picture of trends in agile software testing. By the end of the Course, the software engineer will be in position to:
- Explain the critical role of testing in the context of Agile methodology
- Make appropriate trade-offs between manual and automation tests
- Know how to design, describe and implement an automation testing plan
- Know how to deal with different types of Testing
- Be aware of state-of-the-art testing tools and practices
The lessons can be carried out:
- Inside a physical classroom with an instructor,
- In an online environment as a virtual classroom, with live connection with the instructor through video conferencing; or lastly,
- A combination of both physical and online.
The method of teaching will depend on the current conditions, and also on the participants’ preferences.
Regarding online, the instructor provides the taught material through screen sharing, live broadcast, or by working on the cloud where attendees can see and interact with everything in real-time. Attendees themselves can seamlessly and actively participate and ask questions, as they would in a physical classroom. Additionally, they can collaborate in team projects and deliver assignments and hands-on projects that the instructor can see and provide feedback easily and without delays.
QA Engineers & Testers as well as all IT Professionals – including but not limited to developers, software engineers, consultants, analysts, team leaders – that want to boost their career are welcome to participate to this code.learn program and unlock the full potentiality of the topics taught by upskilling their future career.