Αρχείο άρθρων για την κατηγορία ‘Τεχνολογία’
Ψάχνοντας στο διαδίκτυο, για νέα εργαλεία και πρακτικές αυτοματοποιημένου ελέγχου , “έπεσα” σε διάφορα άρθρα που σύγκριναν την μηχανή με τον άνθρωπο όσον αφορά τις διαδικασίες ελέγχου λογισμικού. Το παρακάτω κείμενο αποτελεί ένα συνονθύλευμα όλων αυτών μαζί με την μέχρι τώρα εμπειρία μου από το τμήμα ελέγχου και αφορά κυρίως τα τελευταία στάδια των αυτοματοποιημένων διαδικασιών ελέγχου.
Που υπερτερούν οι μηχανές?
Τα μηχανήματα υπερτερούν σε επαναλαμβανόμενες, μηχανικές εργασίες.
Τα καθήκοντα εκτελούνται καθημερινά από συνήθεια είναι τέλεια για μια μηχανή. Έτσι, αν περνάτε την ημέρα σας π.χ συγκρίνοντας και αναλύοντας τα δεδομένα μιας βάσης, ή απλά κάνοντας κλικ μέσα από το ίδιο περιβάλλον εργασίας χρήστη ξανά και ξανά, τότε θα πρέπει να σκεφτείτε για τη χρήση ενός μηχανήματος. Τα μηχανήματα υπερτερούν στο να κάνουν τα πράγματα που οι άνθρωποι δεν μπορούν να κάνουν. Θέλετε να παραδώσετε 100.000 αιτήσεις σε ένα διακομιστή με μία κίνηση ;- χρησιμοποιήστε μια μηχανή. Θέλετε να ελέγξετε πόσο καλά λειτουργεί μια συσκευή σε θερμοκρασίες υπό το μηδέν, ενώ βομβαρδίζεται από όξινη βροχή(!); – χρησιμοποιήστε μια μηχανή. (κάποιοι κάνουν και τέτοιες δοκιμές προϊόντων..).Αν χρειαστεί να ελέγξετε κάτι, αλλά είναι αδύνατο για έναν άνθρωπο, τότε η μηχανή θα μπορούσε να σας βοηθήσει στην επίτευξη του στόχου σας.
Τα μηχανήματα υπερτερούν στην ανάλυση πολύπλοκων δεδομένων και στην εφαρμογή ορθολογισμού.
“Για αιώνες, οι οικονομολόγοι έχουν κατασκευάσει μοντέλα που βασίζονται στην υπόθεση ότι οι άνθρωποι συμπεριφέρονται ορθολογικά, σαν οικονομικοί παράγοντες. Όμως, χάρη στις προόδους που έχουν συντελεστεί στις νευροεπιστήμες και τα συμπεριφορικά οικονομικά(συμπεριφορική χρηματοοικονομική), έχουμε συνειδητοποιήσει ότι οι άνθρωποι δεν είναι τόσο καλοί στο να σκέφτονται μέσα από πιθανότητες και κινδύνους και να πραγματοποιούν ορθολογικές οικονομικά επιλογές με βάση αυτές τις πιθανότητες. Αν και δεν θέλουμε να χρησιμοποιούν καθαρό ορθολογισμό κατά τη λήψη ηθικών αποφάσεων, περισσότερος ορθολογισμός θα
ήταν χρήσιμος σε περιπτώσεις, όπως η λήψη οικονομικών αποφάσεων. “
Τα μηχανήματα υπερτερούν στο να κάνουν καθήκοντα τα οποία είναι πολύ μεγάλα ή πολύ μικρά. Ενδεικτικά κάποια ενοχλητικά καθήκοντα που είναι πολύ μικρά ή πολύ μεγάλα και θα μπορούσαν να υλοποιηθούν από μια μηχανή:
- Συμπλήρωση εκθέσεων ελέγχου δεδομένων.
- Προσθήκη όλων των μεταβολών για τα release notes.
- Σύνταξη εκθέσεων σχετικά με την κάλυψη των ελέγχων και των αποτελεσμάτων.
- Stress Tests
- Εφαρμογή στατιστικών μοντέλων
Που υπερτερούν οι άνθρωποι;
Οι άνθρωποι υπερτερούν στη σκέψη.
“Σκέψη και υπολογισμός είναι διαφορετικές διαδικασίες, και οι μηχανές δεν είναι καλές στο να σκέπτονται..”
Έχουμε, λοιπόν, τα μηχανήματα που μπορούν να εκτελέσουν τα μεγάλα φορτία των εργασιών, αλλά μέχρι σήμερα, δεν μπορούν πραγματικά να σκεφτούν. Ο έλεγχος είναι μια πολύ ανθρώπινη διαδικασία, έχοντας ως στόχο να ανακαλύψουμε όσο το δυνατόν περισσότερα για το υπό δοκιμή σύστημα Για να κατανοήσουμε περισσότερο, θα πρέπει να ψάξουμε αρκετά για να ανακαλύψουμε νέες ιδέες. Αυτές οι ιδέες απαιτούν έναν άνθρωπο να σκεφτεί για αυτές. Να τις καταλάβει, να ανταποκριθεί σε αυτές για να βασίσει νέες δοκιμές σε αυτές. Οι άνθρωποι υπερτερούν στην κοινωνική και συναισθηματική νοημοσύνη.
Να είσαι σε θέση να κατανοήσεις τον τομέα και το θέμα ,οδηγεί σε καλύτερο έλεγχο του λογισμικού. Ο tester μπορεί να κάνει έναν καλό έλεγχο σε κάθε τομέα και για οποιοδήποτε προϊόν, αλλά όταν έχει ενδιαφέρον και μια συναισθηματική σύνδεση με το προϊόν ή συστήματα που δοκιμάζει, ο έλεγχος θα είναι πολύ καλύτερος.
Όταν υπάρχει συναισθηματική σύνδεση προϊόντος – tester, σε οποιοδήποτε επίπεδο, οι αισθήσεις είναι ποιο «τσιτωμένες» και υπάρχει μεγαλύτερη αφοσίωση και συγκέντρωση. Μέχρι σήμερα, υπάρχουν κάποιες μηχανές με στοιχειώδη “συναισθήματα”, αλλά είναι ακόμα στην πρόωρη ανάπτυξη.
“Τα συναισθήματα είναι τόσο περίπλοκα όπως και η σκέψη, αν όχι περισσότερο, και ακριβώς όπως τα μηχανήματα που δημιουργούμε δεν είναι σκεπτόμενες μηχανές, τα συναισθηματικά και κοινωνικά ρομπότ που κατασκευάζουμε δεν είναι μηχανές που “αισθάνονται”-τουλάχιστον όχι ακόμα.”
Χωρίς συναισθήματα:
- Δεν είναι εύκολο να γίνει αντιληπτή – κατανοητή η ενόχληση / απογοήτευση του τελικού χρήστη για το UI (user interface).
- Είναι δυσκολότερη η επικοινωνία/σύνδεση με τους συναδέλφους και τους υπόλοιπους εμπλεκόμενους .
- Δεν είναι εύκολη η κατανόηση των συνθηκών/πλαισίων εργασίας των πελατών.
Οι αυτοματοποιημένοι έλεγχοι δεν εκτελούνται με αυτό τον τρόπο και δεν έχουν επίγνωση των συναισθημάτων.
Οι άνθρωποι υπερτερούν στη δημιουργικότητα, τη διαίσθηση, και τον αυτοσχεδιασμό.
“……. Το συγκριτικό πλεονέκτημα των ανθρώπων είναι να ενεργούν αυθόρμητα, ανταποκρινόμενοι στις μοναδικές συνθήκες της στιγμής, για την λήψη σχετικών αποφάσεων. “
Ένας αυτόματος έλεγχος δεν μπορεί να σχεδιάσει και να εκτελέσει on the fly ένα καινούριο σενάριο ελέγχου όταν απαιτείται να ανταποκριθεί σε ένα νέο σφάλμα.
Ένας αυτόματος έλεγχος δεν μπορεί να κάνει μια καινούρια υπόθεση και να επικεντρώσει σε μια νέα ανεξερεύνητη κατεύθυνση.
Ένας αυτόματος έλεγχος δεν μπορεί να κάνει χρήση άλλων εργαλείων (από αυτά που έχουμε ορίσει να χρησιμοποιήσει) για να ελέγξει ένα νέο πεδίο ενδιαφέροντος.
Αντικαθιστώντας τον Tester
Ένας tester μπορεί να αντικατασταθεί από μια μηχανή. Είναι απολύτως δυνατό. Αλλά αυτό δεν θα ήταν μια καλή στρατηγική, αν o tester σκέπτεται και σε γενικές γραμμές, χρησιμοποιεί τις δεξιότητες, τις εμπειρίες του, τα συναισθήματα του και κυρίως τον εγκέφαλο του.
Θα έπρεπε να ανησυχούμε μήπως η δουλειά μας αντικατασταθεί από μια μηχανή; Θα πρέπει αν ο έλεγχος γίνεται χωρίς σκέψη και καταντήσει ρουτίνα. Δεν θα πρέπει να ανησυχούμε όταν ο έλεγχος γίνεται με την χρήση των ανθρώπινων πλεονεκτημάτων που αναφέρθηκαν προγενέστερα.
“Δεν υπάρχει ακόμη μια τεχνολογία που να οδηγήσει στο να δουλεύουμε πραγματικά πολύ λιγότερο ή καθόλου. Αυτό οφείλεται στο γεγονός ότι οι μηχανές δεν αντικαθιστούν ακριβώς αυτό που κάνουμε, αλλάζουν τη φύση αυτού που κάνουμε με την επέκταση των δυνατοτήτων μας. Επιπλέον, θέτουν νέες προσδοκίες για το τι είναι δυνατό και δημιουργούν νέα πρότυπα επιδόσεων και αναγκών. ”
Η πρόταση αυτή μπορεί να μην είναι απολύτως αληθής ή ορθή καθώς το ποσοστό ανεργίας ανέβηκε όταν τα ρομπότ εισήλθαν στην αυτοκινητοβιομηχανία, προσφέρει όμως μια πραγματικά ενδιαφέρουσα οπτική για το πώς μας πλαισιώνει η χρήση των μηχανών. Ως ενισχυτές των δεξιοτήτων μας, των ικανοτήτων μας και των προσεγγίσεων μας. Είναι σαφές ότι τα μηχανήματα δίνουν σε πολλούς από εμάς τις δυνατότητες για την επίτευξη υψηλότερου επιπέδου ελέγχων οδηγώντας την ελεγκτική διαδικασία σε μεγαλύτερα “ύψη“ .
“Ο συνδυασμός των ανθρώπων σε συνεργασία με τα μηχανήματα και με ανώτερες στρατηγικές και μεθόδους ανοίγει νέους κόσμους για εξερεύνηση.”
Ένας από τους συχνότερα χρησιμοποιούμενους όρους στην βιομηχανία του IT αυτές τις ημέρες είναι o όρος virtualization (εικονικοποίηση). Το virtualization έκανε την τεχνολογική του εμφάνιση στις μάζες σχετικά πρόσφατα, αλλά οι εφαρμογή του μεταδίδεται ταχύτατα. Πλέον υπάρχει ένα γιγαντιαίο κύμα αλλαγής της μορφής των datacentres παγκοσμίως. Από την παραδοσιακή τους μορφή όπου μία πλατφόρμα σχετίζεται με έναν server, υπάρχει μεταστροφή στη σύγχρονη μορφή της, αυτή της εικονικοποίησης, όπου υλικό και πλατφόρμα παύουν να έχουν σχέση 1 προς 1. Αλλά η αλλαγή δεν παρατηρείται μόνο στους servers. Οι τελικοί χρήστες εργάζονται σε εικονικοποιημένες εφαρμογές που τους σερβίρονται στο τερματικό τους, αλλά και οι road- (και οι air-) warriors έχουν πρόσβαση μέσω mobile συσκευών στην (εικονική) επιφάνεια εργασίας του τερματικού τους.
Ανεξάρτητα από τους τρόπους που υλοποιεί κάποιος το virtualization, θα πρέπει να σημειωθούν τα πλεονεκτήματα που αποκτά ο φορέας (επιχείρηση, δημόσιος οργανισμός) από την εφαρμογή τους. Αυτά παρατίθενται παρακάτω:
1. Αποδέσμευση πλατφόρμας από το υλικό. Σε ένα κλασικό datacentre ένα λειτουργικό σύστημα εγκαθίσταται και λειτουργεί πάνω σε έναν server. Σε ένα εικονικοποιημένο περιβάλλον μπορούν να τρέχουν ταυτόχρονα δύο ή περισσότερες ανεξάρτητες πλατφόρμες (μία windows, μία linux, μία solaris …). σπάει λοιπόν η σχέση 1 προς 1 ανάμεσα σε hardware και πλατφόρμα.
2. Καλύτερη απόδοση πόρων. Η λειτουργία περισσότερων του ενός λειτουργικών συστημάτων σε μία πλατφόρμα υλικού αυξάνει την απασχόληση των πόρων της. Οι πόροι (CPU, MEMORY, NETWORK κλπ) αξιοποιούνται καλύτερα. Η αξιοποίηση τους φτάνει σε ποσοστό 80- 85 % έναντι 15% σε ένα κλασικό server.
3. Εξοικονόμηση πόρων. Η εικονικοποίηση βοηθά άμεσα στην εξοικονόμηση πόρων. Γενικά μειώνει τις απαιτήσεις σε απόκτηση και χρήση hardware (servers, switches, δίσκους, κλπ) αλλά και σε κατανάλωση ενέργειας. Λειτουργία πολλών λειτουργικών συστημάτων σε έναν server σημαίνει χαμηλότερη απαίτηση σε servers αλλά και λιγότερο κατανάλωση ενέργειας για την λειτουργία τους.
4. Υψηλή διαθεσιμότητα των συστημάτων στους τελικούς χρήστες. Με την εικονικοποίηση, έχει γίνει ευκολότερη η μεταφορά των εικονικών συστημάτων από την μία πλατφόρμα hardware σε μία άλλη. Αυτό σημαίνει πως αναβαθμίσεις υλικού μπορούν να πραγματοποιούνται σε έναν server, ενώ τα συστήματα τρέχουν σε άλλο, ενώ έχει μεσολαβήσει ελάχιστη ή μηδενική μη διαθεσιμότητα των συστημάτων.
5. Ταχύτερη διαδικασία backup και ευκολότερο restore. Οι εικονικές μηχανές αντιστοιχούν σε αρχεία. Αυτά είναι ευκολότερο να διασφαλιστούν και πιο εύκολο να αποκατασταθούν σε περίπτωση βλάβης. Αποκατάσταση των αρχείων, σημαίνει και επαναφορά όλων των στοιχείων που περιέχει η εικονική μηχανή.
6. Ευκολότερη διαχείριση για τους διαχειριστές συστημάτων. Λιγότερα φυσικά μηχανήματα σημαίνει λιγότερο υλικό για διαχείριση. Αλλά και προβληματικό εικονικό μηχάνημα δε σημαίνει πρόβλημα στην πλατφόρμα υλικού. Μπορεί να γίνονται ενέργειες αποκατάστασης μίας εικονικής μηχανής ενώ όλες οι άλλες λειτουργούν χωρίς πρόβλημα στο ίδιο hardware.
7. Ταχύτερη ανάπτυξη νέων εικονικών μηχανών. Η δημιουργία μίας εικονικής μηχανής μπορεί να ολοκληρωθεί μέσα σε λίγα λεπτά, ειδικά με τη χρήση προτύπων, και σε κάθε περίπτωση δεν εμπεριέχει και την προσπάθεια σύνθεσης hardware.
8. Η λήψη στιγμιοτύπων (snapshots) για δοκιμές και η επαναφορά τους σε προηγούμενες στιγμές, είναι χαρακτηριστικό της εικονικοποίησης και δεν μπορεί να πραγματοποιηθεί σε ένα παραδοσιακό σύστημα.
Κατά την άποψη μου αυτά είναι τα σημαντικότερα πλεονεκτήματα της εικονικοποίησης. Η εμφάνιση όλων των μεγάλων παικτών στην αγορά του virtualization (oracle, VMware, Microsoft, Citrix), δείχνει την πορεία προς μέλλον, δλδ 99% εικονικά περιβάλλοντα, και που θα προσδίδει στους συμμετέχοντες οφέλη οικονομιών κλίμακας, ευελιξίας και ανάπτυξης.