April 2019 Summaries
5 posts from CircleCI
Filter
Month:
Year:
Post Summaries
Back to Blog
The text discusses two software development methodologies, test-driven development (TDD) and behavior-driven development (BDD), emphasizing their roles in improving the testing process and software quality. TDD involves writing tests before the actual code, following a "red-green-refactor" approach to ensure functionality and improve code clarity. It encourages developers to focus on requirements and avoid errors by making tests fail initially, pass after implementation, and then refactor for quality. BDD, on the other hand, focuses on user behavior and uses stories and scenarios to guide testing, particularly for the UI layer, employing a "Given-When-Then" structure to simulate user interactions. While BDD is valuable for UI testing, it is noted to be more costly and less efficient compared to other testing layers. The text underlines the importance of balancing tests for the "happy path" and edge cases, highlighting that meaningful, behavior-driven tests are crucial for delivering quality software. It concludes by stressing that a testable codebase is essential for scalable and reliable software deployment.
Apr 25, 2019
1,865 words in the original blog post.
Over the last decade, the author has worked in male-dominated environments, where they have encountered both challenges and support. At CircleCI, they have experienced significant career growth, largely due to mentorship and advocacy from colleagues who provided technical guidance, emotional support, and acknowledgment of their contributions. These colleagues facilitated the author's professional development by offering mentorship, technical knowledge, and opportunities for leadership roles, while fostering an inclusive environment that values diversity and encourages self-improvement. Despite some unprofessional interactions, the author's experiences have been overwhelmingly positive, highlighting the importance of small gestures and allyship in creating a welcoming workplace. The author advocates for taking small actions to promote inclusivity and invites others to join them in making a difference at CircleCI.
Apr 18, 2019
1,242 words in the original blog post.
The text discusses the common challenges developers face when debugging build failures in CI/CD environments, particularly when lacking secure access to the necessary resources for real-time troubleshooting. It highlights a typical interaction where developers seek SSH access from SRE teams to debug issues, but face security constraints that prevent this, leading to inefficient debugging processes. The text then introduces CircleCI's SSH debugging feature as a solution, allowing developers to securely access execution environments and troubleshoot failed builds directly on the resources, thereby saving time and improving efficiency. By detailing a specific build failure scenario, the text explains how CircleCI's SSH feature enables users to identify and rectify issues related to missing environment variables, ultimately facilitating a smoother development process.
Apr 11, 2019
1,567 words in the original blog post.
The text explores the concepts of test-driven development, mocking, and stubbing within software testing, emphasizing their roles in creating efficient, reliable, and independent tests. It highlights the test pyramid, advocating for a strong reliance on unit and component tests before progressing to more resource-intensive integration and UI layer tests. Mocking and stubbing are explained as techniques to simulate external or internal services, enabling quicker and more isolated testing without the need for actual system calls or database interactions. The text also delves into the application of these techniques across various testing layers, including unit, integration, and contract-based testing, illustrating how they streamline testing processes, reduce dependency issues, and facilitate more reliable assessments of code functionality. Additionally, it underscores the importance of maintaining and evolving tests alongside code changes to prevent unexpected bugs. The discussion extends to contract testing in microservices architectures, where establishing and testing agreements between service endpoints can enhance the reliability and autonomy of service teams.
Apr 04, 2019
2,437 words in the original blog post.
Infrastructure as Code (IaC) is the practice of managing and provisioning computing infrastructure through machine-readable definition files rather than physical hardware configuration or interactive configuration tools. The article emphasizes the importance of obtaining buy-in from management and team members to successfully transition to IaC, which replaces ambiguous manual processes with clear, declarative programming. It highlights the benefits of using tools like Terraform with CircleCI for automating the provisioning of infrastructure, showcasing determinism, visibility, and automation as key advantages. The text also discusses the importance of documenting existing processes, storing them in version control systems, and iteratively improving them. It suggests adopting a structured approach to writing infrastructure code and emphasizes the exponential productivity gains of IaC, CI/CD, and DevOps practices, which contribute to faster feature development and better adaptability to market changes.
Apr 02, 2019
1,896 words in the original blog post.