An INFJ personality wielding brevity in speech and writing.
Is Code Green In Jenkins Enough?
An INFJ personality wielding brevity in speech and writing.
If you’re not familiar with Jenkins – it is software that simplifies the building of a continuous integration (CI) server with a web interface. Jenkins checks out code from a source code repository like GitHub, then builds that code, test it, and delivers different kinds of reports – passing/failing, code coverage – about it. Jenkins doesn’t eliminate the need to create scripts for individual steps but it offers a faster and more robust way to integrate the entire pipeline of build, test, and deployment tools.
Before Jenkins, developers had to go through the awful experience of nightly builds. The only other option they had was to build and test carefully on a local machine before committing the code, which was done in isolation without anyone else’s commits. Obviously then there was no assurance the build would survive one’s commit. Enter Jenkins – a direct response to this limitation.
It’s really easy to get up and running with Jenkins. Here’s a short list of basics you need to get started:
- Implement version control of your choice, like GitHub
- Write tests for the key parts of your code base and treat tests as production code.
- Get a suitable CI (you got that with Jenkins) that will allow you to run tests on every check in to the repository, and will also deploy your builds.
- Think of the different components of your software as building blocks that must fit and work well together to become something meaningful. It’s not enough for a specific piece of code to function well on its own. It must integrate well with everything else through continuous integration.
Jenkins gives you quick feedback (relatively speaking) about broken builds, which is great but only if those bugs are detected and dealt with immediately. Usually, such bugs get swept under the carpet because your focus is on meeting deployment deadlines. The whole team needs to be committed to high quality and understand the value of addressing issues immediately and keep technical doubt to a minimum.
Automated software testing
Now here’s the proverbial fly in the ointment. The thing with bugs in software is that they hide other bugs that hide other bugs and so on. As the bugs pile up it gets harder to test and find them, resulting in nasty surprises. But if various kinds of useful automated tests are run in your continuous integration pipeline, you’ll be able to know what to fix as soon as a test fails. Not all of the testing can be automated and it takes time to automate what can be automated, but doing so helps you develop software in a sustainable way and keep the technical debt at a minimum.
Now when we speak of CI and continuous delivery, it is not enough simply to automate tests and feed them into Jenkins. What you also need to do is build the right kinds of tests that are user-friendly and help meet customer expectations it – essentially, design and automate the right kinds of tests. Writing tests that examine code on different levels is often skipped, while incomplete tests are abandoned and never rewritten.
So what should you do? Spend a substantial amount of time in writing real, comprehensive and useful tests. The extra effort will pay off later and save time spent on debugging issues that could have been detected by tests. You could spend the debugging time on writing code for new features instead.
Think strategically to identify what kind of testing will get you the best results. Unit tests should be written to check your implementation of functions, integration tests to get different components to work together, while acceptance tests will validate important business requirements. Even when all your tests are ready, perform exploratory testing to discover issues that even Jenkins (automation) could miss. Building high-quality software is very complex and getting it right is difficult but imperative. Using the right tools helps programmers on track and supports the development process.
Another thing I would like to point out is that the easier it is to test something, the easier it gets to determine its quality. So if your code is written in a manner that doesn’t allow writing tests for it, it will be very hard to test for and remove bugs.
One Comment
Leave A Comment
Related Posts
Kavya Ravichandran is a skilled content writer with a flair for crafting narratives that educate and engage. Driven by a love for words and an innate curiosity, she explores various topics in the digital space, focusing on application development and modernization, UI/UX design, and emerging technologies like DevOps, AI, and more. She is adept at tailoring her narratives to suit different audiences and platforms, ensuring her work is both relevant and insightful.
Pavithra Anandan is a solution driven IT specialist with over 12 years of experience, including 7 years in manual and automation testing and 5 years as a Business Analyst. She excels in understanding customer business needs and translating them into actionable requirements. Proficient in Agile methodology, she is adept at requirements gathering, epic and user story development, backlog management, and fostering collaboration with cross-functional teams. Her consulting experience spans various industries, including Postal, E-commerce, Automotive, and Airline sectors. Currently, as a Product Owner at Zuci, she focuses on advancing postal logistics by enhancing operational efficiency and driving customer satisfaction through innovative delivery solutions
Minna is a content developer specializing in software testing and Robotic Process Automation (RPA). She enjoys exploring the intricacies of cutting-edge software and knits comprehensible content that resonates with the audience. PS, she is a book lover.
Kavya Ravichandran is a skilled content writer with a flair for crafting narratives that educate and engage. Driven by a love for words and an innate curiosity, she explores various topics in the digital space, focusing on application development and modernization, UI/UX design, and emerging technologies like DevOps, AI, and more. She is adept at tailoring her narratives to suit different audiences and platforms, ensuring her work is both relevant and insightful.
An experienced and adaptable IT leader, Gopalakrishna Raju boasts over 18.5 years of expertise in service delivery management, project management, and database administration. A strong advocate for continuous service improvement and automation, he strives to bring productivity and cost benefits for clients. Certified in Oracle, AWS, and Microsoft Azure, he has received numerous accolades, including the Top Achiever FY23 Spot Award at Zensar and multiple awards at Wipro. When not busy setting up operational models, and delivering successful outcomes, he enjoys playing badminton and cricket.
Simran is a professional with over 18 years of diversified experience in business intelligence and data analytics, strategy planning, key account management and new product development. She has worked in the technology industry, consumer goods industry, retail and market research.
Gayathri Krishnan is a seasoned IT professional with over 15 years of experience, spanning 4 years in manual testing and 9+ years as a business analyst in the General Insurance and Logistics sectors. With more than 2 years as a delivery lead, she has a proven ability to manage end-to-end project lifecycles and transform business requirements into effective solutions. Her expertise covers multiple lines of business within general insurance, including Motor, Health, Personal Accident, Fire, Marine, Engineering, and Rural insurance. Skilled in Agile methodologies, Gayathri excels in requirements gathering, backlog management, client engagement, and leading cross-functional teams. As a Product Owner at Zuci, Gayathri specializes in aligning business and technical requirements to enhance operational efficiency in postal logistics services.
Sona Jayakumar is a Senior Business Analyst with three years of experience in the ESG (Environmental, Social, and Governance) and Healthcare sectors. She specializes in digital transformation and process optimization, focusing on aligning business strategies with innovative solutions. Her expertise in stakeholder management and cross-functional collaboration has consistently delivered impactful results and improved operational efficiency.
Minna is a content developer specializing in software testing and Robotic Process Automation (RPA). She enjoys exploring the intricacies of cutting-edge software and knits comprehensible content that resonates with the audience. PS, she is a book lover.
Minna is a content developer specializing in software testing and Robotic Process Automation (RPA). She enjoys exploring the intricacies of cutting-edge software and knits comprehensible content that resonates with the audience. PS, she is a book lover.
Rama Jayaraman is a Certified Public Accountant (USA), CA (Intermediate) and Commerce graduate. She is certified in Professional Scrum Master I and has working knowledge of multiple tools like Tableau, Power BI, Smartsheet, Azure Devops and multiple other Microsoft tools. She is a Seasoned Professional with 8+ years of experience with a proven track record in Project Management and Risk Management through a solution-oriented approach. She has managed and lead key projects in the areas of Automation, Analytics, Auditing, Financial Reporting and Internal Control. She has worked for companies like KPMG, Maersk and Standard Chartered Bank. Currently supporting The Officer of Inspector General (The Global Fund) as part of the Zuci family. She is a trained singer who has participated and won competitions. During her spare time, she has also volunteered as a coach and conducted swimming classes for the underprivileged and visually challenged.
Ameena Siddiqa is a seasoned marketer with hands-on experience in curating captivating content on the latest cloud, devops and enterprise technology trends. With a keen eye for emerging trends and a passion for storytelling, she has a knack for transforming complex concepts into engaging narratives that resonate with audiences across industries.
A web-analytics nerd, speaker - here delving into (Big)-data.
A web-analytics nerd, speaker - here delving into (Big)-data.
Minna is a content developer specializing in software testing and Robotic Process Automation (RPA). She enjoys exploring the intricacies of cutting-edge software and knits comprehensible content that resonates with the audience. PS, she is a book lover.
Rajalakshmi Sivaramakrishnan is a Lead Business Analyst with 17 years of experience in various fields, including Business Analysis, Identity Access Management, Requirement Engineering, and Business Intelligence. She excels in automating processes, aligning business and technology, and has domain expertise in retail banking and capital markets.
This is really an excellent article and more essential too!!