To be a professional programmer, there’re many things that we’ve to do to be a good one.
In this article, we’ll look at the best practices for testing. We also look at meetings.
Testing
Testing is best done by developers.
QA shouldn’t find much if anything.
This way, we just get through what we worked on faster since QA just passed them right through to the finish line.
QA is part of the team and they can create the automated acceptance tests that run to check that everything is good.
They catch the corner cases and write tests for them.
They can also do exploratory testing to identify the behaviors of the system.
The Testing Pyramid
The testing pyramid groups tests from the types of tests that are the highest quantities to the ones that are the lowest.
Unit Tests
The ones that are the highest quantities are the unit tests.
They test the smallest parts of the system like functions and classes.
Unit tests should be close to 100% coverage. They run fast, so we can have more of them.
Component Tests
Then the component tests are smaller in number than unit tests, but there are still many of them,
They test a component of a system like small features.
These cover the normal paths, and also boundary cases. Most boundary cases should be covered by unit tests.
Integration Tests
Next comes the integration tests which test a part of the system.
They test a bigger part of the system than component tests.
Therefore, they’ll be smaller in number than component tests.
Then higher in the period are the system tests. They test several features together in a workflow end to end.
These are for more critical parts of a system like logging in and things like that.
They test the system as if a user is using the system.
Exploratory Tests
Exploratory tests are the ones that are done for learning purposes.
These are used to get familiarized with the application.
It’s also used to validate other tester’s work.
And it’s also done by testers to perform smoke tests.
Exploratory tests are done manually.
It’s used for exploring unexpected behaviors that may cause issues.
It’s unscripted and the actions aren’t repetitive.
Time Management
Time management is important since there isn’t enough time to do a lot in a day.
Our days are filled with phone calls, meetings, production issues, and other interruptions.
To get things done, we got to manage our time well.
We can wake up, write a schedule on the board, and then do what’s on the schedule.
Meeting
Meetings take lots of time and therefore money.
We also need a space to meet, which is probably another cost.
They are necessary and they’re big time wasters.
We may be able to use both to describe the same meeting.
We’re aware of the cost, so we should resist attending the ones that we don’t need.
Declining Meetings
We don’t have to attend meetings that we’re invited to.
It’s unprofessional to go to too many meetings.
We have to be responsible for managing our own time.
We should go to the ones that are important to what we do. Some meetings are also interesting so we can go even though we don’t have much to contribute.
Someone with authority may also invite us to meetings. In that case, we can check with them if we need to go.
However, good managers shouldn’t ask people to attend too many meetings so people can finish their work.
Leaving
We may also leave meetings that don’t go as planned.
We may decline if we know the meeting goes the way it is now.
If it’s boring, then we can leave.
To leave the meeting, we can excuse ourselves politely.
If we have nothing to contribute to it, we may think about leaving.
Conclusion
Testing is important. Therefore, we need to do that. It’s best to automate that as much as possible.
Meetings are huge time sinks, so we should only go to the ones that we need to go to.
We can always pick which meetings we should go and politely leave if we don’t contribute enough to it.